procs: claim each codex rollout once when pairing - #14
Merged
Conversation
Codex pairing resolved per process with no claim tracking, unlike PairClaude: two `codex resume`s of one session (both holding the same rollout open, or two starts inside the same TSSlack window) rendered as identical clone rows — same task, tokens, ctx — and the session was double-counted in the header tallies. Batch the resolution in a new PairCodex, mirroring PairClaude's claimed map: fd evidence first (newest process wins a tie), then the start-time match against unclaimed rollouts only. A process whose held rollout is already claimed is a second attach to a known session — it stays unpaired outright rather than falling through to a timestamp match that would fabricate a different session, and surfaces via the existing '+N unmatched' footer. Board wires the scan pass and row pass to the one pairing map, as before. Observed live on a devbox: pids 586010/1514979, both /code/synth, one rollout, two confident clone rows. Co-Authored-By: Claude Fable 5 <[email protected]>
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.
Defect
Codex pairing resolved per process with no claim tracking (unlike
PairClaude). Twocodex resumes of one session — both processes holding the same rollout open, or two starts inside the same ±300s window — rendered as identical clone rows (same task/tokens/ctx) and double-counted the session in the header tallies. Observed live: pids 586010/1514979, both/code/synth, one rollout, two confident rows.Fix
New
procs.PairCodexbatch pass mirroringPairClaude'sclaimedmap:Unpaired processes surface through the existing
+N unmatchedfooter /-a, never as clone rows.Collectfeeds both the scan pass and row pass from the one map, as before. No--jsonshape change.Evidence
TestPairCodexClaimsARolloutOncestages the exact observed state (two pids, one held rollout, plus the decoy);TestPairCodexMetaTierClaimsOncecovers the timestamp tier.go test ./... -racegreen,go vetclean,golangci-lint run0 issues, linux+darwin builds compile.🤖 Generated with Claude Code