Skip to content

feat(cloud-agent): send saved diff reviews to chats - #5817

Merged
eshurakov merged 3 commits into
eshurakov/boundless-sphinxfrom
eshurakov/spry-mangrove
Sep 16, 2026
Merged

eshurakov merged 3 commits into
eshurakov/boundless-sphinxfrom
eshurakov/spry-mangrove

Conversation

@eshurakov

@eshurakov eshurakov commented Sep 1, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Add saved-diff line/range comments, cross-file drafts, and one batched Send review to agent action.
  • Preserve immutable reviewed context and explicit stale-review handling across file and chat switches.
  • Pin and authorize the destination worktree/chat, retaining the same message identity for uncertain retries.

Verification

No manual browser or live-provider tests were rerun during this restack. Existing pending work was preserved in named stash/backup refs; local handoff and evidence files remain unchanged and excluded.

Visual Changes

Screenshot 2026-09-15 at 21 02 44 Screenshot 2026-09-15 at 21 02 50 Screenshot 2026-09-15 at 21 02 20

Reviewer Notes

Stacked on #5816 (eshurakov/boundless-sphinx). Three commits, including GitHub-style review UX. The merge preserves both commit-card and review wiring, plus upstream autoCommit: true and expected-worktree authorization checks.

Final combined verification passed: web lint, full web typecheck with tRPC declaration build, and eight setup-free Jest suites / 241 tests, including the native review wrappers. All 29 terminal-navigation tests pass after adding the missing review-boundary mocks to their existing fixture; this correction changes no product behavior. The standalone native review suites (77 tests) and review-send/client suites (131 tests) also passed earlier. Formatting, whitespace, and independent merge review passed. No database setup or browser evidence is implied by these isolated tests.

@eshurakov
eshurakov force-pushed the eshurakov/spry-mangrove branch from 987fa7c to 14b8fdb Compare September 1, 2026 19:41
@eshurakov
eshurakov force-pushed the eshurakov/spry-mangrove branch 2 times, most recently from b22f8fa to a71610f Compare September 2, 2026 12:52
@eshurakov
eshurakov force-pushed the eshurakov/spry-mangrove branch from a71610f to 4cf9d58 Compare September 3, 2026 07:47
@eshurakov
eshurakov force-pushed the eshurakov/spry-mangrove branch from 4cf9d58 to 2c2abda Compare September 3, 2026 07:50
@eshurakov
eshurakov force-pushed the eshurakov/spry-mangrove branch from 2c2abda to 10eaade Compare September 3, 2026 11:37
@eshurakov
eshurakov force-pushed the eshurakov/spry-mangrove branch from 10eaade to 3dd0a0e Compare September 3, 2026 12:31
@eshurakov
eshurakov force-pushed the eshurakov/spry-mangrove branch from 3dd0a0e to 7cac306 Compare September 3, 2026 12:58
@eshurakov
eshurakov force-pushed the eshurakov/spry-mangrove branch from 7cac306 to 8467a86 Compare September 3, 2026 20:21
@eshurakov
eshurakov force-pushed the eshurakov/spry-mangrove branch from 8467a86 to 6f4a8c9 Compare September 7, 2026 20:17
@eshurakov
eshurakov force-pushed the eshurakov/spry-mangrove branch 2 times, most recently from fcfc693 to 30bc04e Compare September 7, 2026 20:45
@eshurakov
eshurakov force-pushed the eshurakov/spry-mangrove branch from 30bc04e to 26658b4 Compare September 7, 2026 20:53
@eshurakov
eshurakov force-pushed the eshurakov/spry-mangrove branch from 26658b4 to 9a0611a Compare September 8, 2026 10:29
@eshurakov
eshurakov force-pushed the eshurakov/spry-mangrove branch from 9a0611a to 97ac3a6 Compare September 8, 2026 10:55
@eshurakov
eshurakov force-pushed the eshurakov/spry-mangrove branch from 11e3830 to cce3370 Compare September 10, 2026 08:34
@eshurakov
eshurakov force-pushed the eshurakov/spry-mangrove branch from cce3370 to 30c4b5f Compare September 10, 2026 08:42
@eshurakov
eshurakov marked this pull request as ready for review September 10, 2026 09:06
Comment thread apps/web/src/components/cloud-agent-next/useWorktreeReview.ts
Comment thread apps/web/src/components/cloud-agent-next/WorktreeReviewEditor.tsx Outdated
Comment thread apps/web/src/components/cloud-agent-next/WorktreeReviewEditor.tsx
Comment thread apps/web/src/components/cloud-agent-next/worktree-review-state.ts
@kilo-code-bot

kilo-code-bot Bot commented Sep 10, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Executive Summary

The branch was restacked onto base 1e23c4d76; diffing every file in gh pr diff 5817 between the last reviewed revision (48a59a47) and HEAD (6d8ea4c9) shows no PR-authored line changed, so there are no new findings.

Files Reviewed (0 changed files this pass)

The only differences inside the PR file list between 48a59a47 and 6d8ea4c9 are base-branch content the PR does not authorimately introduce:

  • apps/web/src/routers/cloud-agent-next-router.ts (+31) and apps/web/src/routers/organizations/organization-cloud-agent-next-router.ts (+32) - the listRepositoryBranches procedures already present in the base commit 1e23c4d76 (absent in 22e404d), sourced from the base branch's provider-branch-listing helper, which is not part of this PR's diff.
  • services/kilo-mcp/catalog.json (+827) - generated catalog also contributed by the base branch; generated files are out of review scope.

All other 38 PR files are byte-identical to the previously reviewed revision. Prior findings were verified resolved or retracted at earlier revisions and none is carried forward; the retained-comment fix (WorktreeReviewDialog passing freshness/showFreshness and offering a per-comment Discard, plus WorktreeReviewList rendering renderActions as a sibling of the clickable article) is present and correct at HEAD 6d8ea4c9.

Previous Review Summaries (12 snapshots, latest commit 48a59a4)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit 48a59a4)

Status: No Issues Found | Recommendation: Merge

Executive Summary

The retained-comment fix resolves the previous suggestion: the review dialog now labels comments kept on older captures and offers a per-comment discard path, and no new defects were found in the changed code.

Files Reviewed (2 files)
  • apps/web/src/components/cloud-agent-next/WorktreeReviewDialog.tsx - no issues; passes freshness/showFreshness and renders a discard action only for comments that are not on the current capture
  • apps/web/src/components/cloud-agent-next/WorktreeReviewList.tsx - no issues; comment actions now render as a sibling of the clickable article, so discard and row navigation can coexist

Previous review (commit 22e404d)

Status: 1 Issues Found | Recommendation: Address before merge

Executive Summary

The incremental commit (22e404d24) correctly keeps unrebasable review comments and editors instead of silently dropping them, but retained comments from an older capture are never marked stale, so the only feedback is a comment that vanishes from the diff pane and a send failure that does not identify it.

Overview

Severity Count
CRITICAL 0
WARNING 0
SUGGESTION 1
Issue Details (click to expand)

SUGGESTION

File Line Issue
apps/web/src/components/cloud-agent-next/worktree-review.ts 608 Comments kept at an older capture are never marked stale; they disappear from the diff pane and surface only at send time
Files Reviewed (5 files, incremental 14ae058..22e404d)
  • apps/web/src/components/cloud-agent-next/worktree-review.ts - 1 suggestion
  • apps/web/src/components/cloud-agent-next/WorktreeReviewEditor.tsx - no issues; the editor effect now retains an un-rebasable editor instead of clearing it, and returns while the diff is unavailable
  • apps/web/src/components/cloud-agent-next/WorktreeReviewDialog.tsx - no issues; the new editor bindings match WorktreeReviewList props and make a retained editor dismissible from the dialog
  • apps/web/src/components/cloud-agent-next/worktree-review.test.mts - no issues; assertions match the new keep-at-original-capture behavior
  • apps/web/src/components/cloud-agent-next/worktree-review-bindings.renderer.test.mts - no issues; both new cases fail against the previous dropping/clearing behavior

Only the incremental commit's changed files were re-analyzed; findings in files untouched by this increment were not carried forward.

Fix these issues in Kilo Cloud

Previous review (commit 14ae058)

Status: No Issues Found | Recommendation: Merge

Executive Summary

The PR branch was restacked onto its base (8bb8e9ead), and the only incremental difference from the previously reviewed revision (1e53b3636) is a memo comparator line in ConversationMessages.tsx, a file that is not part of this PR's diff, so no PR-scoped code changed this pass and there are no new findings.

Files Reviewed (0 files this pass)

The PR diff (gh pr diff 5817) still contains the same 41 files / 8,864 insertions as the previously reviewed revision, and git diff 1e53b3636..HEAD over the PR areas is empty. The single incremental line (apps/web/src/components/cloud-agent-next/ConversationMessages.tsx:131) is the updated base branch's comparator (previous, next) => !previous.active && !next.active. It belongs to the base branch, is not a line changed by this PR (so it is not inline-commentable), and does not regress visible behavior: inactive panes are hidden (hidden={!chatTabActive} / forceMount) and re-render as soon as active flips.

Prior findings re-verified against current code (all PR files are byte-identical to the last reviewed revision):

  • apps/web/src/lib/cloud-agent-next/cloud-agent-client.ts - getMessageResult calls captureException and rethrows with the original error as cause (resolved)
  • apps/web/src/components/cloud-agent-next/CloudChatPage.tsx:725 - reviewCommentCounts counts only comments whose anchor.capture.sourceCloudAgentSessionId matches the current session (resolved)
  • apps/web/src/components/cloud-agent-next/useWorktreeReview.ts:334 - prepare fails when any frozen comment cannot be rebased (resolved)
  • apps/web/src/components/cloud-agent-next/WorktreeReviewEditor.tsx:140 - the file rebase keeps comments from other source sessions (resolved)
  • apps/web/src/components/cloud-agent-next/WorktreeReviewEditor.tsx:147 - the editor rebase effect returns while renderStatus !== 'ready' (resolved)
  • apps/web/src/components/cloud-agent-next/worktree-review-state.ts:545 - a generation-mismatched persist re-persists the current snapshot instead of unconditionally clearing (resolved)
  • apps/web/src/components/cloud-agent-next/worktree-review-selection.ts:54 - retracted as a false positive: unifiedIndexPart is a string, so the string 0 is truthy

Previous review (commit 1e53b36)

Status: No Issues Found | Recommendation: Merge

Executive Summary

The PR branch was restacked onto the latest base (the previously reviewed commit is no longer an ancestor of HEAD), but the PR's own changed files are byte-identical to the last reviewed revision, so there are no newly changed lines. All prior findings are verified resolved or correctly retracted at HEAD 1e53b3636.

Files Reviewed (0 changed files this pass)

The PR diff (gh pr diff 5817) still contains the same 41 files / 8,864 insertions as the previously reviewed revision, and a path-scoped git diff 6536096eb..HEAD over the PR areas is empty. Prior findings re-verified against current code:

  • apps/web/src/lib/cloud-agent-next/cloud-agent-client.ts:1093 - getMessageResult calls captureException with endpoint: 'getMessageResult' and rethrows with the original error as cause (resolved)
  • apps/web/src/components/cloud-agent-next/CloudChatPage.tsx:724 - comment counts are filtered to comment.anchor.capture.sourceCloudAgentSessionId === sessionId (resolved)
  • apps/web/src/components/cloud-agent-next/useWorktreeReview.ts:375 - prepare fails when any frozen comment cannot be rebased (resolved)
  • apps/web/src/components/cloud-agent-next/WorktreeReviewEditor.tsx:145 - the editor rebase effect returns while renderStatus !== 'ready', and the file rebase effect keeps other-source comments (resolved)
  • apps/web/src/components/cloud-agent-next/worktree-review-state.ts:273 - a generation-mismatched persist re-persists the current snapshot instead of unconditionally clearing (resolved)
  • apps/web/src/components/cloud-agent-next/worktree-review-selection.ts:54 - retracted as a false positive: unifiedIndexPart is a string, so the string 0 is truthy

Previous review (commit 6536096)

Status: No Issues Found | Recommendation: Merge

Executive Summary

The incremental diff since the last reviewed commit is empty (identical tree hash), so no newly changed lines required review, and both previously reported issues are verified fixed at HEAD: getMessageResult now reports failures via captureException and preserves cause, and the chat comment badge is capture-scoped.

Files Reviewed (0 changed files this pass)

The incremental diff from defd2738c to HEAD 6536096eb is empty - both trees hash to 4a84f1aa - so there are no changed lines to review. Prior findings were re-verified against current code:

  • apps/web/src/lib/cloud-agent-next/cloud-agent-client.ts:1093 - captureException is called with endpoint: 'getMessageResult' and the original error is rethrown as cause (resolved)
  • apps/web/src/components/cloud-agent-next/CloudChatPage.tsx:724 - comment counts are filtered to comment.anchor.capture.sourceCloudAgentSessionId === sessionId (resolved)

Previous review (commit defd273)

Status: No Issues Found | Recommendation: Merge

Executive Summary

The incremental commits resolve both prior findings: getMessageResult now calls captureException and preserves the original error as cause, and the chat comment badge is capture-scoped to the active session. No new issues were found on the changed lines.

Files Reviewed (4 files)
  • apps/web/src/lib/cloud-agent-next/cloud-agent-client.ts
  • apps/web/src/lib/cloud-agent-next/cloud-agent-client.test.ts
  • apps/web/src/components/cloud-agent-next/CloudChatPage.tsx
  • services/kilo-mcp/catalog.json (generated)

Previous review (commit b2edcd1)

Status: 2 Issues Found | Recommendation: Address before merge

Fix these issues in Kilo Cloud

Executive Summary

The new getMessageResult path converts worker, auth, and schema failures into an opaque 500 with no cause chain and no Sentry capture, so a failed review delivery cannot be diagnosed; the earlier unified-index finding in worktree-review-selection.ts was re-verified and is retracted as a false positive (the parsed value is a string, so the string 0 is truthy).

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 1
Issue Details (click to expand)

WARNING

File Line Issue
apps/web/src/lib/cloud-agent-next/cloud-agent-client.ts 1093 getMessageResult discards every non-NOT_FOUND error (no captureException, no cause) and its null path depends on an exact worker message string

SUGGESTION

File Line Issue
apps/web/src/components/cloud-agent-next/CloudChatPage.tsx 723 reviewCommentCounts ignores the source capture, so a per-chat drawer shows badges for comments created in another chat
Files Reviewed (24 source files plus changed test suites)
  • apps/web/src/components/cloud-agent-next/CloudAgentProvider.tsx
  • apps/web/src/components/cloud-agent-next/CloudChatPage.tsx - 1 issue
  • apps/web/src/components/cloud-agent-next/MessageBubble.tsx
  • apps/web/src/components/cloud-agent-next/WorktreeChanges.tsx
  • apps/web/src/components/cloud-agent-next/WorktreeFilePane.tsx
  • apps/web/src/components/cloud-agent-next/WorktreeFileRenderer.tsx
  • apps/web/src/components/cloud-agent-next/WorktreeReviewCommentForm.tsx
  • apps/web/src/components/cloud-agent-next/WorktreeReviewDialog.tsx
  • apps/web/src/components/cloud-agent-next/WorktreeReviewEditor.tsx
  • apps/web/src/components/cloud-agent-next/WorktreeReviewList.tsx
  • apps/web/src/components/cloud-agent-next/WorktreeReviewMessageCard.tsx
  • apps/web/src/components/cloud-agent-next/useWorktreeReview.ts
  • apps/web/src/components/cloud-agent-next/worktree-review-bindings.ts
  • apps/web/src/components/cloud-agent-next/worktree-review-persistence.ts
  • apps/web/src/components/cloud-agent-next/worktree-review-selection.ts
  • apps/web/src/components/cloud-agent-next/worktree-review-send.ts
  • apps/web/src/components/cloud-agent-next/worktree-review-state.ts
  • apps/web/src/components/cloud-agent-next/worktree-review.ts
  • apps/web/src/lib/cloud-agent-next/cloud-agent-client.ts - 1 issue
  • apps/web/src/lib/cloud-agent-next/worktree-review-access.ts
  • apps/web/src/routers/cloud-agent-next-router.ts
  • apps/web/src/routers/cloud-agent-next-schemas.ts
  • apps/web/src/routers/organizations/organization-cloud-agent-next-router.ts
  • packages/worker-utils/src/cloud-agent-worktree-changes.ts

Previous review (commit d7b80a3)

Status: 1 Issue Found | Recommendation: Address before merge

Fix these issues in Kilo Cloud

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
apps/web/src/components/cloud-agent-next/worktree-review-selection.ts 54 Truthy check treats unified index 0 as missing
Files Reviewed (6 files)
  • apps/web/src/components/cloud-agent-next/WorktreeReviewEditor.tsx
  • apps/web/src/components/cloud-agent-next/worktree-review-bindings.renderer.test.mts
  • apps/web/src/components/cloud-agent-next/worktree-review-bindings.ts
  • apps/web/src/components/cloud-agent-next/worktree-review-selection.ts - 1 issue
  • apps/web/src/components/cloud-agent-next/worktree-review.test.mts
  • apps/web/src/components/cloud-agent-next/worktree-review.ts

Previous review (commit ce81aaf)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (2 files)
  • apps/web/src/components/cloud-agent-next/worktree-review-state.test.mts
  • apps/web/src/components/cloud-agent-next/worktree-review-state.ts

Previous review (commit 23a0bc6)

Status: 1 Issue Found | Recommendation: Address before merge

Fix these issues in Kilo Cloud

Executive Summary

A generation-mismatch IndexedDB clear can delete a newer in-progress review draft after accept or discard.

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
apps/web/src/components/cloud-agent-next/worktree-review-state.ts 276 Stale persist generation clears can wipe a newer draft
Files Reviewed (2 files)
  • apps/web/src/components/cloud-agent-next/useWorktreeReview.test.ts
  • apps/web/src/components/cloud-agent-next/worktree-review-state.ts - 1 issue

Previous review (commit 4671023)

Status: 1 Issue Found | Recommendation: Address before merge

Fix these issues in Kilo Cloud

Executive Summary

A generation-mismatch IndexedDB clear can delete a newer in-progress review draft after accept or discard.

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
apps/web/src/components/cloud-agent-next/worktree-review-state.ts 276 Stale persist generation clears can wipe a newer draft
Files Reviewed (8 files)
  • apps/web/src/components/cloud-agent-next/WorktreeReviewEditor.tsx
  • apps/web/src/components/cloud-agent-next/useWorktreeReview.test.ts
  • apps/web/src/components/cloud-agent-next/useWorktreeReview.ts
  • apps/web/src/components/cloud-agent-next/worktree-review-bindings.renderer.test.mts
  • apps/web/src/components/cloud-agent-next/worktree-review-state.test.mts
  • apps/web/src/components/cloud-agent-next/worktree-review-state.ts - 1 issue
  • apps/web/src/components/cloud-agent-next/worktree-review.test.mts
  • apps/web/src/components/cloud-agent-next/worktree-review.ts

Previous review (commit 82fa7e4)

Status: 4 Issues Found | Recommendation: Address before merge

Fix these issues in Kilo Cloud

Overview

Severity Count
CRITICAL 0
WARNING 4
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
apps/web/src/components/cloud-agent-next/useWorktreeReview.ts 334 Unrebasable comments are dropped silently, then wiped on accept
apps/web/src/components/cloud-agent-next/WorktreeReviewEditor.tsx 147 Unsaved editors are discarded while the diff is still loading
apps/web/src/components/cloud-agent-next/WorktreeReviewEditor.tsx 141 Path-wide rebase deletes or reassigns comments from other source chats
apps/web/src/components/cloud-agent-next/worktree-review-state.ts 529 Accepted reviews can rehydrate from IndexedDB and be sent twice
Files Reviewed (40 files)
  • apps/web/src/components/cloud-agent-next/CloudAgentProvider.tsx
  • apps/web/src/components/cloud-agent-next/CloudChatPage.tsx
  • apps/web/src/components/cloud-agent-next/ConversationMessages.test.ts
  • apps/web/src/components/cloud-agent-next/MessageBubble.test.ts
  • apps/web/src/components/cloud-agent-next/MessageBubble.tsx
  • apps/web/src/components/cloud-agent-next/WorktreeChanges.tsx
  • apps/web/src/components/cloud-agent-next/WorktreeFilePane.tsx
  • apps/web/src/components/cloud-agent-next/WorktreeFileRenderer.tsx
  • apps/web/src/components/cloud-agent-next/WorktreeReviewCommentForm.tsx
  • apps/web/src/components/cloud-agent-next/WorktreeReviewDialog.tsx
  • apps/web/src/components/cloud-agent-next/WorktreeReviewEditor.tsx - 2 issues
  • apps/web/src/components/cloud-agent-next/WorktreeReviewList.tsx
  • apps/web/src/components/cloud-agent-next/WorktreeReviewMessageCard.tsx
  • apps/web/src/components/cloud-agent-next/terminal-tabs.test.ts
  • apps/web/src/components/cloud-agent-next/useWorktreeReview.test.ts
  • apps/web/src/components/cloud-agent-next/useWorktreeReview.ts - 1 issue
  • apps/web/src/components/cloud-agent-next/worktree-review-bindings.renderer.test.mts
  • apps/web/src/components/cloud-agent-next/worktree-review-bindings.renderer.test.ts
  • apps/web/src/components/cloud-agent-next/worktree-review-bindings.ts
  • apps/web/src/components/cloud-agent-next/worktree-review-persistence.test.mts
  • apps/web/src/components/cloud-agent-next/worktree-review-persistence.test.ts
  • apps/web/src/components/cloud-agent-next/worktree-review-persistence.ts
  • apps/web/src/components/cloud-agent-next/worktree-review-selection.ts
  • apps/web/src/components/cloud-agent-next/worktree-review-send.test.ts
  • apps/web/src/components/cloud-agent-next/worktree-review-send.ts
  • apps/web/src/components/cloud-agent-next/worktree-review-state.test.mts
  • apps/web/src/components/cloud-agent-next/worktree-review-state.test.ts
  • apps/web/src/components/cloud-agent-next/worktree-review-state.ts - 1 issue
  • apps/web/src/components/cloud-agent-next/worktree-review.test.mts
  • apps/web/src/components/cloud-agent-next/worktree-review.test.ts
  • apps/web/src/components/cloud-agent-next/worktree-review.ts
  • apps/web/src/lib/cloud-agent-next/cloud-agent-client.test.ts
  • apps/web/src/lib/cloud-agent-next/cloud-agent-client.ts
  • apps/web/src/lib/cloud-agent-next/worktree-review-access.ts
  • apps/web/src/routers/cloud-agent-next-router.test.ts
  • apps/web/src/routers/cloud-agent-next-router.ts
  • apps/web/src/routers/cloud-agent-next-schemas.ts
  • apps/web/src/routers/organizations/organization-cloud-agent-next-router.test.ts
  • apps/web/src/routers/organizations/organization-cloud-agent-next-router.ts
  • packages/worker-utils/src/cloud-agent-worktree-changes.ts

Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0

Review guidance: REVIEW.md from base branch eshurakov/boundless-sphinx

Comment thread apps/web/src/components/cloud-agent-next/worktree-review-state.ts Outdated
@eshurakov
eshurakov force-pushed the eshurakov/spry-mangrove branch from d7b80a3 to 8186e5a Compare September 15, 2026 08:20
Comment thread apps/web/src/lib/cloud-agent-next/cloud-agent-client.ts Outdated
Comment thread apps/web/src/components/cloud-agent-next/CloudChatPage.tsx
@eshurakov
eshurakov force-pushed the eshurakov/spry-mangrove branch 2 times, most recently from defd273 to 6536096 Compare September 15, 2026 09:09
@eshurakov
eshurakov force-pushed the eshurakov/spry-mangrove branch from 6536096 to 1e53b36 Compare September 15, 2026 11:09
@eshurakov
eshurakov force-pushed the eshurakov/spry-mangrove branch from 1e53b36 to 14ae058 Compare September 15, 2026 11:37
Comment thread apps/web/src/components/cloud-agent-next/worktree-review-state.ts
Comment thread apps/web/src/components/cloud-agent-next/WorktreeReviewEditor.tsx Outdated
Comment thread apps/web/src/components/cloud-agent-next/worktree-review.ts
- Add saved-diff line/range comments, cross-file drafts, and one batched Send review to agent action.
- Preserve immutable reviewed context and explicit stale-review handling across file and chat switches.
- Pin and authorize the destination worktree/chat, retaining the same message identity for uncertain retries.

Restacked onto latest main and squashed to one commit.
Do not drop a saved comment when its diff is missing and do not clear editor
text when it cannot be rebased. Show the retained editors in the review
dialog and add regression coverage for missing diffs, moved quotes and
unrebasable editors.
The review dialog now shows each comment's capture freshness and offers a
discard action for comments that are not on the current saved capture, so a
retained comment can be identified and removed before sending.
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.

2 participants