Repository navigation
Recover pipeline failures at durable boundaries - #187
Merged
Merged
Conversation
Stephen Belanger (Qard)
marked this pull request as ready for review
October 13, 2026 19:21
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. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 066c39457e
ℹ️ 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 (@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 (@codex) address that feedback".
Stephen Belanger (Qard)
force-pushed
the
pipeline/06-recovery-transitions
branch
from
October 14, 2026 02:27
066c394 to
c1fc4d9
Compare
Stephen Belanger (Qard)
requested review from
Abhijeet Prasad (AbhiPrasad) and
Andrew Kent (realark)
October 14, 2026 12:44
Stephen Belanger (Qard)
force-pushed
the
pipeline/05-journal-boundary
branch
from
October 16, 2026 14:46
bd92f4b to
1a5b997
Compare
Stephen Belanger (Qard)
force-pushed
the
pipeline/06-recovery-transitions
branch
from
October 16, 2026 16:11
76cbe09 to
5aee065
Compare
Stephen Belanger (Qard)
force-pushed
the
pipeline/05-journal-boundary
branch
from
October 16, 2026 16:11
1a5b997 to
1903cb1
Compare
Abhijeet Prasad (AbhiPrasad)
approved these changes
Oct 19, 2026
Stephen Belanger (Qard)
force-pushed
the
pipeline/05-journal-boundary
branch
from
October 19, 2026 18:33
1903cb1 to
efa2119
Compare
Stephen Belanger (Qard)
force-pushed
the
pipeline/06-recovery-transitions
branch
from
October 19, 2026 18:49
5aee065 to
8b9e7a8
Compare
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.
A failed route enters recovery at its earliest unresolved SpanOp. Persisted typed conditions control retries: plugin bytes/chain changes, fresh credential resolution, relevant configuration changes, or capped transport/storage delays. Restart preserves these conditions; routing retries do not replay translation.
Normal delivery and recovery share flush/completion handling. Rejected batches, accepted batches awaiting ledger completion, and pending head completions retain distinct retry points. Source publication retains built chunks through append/commit failures. Status and doctor expose the stage, unresolved position, reason, and retry criterion.
Preserves #184's journaled birth provenance for every owned span. Main's append-only ledger retains pending acknowledgements until a successful write; lock, refresh, and append failures after sink acceptance are all classified for completion-only retry. Production panic assumptions are replaced with explicit handling, including recovery-evidence encoding failures.
New regressions cover all three ledger failure points, retained pending acknowledgements, successful repair, and route-head recovery without resubmitting accepted work. Existing tests cover rejected batches, credentials, plugin-chain edits, route isolation, publication failures, and restart recovery.
Based on main at
f7b7683, including merged #184. Lifecycle consolidation and InputPort isolation remain in later layers. Inherits the landed checked-delivery SDK pin from #174.Validation at
5aee065: all 533 tests pass in the locked all-feature Rust suite without exclusions or environment overrides; five live-agent tests remain normally ignored. Strict all-target/all-feature Clippy, formatting, and diff checks pass.Rebased at
8b9e7a8: all four commits retain identical patches (git range-diff); diff checks pass. Fresh CI passes on Linux, macOS, and Windows at8b9e7a8(run 39305768223, attempt 3).