fix(sync): fence post-merge audio finalization#10274
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a9bdf953ec
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
9022f25 to
1082f6f
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1082f6f9c6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
e5a3c6f to
8722593
Compare
Failure-Class: FC-split-mutation-authority
8722593 to
9189564
Compare
|
Addressed Codex review feedback (discussion_r3628593415): a fenced conversation ID that appeared in both Fix: discard fenced IDs from Also repaired two rebase casualties: restored |
A conversation created in an early segment (new_memories) can be merged into by a later segment (updated_memories). When deferred reprocessing raises SyncConversationPersistenceFenced, the fence handler only discarded the ID from updated_memories. _finalize_sync_audio_files unions new_memories | updated_memories, so it would still write audio files to the fenced conversation. Also applies the same subtraction in retry rehydration, which only subtracted fenced IDs from updated_memories.
|
Monitor pass: resolved Codex thread on Backend unit suite remains red, but the 3 failing files ( |
Summary
updated_memoriesafter deferred reprocessing loses ownership.audio_files, precache state, or an artifact job for a fenced conversation.Failure class
Failure-Class: FC-split-mutation-authority
Verification
BACKEND_UNIT_TEST_FILE_LIST=/tmp/omi-10234-fenced-finalization-tests.txt bash backend/test.sh -- -k merged_reprocess_fence_isolated_to_its_conversation -vv— 164 passed.updated_memories; after the fix it proves only the current sibling reaches audio finalization.Risk
Low. The change removes post-fence side effects only for the conversation whose lifecycle ownership was explicitly lost. It does not change the fence itself, retry/terminal semantics, or the sibling-success path.
Closes #10234