Repository navigation
Add isolated TypeScript Ticket run prototype - #1842
Merged
Merged
Conversation
This was referenced Nov 6, 2026
Merged
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
Adds the isolated Linux TypeScript prototype under
prototypes/typescript/and its affected-test routing. Prototype-only changes select its typecheck andbun test; changes elsewhere never select the prototype suite. Mixed changes preserve existing routing and add prototype checks independently. Delivery and Pickup remain later tickets in #1831; production Rust behavior and ADR-0001 stay in place.Closes #1836
Evidence
Execution evidence
python3 -m unittest scripts.test_affected_tests.AffectedTests.test_typescript_only_runs_its_typecheck_and_testsfailed: actual[['cargo', 'nextest', 'run']], expected prototype typecheck and tests.After: the same regression passes; the selector suite has 26 passing tests.
bun test --cwd prototypes/typescriptfailed to build:Could not resolve: "../src/ticket.ts". The first successful-session regression then failed withENOENT ... /sessionbefore session orchestration was implemented.After:
bun run --cwd prototypes/typescript typecheckpasses;bun test --cwd prototypes/typescriptreports 14 pass, 0 fail, including compilation to an ELF x86-64 Linux executable (109,545,648 bytes) and execution with no Bun on PATH.expected one exclusion, found 2; missing Claim label failed with exit 1 instead of 0; closure of an existing Claim failed within-progressleft behind. The same reproduction commands pass after the fixes, and their regressions remain in the CLI suite.python3 -m unittest discover -s scripts -p 'test_*.py': 37 tests, OK with Python 3.12 on PATH for both the parent and nested commands. The host's default Python initially failed existing release-generator tests because it lackstomllib.scripts/affected-tests 16d018e0(the prototype-only review-fix range): PASS, selecting only typecheck andbun test, with 14 tests passing and no Rust suite selected.51302871:cargo build --lockedpasses;python3 -m unittest discover -s scripts -p 'test_*.py'passes all 37 tests with Python 3.12;NEXTEST_TEST_THREADS=6 scripts/affected-tests issue-1831passes TypeScript typechecking and all 16 CLI tests. The reported Copy fix command test passes in the full local Console run with lockfile dependencies installed. Broader failures are recorded in CI notes.Test seams
scripts/affected-testsCLI against temporary real Git repositories and recorded runner executables: prototype-only, Rust-only and mixed selection.CI notes
Copy fix command works on ready Inbox rows and in Command detailstest at1440:ready for review:green:conflicting Peek(0 !== 1); the earlier run failed its red/conflicting case, while the focused local invocation and the full local Console run pass this test.git diff --exit-code issue-1831 HEAD -- Cargo.toml Cargo.lock src skills console .github/workflowsexits 0: the test, runtime inputs and CI check are unchanged.npm test --prefix console, afternpm ci --prefix consoleand installing pinned Chromium, reports 147 pass / 3 fail in 187.16s on Node 22.20.0: both JavaScript phone Dismiss cases time out atinbox.test.cjs:741, and Stop/requeue reads a null bounding box atstop.test.cjs:97; all three tests and their runtime inputs are unchanged under the same empty diff above.NEXTEST_TEST_THREADS=6 scripts/affected-tests issue-1831stops at unchangedidle::unchanged_requests_reuse_retained_records_but_replacements_are_visible:unchanged request reread 156181 bytesagainst a 48 KiB limit (355.42s; cached Rust compilation 0.63s), matching the earlier isolated failure of 156383 bytes. Rust inputs are unchanged under the empty diff above, and Rust CI passed on this exact head. No code was changed for these unrelated failures.Review coverage
Independent
thirdshift-code-reviewaxes comparedissue-1831...HEAD, then reviewed the new Claim module and final fix hunks. Standards: 2 findings, both addressed. Spec: 2 findings, both addressed. Each axis read all 15 changed files. No generated-output exclusions and no unread changed files.Unaddressed findings
Standards
None. The duplicate-exclusion finding was reproduced and fixed; Claim policy was extracted into
prototypes/typescript/src/claim.ts.Spec
None. Both Claim findings were reproduced, fixed and covered by retained CLI tests.
Security
None. Two introduced findings were reproduced with local CLI regressions and fixed: a non-canonical Issue URL is rejected before any GitHub call, and writing
.thirdshift-issue.mdrefuses to follow a symlink. Both regressions remain inprototypes/typescript/tests/ticket.test.ts.bun test --cwd prototypes/typescriptreports 16 pass, 0 fail.Security review outcome
No unaddressed introduced findings.
Merge Danger
Door: two-way
The prototype is isolated and removable. Its executable operates on the explicitly supplied repository and issue, retaining Worktrees for inspection.
Blast Radius: testing
The shared change is affected-test selection; routing regressions cover the new boundary and mixed changes. The production Rust executable is unchanged.
Built with codex codex-cli 0.160.0 · gpt-6.1-sol · high