对话落盘同一轮填写失败后可以按次数补写。

游玩投影不再送进只给程序用的壳源码。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-14 08:29:38 +08:00
co-authored by Cursor
parent bc77bc4a3c
commit b864591afa
23 changed files with 980 additions and 113 deletions
+23 -1
View File
@@ -62,6 +62,7 @@ const preferenceCollectEveryEl = document.getElementById("preference-collect-eve
const activeSettingsBarEl = document.getElementById("active-settings-bar");
const settingsToastEl = document.getElementById("settings-toast");
const contextTraceKeepEl = document.getElementById("context-trace-keep");
const dictateFillRetriesEl = document.getElementById("dictate-fill-retries");
const probeDialog = document.getElementById("preset-probe-dialog");
const probePresetNameEl = document.getElementById("probe-preset-name");
const probeMessageEl = document.getElementById("probe-message");
@@ -193,7 +194,7 @@ function renderPanelHeader() {
panelActionsEl.appendChild(btn);
} else {
panelTitleEl.textContent = "上下文";
panelSubtitleEl.textContent = "控制每个对话保留多少条完整 prompt 痕迹";
panelSubtitleEl.textContent = "上下文痕迹,以及对话落盘同轮补写次数";
}
}
@@ -776,6 +777,9 @@ async function loadAll() {
state.settings.contextTraceKeepLatest ?? 5,
);
}
if (dictateFillRetriesEl) {
dictateFillRetriesEl.value = String(state.settings.dictateFillRetries ?? 0);
}
renderActiveBar();
renderProfiles();
renderPersonas();
@@ -1798,6 +1802,24 @@ probeMessageEl?.addEventListener("keydown", (e) => {
}
});
document.getElementById("btn-save-fill-retries")?.addEventListener("click", async () => {
try {
const n = Number(dictateFillRetriesEl?.value ?? 0);
const data = await api("/api/settings", {
method: "PUT",
body: JSON.stringify({ dictateFillRetries: n }),
});
state.settings = data.settings;
if (dictateFillRetriesEl) {
dictateFillRetriesEl.value = String(data.settings.dictateFillRetries ?? 0);
}
const saved = data.settings.dictateFillRetries ?? 0;
showToast(saved === 0 ? "已保存:对话落盘只填一次" : `已保存:同轮最多再补写 ${saved} 次`);
} catch (err) {
showToast(err.message, true);
}
});
document.getElementById("btn-save-context-keep")?.addEventListener("click", async () => {
try {
const n = Number(contextTraceKeepEl?.value ?? 5);