feat: sync codex thread names

This commit is contained in:
AI Bot
2026-06-03 14:06:15 +08:00
parent 0bcdcbfb9d
commit cc31b0d836
11 changed files with 311 additions and 2 deletions

View File

@@ -70,6 +70,14 @@ function isThreadCompactTask(task) {
return task?.intentCategory === "thread_compact" || task?.taskType === "thread_compact";
}
function isThreadRenameTask(task) {
return task?.intentCategory === "thread_rename" || task?.taskType === "thread_rename";
}
function resolveThreadRenameName(task) {
return trimToDefined(task?.threadRenameName || task?.threadName || task?.name);
}
function resolveThreadLifecycleAction(task) {
if (
task?.threadLifecycleAction === "archive" ||
@@ -3110,6 +3118,31 @@ export async function executeCodexAppServerTask(runnerConfig, task) {
});
notify("initialized", {});
if (isThreadRenameTask(task)) {
const renameThreadId = targetThreadRef;
const name = resolveThreadRenameName(task);
if (!renameThreadId) {
throw new Error("CODEX_APP_SERVER_THREAD_ID_MISSING");
}
if (!name) {
throw new Error("CODEX_APP_SERVER_THREAD_RENAME_NAME_MISSING");
}
await request("thread/name/set", { threadId: renameThreadId, name });
return {
status: "completed",
replyBody: `已同步 Codex 线程名称:${name}`,
threadId: renameThreadId,
turnControl: "rename",
threadRename: {
name,
},
cwd,
transport: runnerConfig.transport,
executionProgress: progressCollector.snapshot(),
canFallbackToCli: false,
};
}
const lifecycleAction = resolveThreadLifecycleAction(task);
if (lifecycleAction) {
const lifecycleThreadId = targetThreadRef;