Skip to content

fix: isolate fresh review attempts without run collisions - #148

Merged
zzxwill merged 3 commits into
masterfrom
fix/unique-review-attempts
Oct 21, 2026
Merged

zzxwill merged 3 commits into
masterfrom
fix/unique-review-attempts

Conversation

@zzxwill

@zzxwill zzxwill commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator

Fresh reviews of the same target previously used minute-only directory names, so fast sequential or concurrent invocations could append to the same history. Each fresh invocation now has a millisecond timestamp and UUID; explicit resume still selects its existing run, including legacy names. Console labels distinguish simultaneous attempts, and overlong target prefixes are hashed to keep generated run names within the filesystem component limit while retaining full target metadata.

Validation on 6dd2adff69823120026de81f48d7302f950fa0bf:

  • Sequential and concurrent CLI regressions failed before correction and pass afterward; each fresh run starts at round 1 with independent artifacts.
  • The console-label regression failed before the Jury amendment and passes afterward, independently verified.
  • A valid 210-character Git branch passes on base, failed with ENAMETOOLONG after the longer stamp, and now passes with bounded run names; explicit resume also passes.
  • node --test test/run-attempt.test.js test/runs.test.js test/loop.test.js test/console.test.js: 53 passed.
  • node scripts/ci-check.mjs test: exit 0, 320 passed.
  • node scripts/ci-check.mjs test:package: exit 0, 55 installed files and CLI regression checks passed.
  • Final actual Jury: exit 0, NO NEW FINDINGS, exact reviewed head, 58.0 seconds. The reviewer retained its read-only sandbox; independent full/package checks passed. No judge invocation was needed in the final clean review.

Exact final review command:

GIT_AUTHOR_NAME=zzxwill GIT_COMMITTER_NAME=zzxwill node bin/jury.js review --dir /Users/bytedance/Documents/Codex/2026-10-20/task/codejury-post-147-audit --trunk master --reviewer codex --judge codex --rounds 2 --summary 'Review final fresh-run isolation changes: millisecond timestamps plus UUIDs prevent separate sequential or concurrent CLI invocations from sharing a run. Long target prefixes are hashed only when needed to preserve the filesystem component limit, with full target metadata and explicit legacy/current resume retained. Console labels distinguish simultaneous single-target attempts. Regressions fail before and pass after; independent validation passed 53 focused tests, 320 full tests and installed-package checks. Related-PR labels were already absent on base a3d85b0 and are deferred; Codex recovered-error parsing is also unchanged and deferred. Assess new correctness issues without mixing those pre-existing fixes.' --web=false --push=false > ../run-attempt-review-evidence/jury-final.log 2>&1
jury_status=$?
printf '%s\n' "$jury_status" > ../run-attempt-review-evidence/jury-final.exit
exit "$jury_status"

Known separate issues remain deferred: related-PR attempt labels were already absent on the base commit, and the existing Codex parser can reject a recovered stream containing an earlier error event. Neither behavior is addressed by this fix. The earlier incomplete review is not used as approval.

@zzxwill
zzxwill marked this pull request as ready for review October 21, 2026 20:20
@zzxwill
zzxwill merged commit 3c54e83 into master Oct 21, 2026
8 checks passed
@zzxwill
zzxwill deleted the fix/unique-review-attempts branch October 21, 2026 20:20
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