Repository navigation
TypeScript prototype: Ticket Delivery and bounded CI Repair - #1846
Merged
Merged
Conversation
A pull request from another repository can reuse the Issue branch name. Delivery treated that pull request as its own and could mark it ready. Ignore cross-repository pull requests, and bind the pull request just opened.
Preserve Pickup reservation and Claim handling while running dispatched Tickets through Delivery, Repair and failed-run salvage. Reconcile the prototype documentation and assertions for published work, and cover Pickup salvage and reservation lifetime.
Preserve Delivery and bounded Repair documentation alongside the incoming shared-schema Console slice. Validated with scripts/affected-tests origin/issue-1831: typecheck and 54 Bun tests passed.
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
Extend the isolated TypeScript prototype through Delivery, with exhaustive
Run, Claim, Delivery and CI state unions and no
any/ascasts.Published work keeps its Claim; nothing on origin releases a new Claim and
restores prior readiness. Failed pushes retain local work and still convert
an existing ready PR to a draft. The README records prototype limits.
Closes #1837
Evidence
Execution evidence
Before:
PATH=/home/jstephens/.bun/bin:$PATH bun test --cwd prototypes/typescript -t 'green Delivery'failed because no PR was created:
Expected: true; Received: false(0 pass, 1 fail).After: the same command passed (1 pass, 0 fail).
Before: the Spec review's compiled-CLI regression
PATH=/home/jstephens/.bun/bin:$PATH bun test --cwd /tmp/thirdshift-spec-review-9dq6ijda/prototypes/typescript -t 'Failed salvage drafts an existing ready PR even when repaired commits cannot push'failed:
Expected: true; Received: false(0 pass, 1 fail; 8.14s).After: retained the test and ran
PATH=/home/jstephens/.bun/bin:$PATH bun test --cwd prototypes/typescript -t 'Failed salvage drafts an existing ready PR even when repaired commits cannot push':1 pass, 0 fail (5.83s).
PATH=/home/jstephens/.bun/bin:$PATH scripts/affected-tests issue-1831:initial
tsc --noEmitpassed (3.61s) and all 27 CLI tests passed (76.47s).The older pinned review ref also selected Rust checks: compilation took
4m 37s, and the Rust unit suite passed with 1,657 passed / 3 ignored
(422.86s). The broader command was intentionally stopped during unrelated
integration suites after 785.17s; the live PR base already includes TypeScript prototype: isolated bun build --compile binary, embedded skills, and Ticket run through Harness session #1836
and this PR changes only the prototype.
PATH=/home/jstephens/.bun/bin:$PATH scripts/affected-tests 2f7bcb2e:follow-up changes passed
tsc --noEmit(4.59s) and all 28 CLI tests(77.28s), including the retained Spec regression.
PATH=/home/jstephens/.local/share/uv/python/cpython-3.12.12-linux-x86_64-gnu/bin:$PATH python3 -m unittest discover -s scripts -p 'test_*.py':all 37 tests passed (22.55s). The default Python 3.9 failed on missing
tomllib; using Python 3.12 for both the runner and its children resolved it.Final validation:
PATH=/home/jstephens/.bun/bin:$PATH scripts/affected-tests origin/issue-1831selected only the prototype and passed
tsc --noEmit(3.29s) and all28 CLI tests (71.98s).
CI: site-test passed.
The initial Console job
failed on the existing
Copy fix command works on ready Inbox rows and in Command detailstest:locator.getAttribute: Timeout 5000ms exceeded, waitingfor its Copy fix command button. No Console source or tests differ from the
live PR base. GitHub rejected the job rerun while the workflow remained in
progress; the main Rust CI job is still running.
Seam under test: the compiled standalone CLI, invoked from real temporary Git
repositories with fake
ghand Harness executables on PATH. Assertions coverexit codes, remote commits, merge ancestry, PR readiness and issue labels.
PATH=/home/jstephens/.bun/bin:$PATH bun test --cwd prototypes/typescript -t 'Delivery does not adopt or mark ready a fork pull request'failed (0 pass, 1 fail): Delivery did not create a pull request and called
gh pr readyon the pre-existing number 1.After: the same command passed (1 pass, 0 fail).
PATH=/home/jstephens/.bun/bin:$PATH scripts/affected-tests 1aff914c3afdb32a690db2556759b5b07aed5536:passed
tsc --noEmit(2.49s) and all 29 CLI tests (67.56s).Review coverage
Independent Standards and Spec reviews used
issue-1831pinned at305923a8e93a286b6fa546ddfc02fa30abc23f64. Each read all 18 changed files,including supporting standards and domain documents. Changed files left unread:
none. Generated-output exclusions: none.
Standards: 1 P3 fixture-duplication finding, addressed with shared helpers.
Spec: 1 P2 failed-push draft-salvage finding, reproduced, fixed and retained as
a regression test. Counts include findings subsequently fixed.
Security: 1 introduced finding, reproduced, fixed, and retained as
a regression test.
Unaddressed findings
Security review outcome
No unaddressed introduced findings.
Merge Danger
Door: two-way
The prototype is isolated; this changes no production Rust behavior or ADR-0001.
Blast Radius: prototype
Running the prototype intentionally pushes Issue branches and changes PR and
Claim state in its target repository. Automated tests use private local origins
and fake GitHub/Harness executables.
Built with codex codex-cli 0.160.0 · gpt-6.1-sol · high