Skip to content

feat(review): 单 run 聚合只读审查入口(#1967 部分交付) - #1975

Merged
DeliciousBuding merged 5 commits into
masterfrom
feat/run-level-review
Aug 25, 2026
Merged

feat(review): 单 run 聚合只读审查入口(#1967 部分交付)#1975
DeliciousBuding merged 5 commits into
masterfrom
feat/run-level-review

Conversation

@DeliciousBuding

@DeliciousBuding DeliciousBuding commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

概要

#1967部分交付:审批摘要条新增变更查看入口,但当前只提供诚实的只读聚合视图,不声称可以从 ConversationHost 真实批准/驳回工作区变更。

本次修复收紧了接管审计发现的四项阻断:

  1. 以 transcript block 的 evidenceRefs[kind=run].id 为硬边界,只选择当前/最新的一个 run,禁止把 active conversation 内多个 run 的 file_change 混成“本次运行”。
  2. 无 run evidence 的旧事件降级为明确标注的“会话变更兼容视图”;它可能跨多次执行,UI 不再称其为单 run。
  3. ConversationHost 只有可信 run id、没有历史 run 的可信 workDir;禁止借用当前 composer workDir 猜测。因此聚合面传入显式 readOnly,隐藏 run/file/hunk 全部 accept/reject 控件,不再把本地 hunk 标记伪装成真实写回。Web 同样只读。
  4. 修复 shared DiffReviewPanel 的真实 apply 合同:run 级批量提交前快照 mixed hunk 状态,失败时精确恢复;onAcceptRun/onRejectRun 仅在异步 apply 成功后触发。
  5. 同一 run/path 的多次 file_changeeditId(缺失时按 event id)保留唯一片段,并对重放的相同 hunk 去重;后续不完整事件不会覆盖掉早期 patch snippet。

能力边界

  • ✅ 单个 evidence-backed run 的全部变更聚合、逐文件 tab、逐 hunk 内容、统计与只读查看。
  • ✅ legacy 无 run id 时诚实降级为会话级兼容视图。
  • ✅ shared DiffReviewPanel 仍保留可信宿主接入 runId + onApplyAllHunks 后的真实批量 apply 合同,并补精确回滚/回调时序测试。
  • ❌ ConversationHost 当前不提供真实批准/驳回:transcript/API 没有可信历史 workDir,且本 PR 不用 composer 当前目录猜测。
  • ❌ 因未完成 feat(review): run 级聚合审查入口(UX F11) #1967 原验收中的“review 面内可批准/驳回”,本 PR 不关闭 issue;feat(review): run 级聚合审查入口(UX F11) #1967 应保持 OPEN,后续需先增加可信 run workDir/权威 run diff 数据合同,再接 Desktop apply port。

主要改动

  • app/shared/src/transcript/runChangeAggregate.ts
    • selectRunReview:current/latest 单-run选择、legacy scope。
    • run/path/editId 片段合并与 replay hunk 去重。
  • app/shared/src/ui/DiffReviewPanel*
    • readOnly 隐藏全部写回动作。
    • run batch snapshot/精确 rollback;成功后才触发 run callback。
  • app/shared/src/ui/RunReviewOverlay*
    • 显式只读透传、行为测试与 stories。
  • app/workbench/src/ConversationHost.tsx
    • 单-run选择、legacy 文案、严格只读接线。
  • app/workbench/src/inspector/FilePreviewRouter.tsx
    • Web/无 apply port 时隐藏动作,仅显示只读提示;Desktop 可信 runId + workDir + PreviewPort 路径不变。
  • docs/component-acceptance.md
    • 同步真实能力与验证口径。

验证

  • pnpm -C app/shared test --run src/transcript/runChangeAggregate.test.ts src/ui/DiffReviewPanel.test.tsx src/ui/RunReviewOverlay.test.tsx src/chatview/i18n/resources.test.ts --no-file-parallelism --maxWorkers=1
    • 4 files / 80 tests passed
  • pnpm -C app/workbench test --run src/__tests__/runReview.test.tsx src/inspector/FilePreviewRouter.apply.test.tsx --no-file-parallelism --maxWorkers=1
    • 2 files / 14 tests passed
  • pnpm -C app/shared typecheck
  • pnpm -C app/workbench typecheck
  • python scripts/verify/verify-doc-ssot.py
  • git diff --check

未运行 Playwright / Visual QA / packaged Desktop;未执行真实 Local Edge 写回验证。

real_tested=false

Relates #1967

@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 801b08f2-5b5b-4f9b-9c82-711254084390

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@DeliciousBuding DeliciousBuding changed the title feat(review): run 级聚合审查入口 (#1967) feat(review): 单 run 聚合只读审查入口(#1967 部分交付) Aug 25, 2026
DeliciousBuding and others added 5 commits August 25, 2026 14:03
Co-authored-by: Claude Code <claude@vectorcontrol.tech>
Co-authored-by: Claude Code <claude@vectorcontrol.tech>
Co-authored-by: Claude Code <claude@vectorcontrol.tech>
Co-authored-by: Claude Code <claude@vectorcontrol.tech>
Co-authored-by: Codex <codex@vectorcontrol.tech>
@DeliciousBuding
DeliciousBuding merged commit 78cbced into master Aug 25, 2026
40 checks passed
@DeliciousBuding
DeliciousBuding deleted the feat/run-level-review branch August 25, 2026 06:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant