Repository navigation
Conversation
|
Important Review skippedReview was skipped as selected files did not have any reviewable changes.
|
There was a problem hiding this comment.
Actionable comments posted: 1

Review info
-
Run configuration-
- Source mode: Auto
- Repository: Unavailable
- Branch: Unavailable
- File: No configuration file from this repository applied
- Commit: Unavailable
- Layers: Repository UI
- Review profile: CHILL
- Plan: Advanced
- Run ID:
fbeb584d-fe8c-4fed-8095-60212d5f7fd2
Files selected for processing: 5-
src/cli/runtime/client-capabilities.tssrc/cli/runtime/transport.test.tssrc/cli/runtime/transport.tssrc/cli/runtime/websocket-transport.test.tssrc/cli/runtime/websocket-transport.ts
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.
-
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to GitHub limitations.

Minor · Forward local client capabilities into dispatch. · transport.ts:184-199
src/cli/runtime/transport.ts:184-199
🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick winForward local client capabilities into dispatch.
The local frame includes
clientCapabilities, butRuntimeRpcRequestAdmissionpasses onlysignalandcallerScopetodispatcher.dispatch. Local CLIworktree.rm,worktree list, andworktree pstherefore receive noRpcContext.clientCapabilitiesand use legacy behavior.Keep
parseAndAuthand the existing response flow unchanged:Suggested fix
signal: longPoll || request.method === 'linear.commentEdit' || request.method === 'linear.commentDelete' ? context?.signal : undefined, - callerScope + callerScope, + clientCapabilities: request.clientCapabilities

Review info
-
Run configuration-
- Source mode: Auto
- Repository: Unavailable
- Branch: Unavailable
- File: No configuration file from this repository applied
- Commit: Unavailable
- Layers: Repository UI
- Review profile: CHILL
- Plan: Advanced
- Run ID:
f1fec242-6935-4b6a-97e5-5834c074ce83
Files selected for processing: 2-
src/cli/format.test.tssrc/cli/workspace-format.ts
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 8 remain after this review.
-
f103d38 to
3e94a6c
Compare
…tcome Advertise worktree.background-removal.v1 on the CLI client frames so a capable host waits out the delete instead of answering early, and share the CLI capability list between the local socket and paired transports.
3e94a6c to
cb1ed80
Compare
|
Superseded by #35459 (with #35458), merged on 2026-10-29, which closed #35135. |
ELI5
orca worktree rmused to sayremoved: trueright away, while the checkout was still being deleted in the background. If that background delete failed — for example on a checkout with an initialised submodule, which Git refuses to remove without--force— the failure only ever reached the runtime's own log. The CLI now declares it can wait, soworktree rmwaits out the deletion and reports the real outcome: success, or the actual Git failure.What Changed
Before: the CLI never advertised
worktree.background-removal.v1, so hosts treated it as a legacy client:worktree.rmreturned an acceptance reply (removed: true,removing: true) before any deletion happened, and pending-removal rows were omitted fromworktree list/psso a stuck checkout was invisible. The hardcoded acceptanceremoved: truein the RPC method is kept — genuinely old clients depend on it to drop the row.After:
client-capabilities.ts) advertisesworktree.background-removal.v1on both the local socket frame and the remote WebSocket handshake.clientCapabilities: the frame is owner-token authenticated and parsed directly as theRpcRequest, so the field rides it like a per-connection negotiation. The capability only changes what the host reports back to this client (waited results, visible removing rows); it grants no authority and unlocks no gate.worktree.rmwaits for the background settlement: success resolves truthfully, and a failed deletion rejects so the Git error reaches the CLI instead of only aconsole.warnin the runtime log.worktree list/ps, so a checkout stuck mid-deletion stays visible.Requests keep the default 60s timeout: a deletion slower than that reports
runtime_timeoutwhile the background job keeps running, and a subsequentworktree rmjoins the same pending settlement to report its outcome.Why
#35135: scripts calling
orca worktree rmin a loop receivedremoved: trueper call while nothing was being removed, and every failure was invisible.Linked Issue
Addresses the acceptance-reply half of #35135. The reporter's retry-loop/backoff observations are deliberately not in scope here.
Visual Proof
N/A — no rendered UI change.
Testing
transport.test.ts: the local frame now assertsclientCapabilitiescontainsworktree.background-removal.v1alongside the owner auth token.websocket-transport.test.ts: the handshake capability array gains the same entry.