5.6 KiB
5.6 KiB
dialogue-ctx-injection 收口(short-term)
- task_id: dialogue-ctx-closeout-2026-09-26
- owner: pi
- status: in_progress
- 授权来源: 用户会话指令「把 FEATURE-MATRIX 中的 dialogue-ctx-injection、jevdecide-shadow、chat-semantic-replace 完成;一个 feature 一个 feature 完成;严格按规范」
- write_scope: internal/bizdev, internal/server, internal/coordinator, .doc
- mutex: dialogue-ctx
- base_dev_sha:
f6ad3344f8 - capabilities: docs:publish, docs:approve, env:dev
- policy_revision: AGENTS 2026-09 / agent-worktree-workflow r1 / validation-contract 2026-09-21
- review_state: pending
- integration_state: pending
- deployment: pending(dev rebuild + 迁移核验)
- cleanup: pending
- remote_sync: not_requested
一、当前进度分析
已完成(dev 已合入,dc29b84c + 1da17a28):
internal/dialoguectx清洗/分层/打包;internal/conflictresolve权威裁决 + 卡片限额;squad 工作区context/dialogue/注入;bizdev 全任务默认注入(DIALOGUE_CTX_INJECTION紧急关闭);MemoryComposer 近况段;goose00072_2026-09-25-context-conflict-adjudications.sql(原设计 00071,因 maintenance-windows 占号顺延为 00072)。- 单测全绿(dialoguectx / conflictresolve / squad 落盘 / 关联包)。
未完成(FEATURE-MATRIX 关闭条件):
- dev 迁移未应用:dev 环境当前停机,
context_conflict_adjudications表未在 dev DB 落地。 - 真实 PI 落盘核验缺失:无真实项目任务跑过
context/dialogue/落盘链路。 - 冲突确认卡链路断裂(本轮发现的缺口):
internal/bizdev/service_task_run.go:646对buildDialoguePackageForRun返回的 expectations 直接丢弃(_),trigger_user 路由的 PendingExpectation 卡片从未到达用户;confirm_context_fact也无 coordinator 处理。HITL 分级路由中仅 doc_author(digest 通知)已接线。
二、方案
2.1 代码补齐(使「冲突确认卡」真实可达)
internal/bizdev/types.go:TaskRunResult增加PendingContextConflicts []ContextConflictCard(fact_key/winning_value/prompt/snippet/expectation_id)。internal/bizdev/service_task_run.go:捕获 expectations → 转卡片(≤3,与卡片限额一致)挂到结果(成功与失败路径均挂,裁决与任务成败无关)。internal/server(任务处理器,持有 sessions):run 完成后若有 PendingContextConflicts 且 req.SessionID 对应活跃会话 → 向该会话追加 assistant 消息(确认卡文案,参照 confirmGate 文案形态)+ 通过coordinator.ApplyContextUpdate设置PendingExpectation(首个 expectation)+ 经 ctxmgr 落消息记录。internal/coordinator:- 期望命中
confirm_context_fact(Intent=CONFIRM_ACTION + pending.TargetAction):复用handleSupplementInfo语义——按 payload slots 写黑板(内存 + blackboard.json + OnSupplement 持久化钩子),回复「已采信…」。 handleDeclineExpectation对confirm_context_fact:回复引导用户直接给出正确事实(下一条 SUPPLEMENT_INFO 自然吸收),不再用阶段推进话术。
- 期望命中
不改 web(卡片以 chat 消息文案呈现,确认走既有期望命中通道);不新增迁移;不动 dialoguectx/conflictresolve 已验收逻辑。
2.2 dev 运行时验证(关闭条件)
env:dev租约下从主目录 rebuild dev(部署当前 dev HEAD)→ 核验/health、/ready、goose_db_version≥ 72 且context_conflict_adjudications存在。- 真实 PI 落盘核验:真实项目成员对话(含事实陈述)→ 触发任务(真实 PI Runner)→ 核验工作区
context/dialogue/(digest.md/turns.md/facts.json/CONFIRMATIONS.md/README)+ TASK.md 导航 + DB 裁决记录。 - 冲突确认卡冒烟:同 key 不同值、30 分钟内、无明确证据词的两条用户对话 → 跑任务 → 会话出现确认卡消息 → 回复「确认」→ 期望命中、黑板更新、回复确认采信。
2.3 验证契约对照
- Go/接口变更:单测 +
arch-check --mode block+go vet ./...+go test -short ./...。 - 产品 Agent/工作流:受影响真实 PI 链路(任务注入 + 冲突卡冒烟)。
- 迁移:dev 实际升级 + schema 版本证据。
三、计划
- 分析进度(本文件§一)
- 代码补齐 §2.1 + 单测(dev
ebb82820) - 工程验证(vet/short/arch-check,候选验证收据)
- 候选集成 dev(
ebb82820) - dev runtime 启动(no-docker 单二进制,schema 73)+ 迁移核验
- 真实 PI 落盘核验 + 冲突卡冒烟(含 sidecar 修复
f89b946d后 completed run 全 PASS) - 测试报告 + 矩阵行升 done + 任务收口 + worktree 清理
四、结果登记
- review_state: done(单测 + 工程门禁 + 候选验证收据)
- integration_state: done(dev
ebb82820+f89b946d,均 --no-ff 候选集成) - deployment: dev_runtime_verified(no-docker 单二进制 + localpg,schema 73;health)
- 验证结论:关闭条件全满足,见 收口报告
- cleanup: 本任务 worktree 按门禁清理
- remote_sync: not_requested(本地 dev 前进,未 push)
- 过程修复:①冲突卡接线(expectations 丢弃→OnTerminal 投递+期望命中处理);②no-docker sidecar
PI_AGENT_EXTENSION覆盖;③本机.envPI_AGENT_BINmacOS 路径纠正(非仓库变更)