父 issue
背景
#723 关闭后重新扫描 progress 剩余 map:
turnFileChanges direct access 只在 service_filechange.go 的 serviceProgressRuntime helper 内。
turnDiffSnapshots direct access 只在 service_turn_diff.go 的 serviceProgressRuntime helper 内。
业务路径当前只通过 s.progress.takeTurnFileChangeSummary(...) / s.progress.takeTurnDiffSnapshot(...) 读取,不存在新的生产重构必要。
但这两块还没有结构测试防止未来回归;同时文件名没有显式体现 progress facade,和 #721 /#722 /#723 的新命名不一致。
目标
补齐 turnFileChanges / turnDiffSnapshots 的 progress map SSOT 结构保护,并把 owner 文件命名收口到 progress facade 语义。
非目标
不改变 file change summary 或 turn diff snapshot 的收集、排序、take/cleanup 语义。
不改变 final turn output、Feishu card、turn completed 或 request/routing 行为。
不混入其他 progress map、queue、request gate、picker/catalog 或 claim 收口。
完成标准
新增结构测试,禁止非 owner/facade 文件直接访问 turnFileChanges / turnDiffSnapshots map。
owner 文件命名与 progress facade 语义一致,避免后续误判边界。
service.go 等业务路径仍只通过 runtime/facade method 访问 file change / diff snapshot。
目标测试、orchestrator 包测试、全量测试、文件长度与 diff check 通过。
子 issue 结果回卷到 调研核心大包与高耦合结构拆分方案 #713 后再关闭。
信息索引
相关文件:
internal/core/orchestrator/service_filechange.go
internal/core/orchestrator/service_turn_diff.go
internal/core/orchestrator/service_runtime_clusters.go
internal/core/orchestrator/service.go
扫描命令:
rg -n " turnFileChanges|turnDiffSnapshots" internal/core/orchestrator --glob ' *.go'
建议范围
先加结构测试,预期红灯命中旧 owner 文件名。
将 service_filechange.go / service_turn_diff.go 移到 progress facade 命名。
复跑结构测试和相关 turn completed/file change/diff 测试。
执行决策
实现参考
预期新 owner 文件名:service_progress_file_change.go、service_progress_turn_diff.go。
结构测试允许 service_runtime_clusters.go 和上述 owner/facade 文件访问 map 字段。
不需要引入新的 Service facade,当前业务路径已经只调用 s.progress runtime method;本单重点是防止其他文件直接碰 map。
检查参考
建议验证命令:
go test ./internal/core/orchestrator -run ' Progress.*File|Progress.*Diff|FileChange|TurnDiff|TurnCompleted' -count=1
go test ./internal/core/orchestrator -count=1
go test ./internal/core/orchestrator ./internal/core/control ./internal/app/daemon -count=1
go test ./...
bash scripts/check/go-file-length.sh && git diff --check
Guardrail:
若仅重命名 owner 文件和增加结构测试,不改变 route/state transition 或 Feishu card payload,remote / Feishu canonical docs 无需更新。
收尾参考
把完成结果、验证结果、verifier 结果和 commit 写回 调研核心大包与高耦合结构拆分方案 #713 。
关闭前运行 issuectl close-plan。
提交并通过 ./safe-push.sh 推送。
执行快照
当前阶段:close-out
当前执行点:close-out tail only;下一步只剩回卷 调研核心大包与高耦合结构拆分方案 #713 、commit/push、close-plan 和 finish --close。
已完成:结构测试红灯/绿灯;turnFileChanges / turnDiffSnapshots owner 文件已重命名到 progress facade 语义;direct map access 已由结构测试保护;独立 verifier 结果为 pass。
下一步:回卷 调研核心大包与高耦合结构拆分方案 #713 后提交推送,并运行 close-plan/finish 关闭本 issue。
当前阻塞:无。
最近改变的假设:turnFileChanges / turnDiffSnapshots 不需要业务 facade 改造,只需要 owner 命名和结构测试。
最后一致状态:本地测试 go test ./...、文件长度检查和 diff check 均通过;已提交 commit bb7de26e。
未完成尾项:push、close-plan、finish --close。
恢复步骤:检查 git status 与 push 状态,运行 issuectl close-plan/finish --close。
父 issue
背景
#723 关闭后重新扫描
progress剩余 map:turnFileChangesdirect access 只在service_filechange.go的serviceProgressRuntimehelper 内。turnDiffSnapshotsdirect access 只在service_turn_diff.go的serviceProgressRuntimehelper 内。s.progress.takeTurnFileChangeSummary(...)/s.progress.takeTurnDiffSnapshot(...)读取,不存在新的生产重构必要。但这两块还没有结构测试防止未来回归;同时文件名没有显式体现
progressfacade,和 #721/#722/#723 的新命名不一致。目标
补齐
turnFileChanges/turnDiffSnapshots的 progress map SSOT 结构保护,并把 owner 文件命名收口到 progress facade 语义。非目标
progressmap、queue、request gate、picker/catalog 或 claim 收口。完成标准
turnFileChanges/turnDiffSnapshotsmap。service.go等业务路径仍只通过 runtime/facade method 访问 file change / diff snapshot。信息索引
相关文件:
internal/core/orchestrator/service_filechange.gointernal/core/orchestrator/service_turn_diff.gointernal/core/orchestrator/service_runtime_clusters.gointernal/core/orchestrator/service.go扫描命令:
建议范围
service_filechange.go/service_turn_diff.go移到 progress facade 命名。执行决策
实现参考
service_progress_file_change.go、service_progress_turn_diff.go。service_runtime_clusters.go和上述 owner/facade 文件访问 map 字段。s.progressruntime method;本单重点是防止其他文件直接碰 map。检查参考
建议验证命令:
Guardrail:
收尾参考
issuectl close-plan。./safe-push.sh推送。执行快照
turnFileChanges/turnDiffSnapshotsowner 文件已重命名到 progress facade 语义;direct map access 已由结构测试保护;独立 verifier 结果为 pass。turnFileChanges/turnDiffSnapshots不需要业务 facade 改造,只需要 owner 命名和结构测试。go test ./...、文件长度检查和 diff check 均通过;已提交 commitbb7de26e。