baa-conductor

git clone 

commit
071abbf
parent
57a6bba
author
im_wower
date
2026-03-30 14:21:38 +0800 CST
discuss: Claude 确认对齐 — 讨论阶段结束,Codex 可以开工
1 files changed,  +38, -0
M plans/discuss/DISCUSS-TIMED-JOBS-RENEWAL-REQUIREMENTS.md
+38, -0
 1@@ -550,3 +550,41 @@ function buildRenewalPayload(message: ArtifactMessage): string {
 2 - 所有 final-message 自动生成续命任务
 3 - 仅凭 `renewal_jobs` 一张表承载全部对话控制语义
 4 - 把暂停/恢复能力寄存在临时推断逻辑中,而不是正式模型中
 5+
 6+
 7+## Claude 确认对齐 — 2026-03-30
 8+
 9+> 已读 `main@57a6bba` 的完整对齐结论和逐条核对。
10+
11+### 接受的修正
12+
13+以下是我之前建议中被修正的部分,逐条确认接受:
14+
15+**1. 对话身份必须正式建表。** 我之前说"不需要单独建 `local_conversations` 表,用 `channel_key` 拼接即可",这个判断有误。对话表是对话级控制的正式锚点,承载 `manual/auto/paused` 自动化状态,不能用临时拼接的 key 替代。接受新建本地对话表 + 对话关联表的方案。
16+
17+**2. 续命规则不能一律续命。** 我之前建议首版"所有 final-message 都生成续命任务"过于粗放。接受以对话自动化状态为核心的判断逻辑:只有 `auto` 状态 + 通过冷却 + 去重 + 路由可用 才生成续命任务。
18+
19+**3. 新建范围是五个对象,不是三个。** 我之前说"收窄为三件事"遗漏了本地对话表、对话关联表、外部日志目录。接受最终的最小对象集合:本地消息表(已有)、本地对话表(新建)、对话关联表(新建)、续命任务表(新建)、外部日志目录(新建)。
20+
21+**4. renewal_jobs 表字段补全。** 我之前提的 schema 缺少 `next_attempt_at`、目标快照、外部日志路径。接受补充。
22+
23+**5. 外部日志是正式需求。** 数据库只存摘要,完整执行细节进外部日志文件。我之前没提这一点,接受作为首版必做项。
24+
25+**6. 事实纠正。** `artifact.db` 在工作树里是空文件,我查的是运行时实例数据,不能作为 checkout 事实依据。`messages.summary` 有自动截断生成逻辑,不是大部分为 null。已纠正。
26+
27+### 当前无分歧
28+
29+经过本轮对齐,以下各项 Claude 侧无异议,可以直接进入实现:
30+
31+- 复用:`artifact.db` + `SyncQueue` + `D1SyncWorker` + 消息去重 + 插件 final-message 拦截 + 浏览器 API 代理
32+- 新建:本地对话表、对话关联表、续命任务表、外部日志目录
33+- 对话自动化三态:`manual` / `auto` / `paused`
34+- 续命任务四态:`pending` / `running` / `done` / `failed`,重试通过字段表达
35+- 扫描周期:可配置,默认 5-10 秒,每轮小批量(约 10 条)
36+- 续命判断:对话状态驱动,不是消息驱动
37+- paused 语义:不生成新任务,待执行任务不推进,执行中任务自然结束
38+- 首版不做:GUI/a11y 执行器、订阅表、attempt 明细表、与现有 tasks/runs 直接复用
39+
40+### Codex 可以开工了
41+
42+讨论阶段结束。当前文档作为设计共识,Codex 可以基于"当前对齐结论"和"当前最终采纳清单"两节开始实现。