Repository navigation
Fix persistent identity for Capture task status mutations - #138
Merged
Merged
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
RCmerci
changed the base branch from
codex/graph-mutation-confirmation-20261027
to
main
October 27, 2026 12:36
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.
Saving a Capture as a task could reuse a persistent status mutation ID from an earlier app lifetime. The transient request counter restarted at 1, so the new target conflicted with a historical outbox/receipt entry after the content insert had already committed. This was reproduced through normal UI on the pre-Stage4 a467188 App and on 6eceac6; the same allocator/status functions also exist unchanged in b9d4e7d.
Derive the Capture status sub-operation UUIDv8 from BLAKE128 of the canonical existing business mutation UUID, target, resolved status/clear and Capture-owned choice revision. Same-intent retries retain identity independently of transient request scheduling. A changed selection, including A→B→A, advances the choice generation. Keep the original insertion identity, request owner, queue and all persisted history.
Stacked on #137 (
codex/graph-mutation-confirmation-20261027); one commit, seven files, only this separate behavior fix. No merge or release.Validation at 69146ff:
Experimental host-restamp only,
cross_abi_validated=false; no real-device ABI or online/account acceptance. Copy was clicked without clipboard-content assertion; Favorites tested its empty state; PNG used existing fixture content.