Skip to content

Prototype: TypeScript Pickup and bounded BFS verification - #1845

Merged
JacobStephens2 merged 2 commits into
issue-1831from
issue-1838
Nov 6, 2026
Merged

JacobStephens2 merged 2 commits into
issue-1831from
issue-1838

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Nov 6, 2026 •

Copy link
Copy Markdown
Owner

Summary

Add Pickup and an independent bounded BFS checker to the isolated TypeScript prototype.

pickup
  list Ready candidates, lowest number first
  reserve origin ref with an empty create lease
  refresh readiness and compare the selected Claim count
  apply Claim → start Ticket session
  end Claim → release with the owner's token

Busy and stale selections move on to the next candidate. Uncertain origin results fail closed with recovery evidence. The model exhausts three-host interleavings, crashes and Day shift recovery; both unguarded variants must produce shortest counterexample traces.

This Ticket-only prototype applies the Claim before session dispatch. Its model verifies that ordering; it does not prove the Rust protocol's known failing pre-Claim dispatch property. Specs, Continuation and Delivery remain outside this slice.

Closes #1838

Evidence

Execution evidence

  • Before: PATH=/home/jstephens/.bun/bin:$PATH bun test --cwd prototypes/typescript -t 'Pickup selects' failed: expected empty stderr, received Invalid URL (0 pass, 1 fail).
    After: the same command passed (1 pass, 0 fail); it verifies lowest-numbered selection, a parentless empty-tree reservation during the session, atomic Claim application and reservation release.
  • Before: PATH=/home/jstephens/.bun/bin:$PATH bun test ./.thirdshift-review-RdXbAv/spec-case.test.ts failed (0 pass, 1 fail), returning a Ready issue with an active In-Progress Claim.
    After: the exact same command passed (1 pass, 0 fail). Its regression is retained in prototypes/typescript/tests/ready.test.ts; CLI tests also cover differently cased history and preserving unrelated label spelling.
  • Final validation: PATH=/home/jstephens/.bun/bin:$PATH scripts/affected-tests origin/issue-1831 passed TypeScript typechecking and all 36 Bun tests. CLI cases include contention, stale re-reads, trust/history rejection, paginated edits, remote errors, changed-token release and interruption cleanup.

Test seams: standalone CLI against temporary origin repositories and fake gh/Harness executables; independent request-level BFS; the exported ReadyIssues.read seam with a fake command adapter for the retained review regression.

Review

Fixed point: remote issue-1831, pinned to 1aff914c3afdb32a690db2556759b5b07aed5536. The local branch is checked out in another worktree and stale, so validation uses its fetched remote tracking ref.

  • Standards: 2 findings addressed—exhaustive tagged Pickup outcomes and removal of unused model state.
  • Spec: 1 behavioral finding reproduced, fixed and retained as a regression—case-insensitive GitHub label comparisons.
  • Both axes read all 11 changed files. Changed files left unread: none. Generated-output exclusions: none.
  • Session reports: .thirdshift-review-RdXbAv/standards.md, spec.md, and summary.json ({"standards":2,"spec":1}).

Unaddressed findings

Standards

None.

Spec

None.

Security

None.

Security review outcome

No unaddressed introduced findings.

Merge Danger

Door: two-way

The changes are confined to the prototype. Running Pickup creates origin reservation refs and changes issue labels; interrupted or uncertain ownership can require the documented token-leased human recovery.

Blast Radius: Prototype

The production Rust executable and website are unchanged. The existing prototype Claim also uses atomic label PUTs and case-insensitive comparisons.

Built with codex codex-cli 0.160.0 · gpt-6.1-sol · high

CI notes

  • site-test, run 42292769651 exceeded its existing 10-minute job limit: APT downloaded 21.1 MB of browser dependencies in 9m 2s at 38.9 kB/s; all 67 tests passed (0 failed) before cancellation. Unrelated to this branch: git diff origin/issue-1831...HEAD -- .github/workflows site docs/guide.md is empty (base 1aff914c). Local npm test --prefix site passed all 67 tests and docs generation checks; PATH=/home/jstephens/.bun/bin:$PATH scripts/affected-tests origin/issue-1831 passed typechecking and all 36 Bun tests.

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