Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
0646d80
Add isolated Go Ticket-run prototype (#1832)
JacobStephens2 Nov 6, 2026
700213c
Limit interrupted-mutation fixture to Claim acquisition
JacobStephens2 Nov 6, 2026
246e3ff
Restore only labels changed by the prototype Claim
JacobStephens2 Nov 6, 2026
453fdc7
Refuse to follow a symlinked issue file
JacobStephens2 Nov 6, 2026
1bbcc4f
Merge pull request #1841 from JacobStephens2/issue-1832
JacobStephens2 Nov 6, 2026
6a7038d
Extend Go Ticket runs through Delivery and bounded Repairs (#1833)
JacobStephens2 Nov 6, 2026
d7dfc96
Implement Go Pickup reservation and bounded BFS verification (#1834)
JacobStephens2 Nov 6, 2026
ad03184
Address Delivery review findings and retain CLI regressions
JacobStephens2 Nov 6, 2026
fef1253
Align Claim label requests with the Pickup model and share Launch dis…
JacobStephens2 Nov 6, 2026
8d189ff
Do not attest a ready pull request on a partial CI listing
JacobStephens2 Nov 6, 2026
e1005e7
Do not treat an open workflow run as green CI
JacobStephens2 Nov 6, 2026
1476c69
Refuse a Claim that would erase a label applied after the readiness read
JacobStephens2 Nov 6, 2026
c04fa3a
Ignore a fork pull request when publishing Delivery
JacobStephens2 Nov 6, 2026
fb48663
Merge pull request #1850 from JacobStephens2/issue-1834
JacobStephens2 Nov 6, 2026
2a1718d
Merge origin/issue-1830 into issue-1833
JacobStephens2 Nov 6, 2026
da63d90
Merge pull request #1849 from JacobStephens2/issue-1833
JacobStephens2 Nov 6, 2026
82cc4dc
Add reproducible Go and Rust benchmark runner for #1835
JacobStephens2 Nov 6, 2026
3068956
Publish measured Go and Rust comparison for #1835
JacobStephens2 Nov 6, 2026
72a77a1
Merge pull request #1854 from JacobStephens2/issue-1835
JacobStephens2 Nov 7, 2026
4eabc2e
Preserve unrelated Claims and consolidate Go prototype CI logic
JacobStephens2 Nov 7, 2026
19a4aa5
Ignore a fork pull request when ending a Claim
JacobStephens2 Nov 7, 2026
d01a559
Merge origin/main into issue-1830
JacobStephens2 Nov 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/workflows/go-prototype.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Go prototype

on:
pull_request:
paths: ['prototype/go/**', '.github/workflows/go-prototype.yml']
push:
branches: [main]
paths: ['prototype/go/**', '.github/workflows/go-prototype.yml']

concurrency:
group: go-prototype-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
go-prototype:
runs-on: ubuntu-24.04
timeout-minutes: 10
defaults:
run:
working-directory: prototype/go
steps:
- uses: actions/checkout@v7
- uses: actions/setup-go@v6
with:
go-version-file: prototype/go/go.mod
cache: false
- run: python3 bundle-skills.py --check
- run: test -z "$(gofmt -l *.go)"
- run: go vet ./...
- run: go test ./...
- run: CGO_ENABLED=0 go build -o "$RUNNER_TEMP/thirdshift-go" .
13 changes: 13 additions & 0 deletions docs/research/go-vs-rust-benchmark-2026-11-06/1-go-model_check.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
$ /tmp/thirdshift-benchmark-sl4wkj08/go-tests '-test.run=^TestPickupModel' -test.count=1 -test.v
=== RUN TestPickupModelSafety
pickup_model_test.go:267: ADR-0017: 1993250 unique states
--- PASS: TestPickupModelSafety (4.15s)
=== RUN TestPickupModelMutations
=== RUN TestPickupModelMutations/WithoutClaimCount
pickup_model_test.go:285: WithoutClaimCount: 119601 states; shortest dispatch trace (19): [ListReady(0) SelectHistory(0) CreateReservation(0) RefreshIssue(0) RefreshHistory(0) ListReady(1) SelectHistory(1) PutClaimLabels(0) PrepareWorktree(0) Dispatch(0) KeepClaimWithOriginWork(0) ReleaseReservation(0) CreateReservation(1) DayHandsBack RefreshIssue(1) RefreshHistory(1) PutClaimLabels(1) PrepareWorktree(1) Dispatch(1)]; shortest claimed trace (19): [ListReady(0) SelectHistory(0) CreateReservation(0) RefreshIssue(0) RefreshHistory(0) ListReady(1) SelectHistory(1) PutClaimLabels(0) PrepareWorktree(0) Dispatch(0) KeepClaimWithOriginWork(0) ReleaseReservation(0) CreateReservation(1) DayHandsBack RefreshIssue(1) RefreshHistory(1) PutClaimLabels(1) PrepareWorktree(1) Dispatch(1)]
=== RUN TestPickupModelMutations/UnconditionalCreate
pickup_model_test.go:285: UnconditionalCreate: 223036 states; shortest dispatch trace (16): [ListReady(0) SelectHistory(0) CreateReservation(0) RefreshIssue(0) RefreshHistory(0) ListReady(1) SelectHistory(1) CreateReservation(1) RefreshIssue(1) RefreshHistory(1) PutClaimLabels(0) PrepareWorktree(0) Dispatch(0) PutClaimLabels(1) PrepareWorktree(1) Dispatch(1)]; shortest claimed trace (16): [ListReady(0) SelectHistory(0) CreateReservation(0) RefreshIssue(0) RefreshHistory(0) ListReady(1) SelectHistory(1) CreateReservation(1) RefreshIssue(1) RefreshHistory(1) PutClaimLabels(0) PrepareWorktree(0) Dispatch(0) PutClaimLabels(1) PrepareWorktree(1) Dispatch(1)]
--- PASS: TestPickupModelMutations (0.76s)
--- PASS: TestPickupModelMutations/WithoutClaimCount (0.26s)
--- PASS: TestPickupModelMutations/UnconditionalCreate (0.50s)
PASS
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
$ /tmp/thirdshift-benchmark-sl4wkj08/rust-target/debug/deps/pickup_model-1d72f02ce05acf2e --test-threads=1 --nocapture

running 5 tests
test assert_requested_property ... ignored, known pre-Claim dispatch finding; run explicitly to see the failure
test current_protocol_reports_pre_claim_dispatch_counterexample ... Current, Dispatch: 7093 unique states
KNOWN FINDING: the literal dispatch property fails: Path[14]:
- ListReady(0)
- SelectHistory(0)
- CreateReservation(0)
- RefreshIssue(0)
- RefreshHistory(0)
- Dispatch(0)
- FailBeforeClaim(0)
- ReleaseReservation(0)
- ListReady(1)
- SelectHistory(1)
- CreateReservation(1)
- RefreshIssue(1)
- RefreshHistory(1)
- Dispatch(1)

ok
test pickup_claimed_dispatch_safety ... Current, ClaimedDispatch: 86745 unique states
ok
test removing_claim_count_recheck_is_detected ... WithoutClaimCount, ClaimedDispatch: 20675 unique states
Claim-count mutation counterexample: Path[19]:
- ListReady(0)
- SelectHistory(0)
- CreateReservation(0)
- RefreshIssue(0)
- RefreshHistory(0)
- Dispatch(0)
- ReadClaimLabels(0)
- ListReady(1)
- SelectHistory(1)
- PutClaimLabels(0)
- KeepClaim(0)
- ReleaseReservation(0)
- CreateReservation(1)
- DayHandsBack
- RefreshIssue(1)
- RefreshHistory(1)
- Dispatch(1)
- ReadClaimLabels(1)
- PutClaimLabels(1)

ok
test removing_empty_create_lease_is_detected ... UnconditionalCreate, ClaimedDispatch: 22520 unique states
Empty-lease mutation counterexample: Path[15]:
- ListReady(0)
- SelectHistory(0)
- CreateReservation(0)
- RefreshIssue(0)
- RefreshHistory(0)
- Dispatch(0)
- ReadClaimLabels(0)
- ListReady(1)
- SelectHistory(1)
- CreateReservation(1)
- RefreshIssue(1)
- RefreshHistory(1)
- PutClaimLabels(0)
- Dispatch(1)
- ReadClaimLabels(1)

ok

test result: ok. 4 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.12s

13 changes: 13 additions & 0 deletions docs/research/go-vs-rust-benchmark-2026-11-06/2-go-model_check.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
$ /tmp/thirdshift-benchmark-f7shrf8g/go-tests '-test.run=^TestPickupModel' -test.count=1 -test.v
=== RUN TestPickupModelSafety
pickup_model_test.go:267: ADR-0017: 1993250 unique states
--- PASS: TestPickupModelSafety (4.15s)
=== RUN TestPickupModelMutations
=== RUN TestPickupModelMutations/WithoutClaimCount
pickup_model_test.go:285: WithoutClaimCount: 119601 states; shortest dispatch trace (19): [ListReady(0) SelectHistory(0) CreateReservation(0) RefreshIssue(0) RefreshHistory(0) ListReady(1) SelectHistory(1) PutClaimLabels(0) PrepareWorktree(0) Dispatch(0) KeepClaimWithOriginWork(0) ReleaseReservation(0) CreateReservation(1) DayHandsBack RefreshIssue(1) RefreshHistory(1) PutClaimLabels(1) PrepareWorktree(1) Dispatch(1)]; shortest claimed trace (19): [ListReady(0) SelectHistory(0) CreateReservation(0) RefreshIssue(0) RefreshHistory(0) ListReady(1) SelectHistory(1) PutClaimLabels(0) PrepareWorktree(0) Dispatch(0) KeepClaimWithOriginWork(0) ReleaseReservation(0) CreateReservation(1) DayHandsBack RefreshIssue(1) RefreshHistory(1) PutClaimLabels(1) PrepareWorktree(1) Dispatch(1)]
=== RUN TestPickupModelMutations/UnconditionalCreate
pickup_model_test.go:285: UnconditionalCreate: 223036 states; shortest dispatch trace (16): [ListReady(0) SelectHistory(0) CreateReservation(0) RefreshIssue(0) RefreshHistory(0) ListReady(1) SelectHistory(1) CreateReservation(1) RefreshIssue(1) RefreshHistory(1) PutClaimLabels(0) PrepareWorktree(0) Dispatch(0) PutClaimLabels(1) PrepareWorktree(1) Dispatch(1)]; shortest claimed trace (16): [ListReady(0) SelectHistory(0) CreateReservation(0) RefreshIssue(0) RefreshHistory(0) ListReady(1) SelectHistory(1) CreateReservation(1) RefreshIssue(1) RefreshHistory(1) PutClaimLabels(0) PrepareWorktree(0) Dispatch(0) PutClaimLabels(1) PrepareWorktree(1) Dispatch(1)]
--- PASS: TestPickupModelMutations (0.65s)
--- PASS: TestPickupModelMutations/WithoutClaimCount (0.20s)
--- PASS: TestPickupModelMutations/UnconditionalCreate (0.46s)
PASS
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
$ /tmp/thirdshift-benchmark-f7shrf8g/rust-target/debug/deps/pickup_model-1d72f02ce05acf2e --test-threads=1 --nocapture

running 5 tests
test assert_requested_property ... ignored, known pre-Claim dispatch finding; run explicitly to see the failure
test current_protocol_reports_pre_claim_dispatch_counterexample ... Current, Dispatch: 7093 unique states
KNOWN FINDING: the literal dispatch property fails: Path[14]:
- ListReady(0)
- SelectHistory(0)
- CreateReservation(0)
- RefreshIssue(0)
- RefreshHistory(0)
- Dispatch(0)
- FailBeforeClaim(0)
- ReleaseReservation(0)
- ListReady(1)
- SelectHistory(1)
- CreateReservation(1)
- RefreshIssue(1)
- RefreshHistory(1)
- Dispatch(1)

ok
test pickup_claimed_dispatch_safety ... Current, ClaimedDispatch: 86745 unique states
ok
test removing_claim_count_recheck_is_detected ... WithoutClaimCount, ClaimedDispatch: 20675 unique states
Claim-count mutation counterexample: Path[19]:
- ListReady(0)
- SelectHistory(0)
- CreateReservation(0)
- RefreshIssue(0)
- RefreshHistory(0)
- Dispatch(0)
- ReadClaimLabels(0)
- ListReady(1)
- SelectHistory(1)
- PutClaimLabels(0)
- KeepClaim(0)
- ReleaseReservation(0)
- CreateReservation(1)
- DayHandsBack
- RefreshIssue(1)
- RefreshHistory(1)
- Dispatch(1)
- ReadClaimLabels(1)
- PutClaimLabels(1)

ok
test removing_empty_create_lease_is_detected ... UnconditionalCreate, ClaimedDispatch: 22520 unique states
Empty-lease mutation counterexample: Path[15]:
- ListReady(0)
- SelectHistory(0)
- CreateReservation(0)
- RefreshIssue(0)
- RefreshHistory(0)
- Dispatch(0)
- ReadClaimLabels(0)
- ListReady(1)
- SelectHistory(1)
- CreateReservation(1)
- RefreshIssue(1)
- RefreshHistory(1)
- PutClaimLabels(0)
- Dispatch(1)
- ReadClaimLabels(1)

ok

test result: ok. 4 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.12s

Loading