Repository navigation
Pins the delayed send and cancel re-entries - #266
Merged
Merged
Conversation
Two tests fail a :send_delayed and a :cancel through the executor and read the error.communication re-entry each one opens: the delayed send's carries its sendid, the cancel's carries none, and both name the failed element's content origin. Each chart routes on _event.sendid, so the persisted position shows what the chart read. ADR-0004 gains a dated foot Note naming the two tests; the earlier Note's sentence that no test fails either effect no longer holds. No lib/ answer changes and no fragment is due (tests and a record). Refs: sp-0mc0
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.
Pins what the
error.communicationre-entry carries when the executor fails a:send_delayedor a:cancel. Refs sp-0mc0. Nolib/answer changes.What changes
test/statifier_persistence/executions_test.exs, in the "error re-entry (ADR-0004 decision 4)" group, gains two tests::reenteredtelemetry event carries the name"error.communication", the origin{:content, c_index, owner}of the failed effect, and options exactly[sendid: "due-reminder"]; the chart routes on_event.sendid, and the persisted position is the state the matching transition enters.<cancel>'s{:content, c_index, owner}origin and options exactly[]; the chart's transition on the cancelled send's id is not taken, and the persisted position is the fallback's state.docs/adr/0004-run-lifecycle-executor-seam-and-serialization.mdgains a dated foot Note (2026-10-11) naming the two tests: the 2026-10-04 Note's sentence that no test fails a:send_delayedor a:cancelno longer holds. Appending it was decided by the conductor under a standing consent, 2026-10-11.No changelog fragment: tests and a record, which
changelog.d/README.mdlists as needing none.Sabotage
Each check mutated
reentry_origin/1inlib/statifier_persistence/executions.ex, ran the file's tests, and restored the file byte-equal from a copy before the next::send_delayedclause re-enters with no options: red, the:send_delayedtest's:reenteredpayload assertion;:cancelclause re-enters with[sendid: send_id]: red, the:canceltest's payload assertion;:send_delayedclause answers:observational: red, the:send_delayedtest's payload assertion;:cancelclause answers:observational: red, the:canceltest's payload assertion.Direction check of the record text
The Note removes no line (
git diff origin/main -- docs/adr/shows 32 added, 0 removed) and is appended after the last Note at the foot. Its claims, checked: the quoted sentence is verbatim from the 2026-10-04 Note;reentry_origin/1answers[sendid: payload.send_id]for:send_delayedand[]for:cancelonmainat47193cd, the SHA the Note cites; the group name and both test names match the test file on this branch, cited by name; the:reenteredevent carriesname,originandopts(execution_step_reentered/1inlib/statifier_persistence/telemetry.ex); neither test reads the event'sdata, as the Note says.Gate
Full
mix qualitygreen on this tree: every stage that ran passed, 1,432 of 1,432 tests, 96.0% coverage (Doctor, Gettext and Sobelow skipped as not installed). The Postgres the suite used is a local server on 5432.