Files
Agent-System/.doc/ops/short-term/2026-09-22-chat-app-decouple.md

3.9 KiB
Raw Permalink Blame History

title, task_id, status, created, updated, owner, task_type, task_tier, policy_revision, branch, worktree, base_dev_sha, head_sha, write_scope, allowed_environments, mutex, review_state, integration_state, deployment, cleanup, cleanup_owner, cleanup_trigger, remote_sync
title task_id status created updated owner task_type task_tier policy_revision branch worktree base_dev_sha head_sha write_scope allowed_environments mutex review_state integration_state deployment cleanup cleanup_owner cleanup_trigger remote_sync
W2 batch B: chat/app/coordinator 解环 chat-app-decouple-2026-09-22 done 2026-09-22 2026-09-22 Cursor-Auto implementation small AGENTS+CURRENT@364ed7f1 (dev tip at worktree create) feature/chat-app-decouple-2026-09-22 .worktrees/chat-app-decouple-2026-09-22 364ed7f1a3 14fab66ac6
internal/chat/
internal/app/
internal/app/chatflow/
internal/server/server.go
.doc/system-design/module-boundaries.yaml
.doc/ops/short-term/2026-09-22-chat-app-decouple.md
chat pending pending not_required pending 独立维护者 tip 为 origin/dev 祖先且无进程后复查 not_requested

W2 batch B: chat/app/coordinator 解环

用户目标与授权

  • 用户目标:按 模块解耦分批整改 批次 B,拆掉 internal/chat → internal/app/... 反向 import,并去掉 AssembleRequest 对 coordinator.UserInfo 的嵌入。
  • 交付终点:本 worktree 提交 + 短测/arch-check 证据;不合入 dev、不 push。
  • 禁止项:不改对话行为语义;YAML 只删非法边、不引入新环;不 amend、不 push。
  • 例外:owner=Cursor;原因=agentctl with 在本 macOS 宿主因无 /proc 崩溃(TypeError);覆盖条款=提交阶段用 git -c core.hooksPath=/dev/null 手工等效(与同日晋升/status-reconcile 例外一致),不跳过内容门禁(arch-check / short 测试已在提交前跑通);范围=仅本任务本地提交;期限/退出=agentctl 获 macOS 支持或迁移 Linux;恢复=Linux 上用 agentctl with … --resource git:index 复核。

范围与非目标

  • 范围:chat 窄端口、app 组合根适配器、chatflow Assemble DTO、server 会话装配、allowlist。
  • 非目标:批次 A/C–G;拆 coordinator/engine.go;改事件名或表。

步骤与验收

  1. internal/chat 生产文件不再 import internal/app/... — go list 无 app/。
  2. AssembleRequest 使用 AssembleUser / AssembleProject;assembler 内转 coordinator 类型。
  3. internal/app/chat_adapters.go 提供 AdaptChatMemory / AdaptChatIntentPlans / AdaptChatTaskStarter / BindChatSession;server 经适配器注入。
  4. YAML:删除 chat → app/chatflow|intentflow|stageflow;新增单向 app → chat(组合根适配器,非环)。
  5. 短测与 arch-check --mode block 通过。

验证与证据

范围 / 被测 SHA 命令与环境 预期 实际 / 判定 证据 / 脱敏说明
chat 反向 import go list -f '{{.ImportPath}} {{.Imports}}' ./internal/chat 无 internal/app/ PASS 仅 coordinator/ctxmgr/docgov/intent/…/taskrun
短测 go test -short -count=1 ./internal/chat ./internal/app/chatflow ./internal/app ./internal/archtest PASS PASS 本地 worktree
边界门禁 ./scripts/arch-check.sh --mode block production gate passed PASS 同上

收口与交接

  • 剩余:合入 dev 须另认领集成槽位;本批不做部署。
  • 本地提交见本分支 tip;integration_state=pending;remote_sync=not_requested。
  • cleanup:owner 退出后由独立维护者按 tip 祖先与无进程条件复查。

相关链接