Repository navigation
fix(harness): retain local Claude bridges while approval is pending - #6567
Closed
chelojimenez wants to merge 1 commit into
Closed
chelojimenez wants to merge 1 commit into
chelojimenez wants to merge 1 commit into
Conversation
Contributor
Author
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
Contributor
Internal previewPreview URL: https://mcp-inspector-pr-6567.up.railway.app |
chelojimenez
force-pushed
the
fix/local-claude-approval-park
branch
from
October 17, 2026 00:26
d20bba8 to
386e4c8
Compare
chelojimenez
had a problem deploying
to
preview-pr-6567
October 17, 2026 00:26 — with
GitHub Actions
Error
This was referenced Oct 17, 2026
ignaciojimenezr
approved these changes
Oct 17, 2026
Contributor
Author
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Task, spec and plan
User story
As a local Claude Code Playground user, I want my approval to answer the command already waiting, so that the command does not need to be proposed again.
Acceptance criteria
What this does
Claude Code's canUseTool waits inside its bridge, so a pending approval must retain that bridge just as Codex does. Enable the existing live runtime parking path for Claude, preserve its continuation token, and exercise the actual UI stream finalizer across successive responses. The local preparation tests now exercise lease renewal and teardown with both runtimes. The vendor bridge's requestToolApproval waits on its pending promise without a timer, while the existing park registry enforces the 30-minute lifetime.
Documentation
Nothing applicable
Architecture
Screenshots and recordings
None: no UI change
Deleted
The incorrect lifecycle comment claiming a pending Claude approval can be resumed by restarting from disk.
Reused
The existing liveApprovalRuntime capability, approval-park and session-registry state machines, adoptParkedLocalTurn lease rebind, UI stream finalization, and local turn preparation tests.
Production signal
A local Claude approval completes on the already displayed command; existing parked-session and teardown signals identify its lifetime. No new telemetry is introduced.
Checklist
large-pr/mechanical.as any, emptycatch,.catch(() => {})or rawconsoleon the server.The process stream and external broker are test fixtures. This validates the HTTP stream lifecycle and real parking/claim/registry boundaries; native runtime qualification on installed packs and production remains a separate release gate.
Validation
97 targeted tests pass (5 HTTP stream lifecycle tests and 92 local preparation, layer and pack tests). Locked dependency drift and slop checks pass; the harness layer was regenerated.
CI run 38986408656 at head
386e4c8a3has two unresolved test failures:abortedassertion observes false.conversation=original-chat-session.Local comparison used the exact PR head
386e4c8a3and exact basec0b7c52a4with the same installed dependencies and single-worker Vitest. On each revision, the complete hosted-upstream file passed 6/6, the complete PlaygroundMain file passed 138/138, and the isolated rewind case passed. The relevant UI, URL synchronization, hosted-route, and test sources are unchanged by this PR. These runs did not reproduce either CI failure and do not establish that CI is resolved.The hosted test still uses its existing unsynchronized 50 ms real-time timeout; the separate request-start synchronization fix is not included in this head. The rewind test mock keeps the original live session ID after its branch callback, which may allow URL synchronization to restore it; this remains a hypothesis because neither isolated nor full-file comparison reproduced the CI result. No production behavior or assertions were changed to force these checks green. Keep this PR draft pending resolution of the failed checks.
Need help on this PR? Tag
@codesmith-botwith what you need.