fix(queue): contain mixed-version retry promotion conflicts - #297
Merged
Joncallim merged 3 commits intoJul 28, 2026
Conversation
Joncallim
marked this pull request as ready for review
July 28, 2026 16:56
Joncallim
merged commit Jul 28, 2026
279801f
into
codex/pr198-producer-5a2-r3a-retry-upgrade
4 checks passed
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.
Source Issue
Issue: #179
Summary
Validation
npx vitest run __tests__/core-diagnostic-output-closure.test.ts --config vitest.config.ts— 21/21npm test -- --maxWorkers=1— 1,688 passed; environment-gated integration files remained skipped by the ordinary unit commandnpx tsc --noEmit --pretty false— passnpm run build— passgit diff --check— passDocumentation gate\n\nCompleted in
docs/operator-guide.mdat14499270ba03c2b382bb9ad38aada001e54db871.\n\n- Operators must assume legacy retry entries exist, stop and drain every v2 worker, verify no v2 process or replica remains, and only then start current workers.\n- Raw Redis queue members must not be dumped or logged. An accidental v2 canonical winner produces only the fixed nonfatalmixed_version_retry_promotioncategory; it is not current-worker success and fabricates no receipt.\n- The compatibility window ends when every v2 worker stops. Opaque disposition receipts keep their normal 15-minute expiry and bounded pruning; there is no compatibility key or manual receipt cleanup.\n- Rollback stops and drains current workers first and does not restart v2 while legacy retry entries may remain.\n\nDocumentation validation:git diff --checkpassed. This repository has no configured Markdown formatter or documentation linter.Scope\n\nThe implementation remains limited to the two queue/runtime files and their two focused test files. This follow-up adds only
docs/operator-guide.md. No workflow, schema, migration, or Redis namespace behavior is modified.