refactor: disable automatic main-agent thread sync pushes

This commit is contained in:
kris
2026-04-05 07:39:59 +08:00
parent 93c4574130
commit 50d5327afd
3 changed files with 32 additions and 178 deletions

View File

@@ -2882,8 +2882,6 @@ function appendThreadProgressEventInState(
return event;
}
const THREAD_STATUS_FULL_SYNC_INTERVAL_MS = 15 * 60_000;
function normalizeState(raw: Partial<BossState> | undefined): BossState {
const base = cloneInitialState();
if (!raw) return syncDerivedState(base);
@@ -7635,6 +7633,15 @@ function shouldQueueProjectUnderstandingSync(
state: BossState,
reason: "heartbeat_activity" | "thread_reply" = "heartbeat_activity",
) {
// 主 Agent 自动向线程发隐藏理解对话当前整体关闭。
// 保留现有数据模型,后续如果需要恢复,可在明确产品决策后重新开启。
void project;
void observedActivityAt;
void state;
void reason;
return false;
/*
if (!isDispatchableThreadProject(project)) {
return false;
}
@@ -7681,6 +7688,7 @@ function shouldQueueProjectUnderstandingSync(
task.projectUnderstandingTargetProjectId === project.id &&
(task.status === "queued" || task.status === "running"),
);
*/
}
function buildProjectUnderstandingSyncPrompt(project: Project, reason: "heartbeat_activity" | "thread_reply") {

View File

@@ -1775,35 +1775,6 @@ function buildDeviceImportResolutionPrompt(params: {
].join("\n");
}
function buildDeviceImportUnderstandingPrompt(params: {
deviceName: string;
draftId: string;
candidateId: string;
threadDisplayName: string;
folderName: string;
lastActiveAt: string;
}) {
return [
"你正在协助 Boss 控制台完成新设备导入前的项目理解。",
"请以当前活跃线程的视角,直接总结这个项目当前最关键的信息。",
"输出必须是 JSON对象结构如下",
'{ "projectGoal": "一句中文目标", "currentProgress": "一句中文进度", "technicalArchitecture": "一句中文架构说明", "currentBlockers": "一句中文阻塞说明", "recommendedNextStep": "一句中文建议动作" }',
"要求:",
"1. 只输出 JSON不要输出额外解释。",
"2. 用中文,句子短而明确。",
"3. 如果某项信息不确定,也要明确写出当前已知范围,不要留空。",
"",
`deviceName: ${params.deviceName}`,
`draftId: ${params.draftId}`,
`candidateId: ${params.candidateId}`,
`threadDisplayName: ${params.threadDisplayName}`,
`folderName: ${params.folderName}`,
`lastActiveAt: ${params.lastActiveAt}`,
"",
"请回答当前项目:目标、进度、技术架构、阻塞点、下一步建议。",
].join("\n");
}
export async function queueDeviceImportResolutionTask(params: {
deviceId: string;
reviewedBy: string;
@@ -1824,35 +1795,7 @@ export async function queueDeviceImportResolutionTask(params: {
const selectedCandidates = draft.candidates.filter((candidate) =>
draft.selectedCandidateIds.includes(candidate.candidateId),
);
const understandingTasks = await Promise.all(
selectedCandidates
.filter((candidate) => candidate.codexThreadRef?.trim())
.map((candidate) =>
queueMasterAgentTask({
projectId: "master-agent",
taskType: "conversation_reply",
requestMessageId: draft.draftId,
requestText: `请总结线程 ${candidate.threadDisplayName} 当前项目目标与进度`,
executionPrompt: buildDeviceImportUnderstandingPrompt({
deviceName: device.name,
draftId: draft.draftId,
candidateId: candidate.candidateId,
threadDisplayName: candidate.threadDisplayName,
folderName: candidate.folderName,
lastActiveAt: candidate.lastActiveAt,
}),
requestedBy: params.reviewedBy,
requestedByAccount: params.reviewedBy,
deviceId: device.id,
deviceImportDraftId: draft.draftId,
deviceImportCandidateId: candidate.candidateId,
deviceImportCandidateFolderName: candidate.folderName,
targetThreadDisplayName: candidate.threadDisplayName,
targetCodexThreadRef: candidate.codexThreadRef,
targetCodexFolderRef: candidate.codexFolderRef ?? candidate.folderRef,
}),
),
);
const understandingTasks: Array<Awaited<ReturnType<typeof queueMasterAgentTask>>> = [];
const task = await queueMasterAgentTask({
projectId: "master-agent",
taskType: "device_import_resolution",