Repository navigation
Stop the isolation boundary when cancellation is trapped before wait - #9
Merged
Merged
Conversation
…wait A bash trap taken between two commands does not interrupt the following wait, so TERM sent only to isolate-run.sh before the session leader was known, or just before wait, left the script blocked on a command that ignores the signal. The trap now runs the stop sequence itself. Co-authored-by: Oleksiy Akimov <oakimov@users.noreply.github.com>
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.
Summary
Compares open OCP #8 (the port of cursor-opencode-provider #177) with the provider follow-ups #178 and #179, and ports the shared harness behavior that was still missing.
ghcall inpost,threads, andcomplete-resolutions.py. This branch does not repeat that change.isolate-run.shalready forwarded TERM, INT, HUP, and QUIT and killed a session afterISOLATE_TERM_GRACE, but the grace loop ran only afterwait. A bash trap taken between two commands does not interrupt the followingwait, so a signal that arrived before the session leader was known, or just beforewait, left the script blocked on a command that ignores TERM. The trap now runs the stop sequence itself and returns only when the leader is gone.isolated-check.shstill waits for that boundary before removing the archive and exits 128 plus the signal number. The review-eval ownership fixture creates its heartbeat once and appends withoutO_CREAT, so a write cannot recreate the file between unlink and rmdir.preload, a fetch/net guard, host-cache restore, and stubbed model-discovery tests). This repository has no Cursor auth store, no live model discovery, and no--livepath.Product differences kept on purpose:
scripts/live-test.sh, nocheck_run_live, and noCURSOR_API_KEYinside the boundary. Interactive stock-host acceptance stays outside the isolated check.sandbox-execis not stopped with the boundary.Test plan
bash -n scripts/isolate-run.sh scripts/isolated-check.shbunx tsc -p tsconfig.test.json --pretty falsebun test ./test/review-scripts.test.ts— 35 pass, 0 fail, including TERM before the session leader is known, TERM just beforewait, a command that ignores TERM, a command that stops itself, andisolated-check.shon SIGTERM and SIGINTbun test ./test/review-eval.test.ts -t "settling runners"— 1 pass