现状
全量 review 发现扩展 seam 与 composition root 约束没有完全闭合:
src-tauri/src/review/commands.rs:70 和 src-tauri/src/review/commands.rs:91 在 review command 内直接组装 CodexEngine。
- 自动 dispatch 又在
src-tauri/src/lib.rs:134 组装一次 CodexEngine。
src-tauri/src/pr/commands.rs:76 在 PR discovery 中直接构造 GithubCli 并调用 discover_rows(),生产路径没有真正依赖 PrSource trait seam。
src-tauri/src/pr/commands.rs:5、src-tauri/src/review/commands.rs:3 等切片直接 import config::service;当前代码注释把这称为“函数级跨切片读”,但 reviewer 规范要求切片自包含、跨切片契约只走 shared model/组装注入。
这不是当前功能 bug,但会让新增 source/engine/config contract 时改动散落在切片内部。
三维根因
影响
- 新增 Claude engine 或非 GitHub source 时,需要修改调用方而不只是实现 trait + root wiring。
- 切片边界 enforcement 仍偏 Soft,review 只能靠人工发现 import 绕行。
修复方向
- 最小方案:为当前边界加 Medium import-boundary scan,防止继续扩散。
- 彻底方案:抽 root-level engine/source factory,manual review 与 auto dispatch 统一走注入的 trait object/service。
- 重构方案:定义 PR listing trait 返回 UI 所需 source-agnostic row/result,移除
discover_rows() 对 GitHub concrete 的生产依赖。
Files
src-tauri/src/review/commands.rs:70
src-tauri/src/review/commands.rs:91
src-tauri/src/lib.rs:134
src-tauri/src/pr/commands.rs:5
src-tauri/src/pr/commands.rs:76
src-tauri/src/review/commands.rs:3
Source
Discovered via full-project review with 6 subagents on 2026-06-17.
现状
全量 review 发现扩展 seam 与 composition root 约束没有完全闭合:
src-tauri/src/review/commands.rs:70和src-tauri/src/review/commands.rs:91在 review command 内直接组装CodexEngine。src-tauri/src/lib.rs:134组装一次CodexEngine。src-tauri/src/pr/commands.rs:76在 PR discovery 中直接构造GithubCli并调用discover_rows(),生产路径没有真正依赖PrSourcetrait seam。src-tauri/src/pr/commands.rs:5、src-tauri/src/review/commands.rs:3等切片直接 importconfig::service;当前代码注释把这称为“函数级跨切片读”,但 reviewer 规范要求切片自包含、跨切片契约只走 shared model/组装注入。这不是当前功能 bug,但会让新增 source/engine/config contract 时改动散落在切片内部。
三维根因
影响
修复方向
discover_rows()对 GitHub concrete 的生产依赖。Files
src-tauri/src/review/commands.rs:70src-tauri/src/review/commands.rs:91src-tauri/src/lib.rs:134src-tauri/src/pr/commands.rs:5src-tauri/src/pr/commands.rs:76src-tauri/src/review/commands.rs:3Source
Discovered via full-project review with 6 subagents on 2026-06-17.