Skip to content

TypeScript prototype: Ticket Delivery and bounded CI Repair - #1846

Merged
JacobStephens2 merged 5 commits into
issue-1831from
issue-1837
Nov 6, 2026
Merged

JacobStephens2 merged 5 commits into
issue-1831from
issue-1837

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Nov 6, 2026 •

Copy link
Copy Markdown
Owner

Summary

Extend the isolated TypeScript prototype through Delivery, with exhaustive
Run, Claim, Delivery and CI state unions and no any/as casts.

opening Harness commits
  → push Issue branch → open/verify draft PR → merge Base branch updates
  → watch exact-head checks + commit statuses
      red/conflict → Repair (maximum 5) → publish and watch again
      green/absent + mergeable → ready for review
failure → abort unfinished merge → salvage commits + draft PR → end Claim

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 --noEmit passed (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-1831
    selected only the prototype and passed tsc --noEmit (3.29s) and all
    28 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 details test: locator.getAttribute: Timeout 5000ms exceeded, waiting
for 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 gh and Harness executables on PATH. Assertions cover
exit codes, remote commits, merge ancestry, PR readiness and issue labels.

  • Before: 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 ready on 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-1831 pinned at
305923a8e93a286b6fa546ddfc02fa30abc23f64. 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

  • Standards: none.
  • Spec: none.
  • Security: none.

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

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant