Notes on ADR-0005 that the run-time-bound change added functions - #138
Merged
Merged
Conversation
A dated foot Note on ADR-0005 narrows the 2026-09-24 Note's "no new failure class, event name, function or error family" sentence to the failure-delivery surface: no new failure class, event name, delivery door or error family on the delivery path. It names the functions the run-time-bound change did add: timeout/1 on the invoke, child start and timer workers, the @doc false helpers put/2, bound/1, backstop_margin_ms/0 and max_bound/1 in StatifierOban.JobTimeout, and the private call_bounded/4, capture/1, fetch_timeout/2 and timeout_kind/1. Claims read at e6bed65. Additions only; the Note decides nothing and no Status line moves. Docs only: the diff is outside gate.build_paths, so the gate does not apply (the commit row's docs-only clause); no changelog fragment per changelog.d/README.md (ADRs excluded). Refs: sob-tbw
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.
What
A dated foot Note on ADR-0005 ("the run-time-bound Note's 'no new function' means the failure-delivery surface"). The 2026-09-24 Note ("a timed-out attempt fails inside the worker") says no new failure class, event name, function or error family is created; its change (
sob-eh8, commitsa7c6673andfdc73a7) does add functions. The new Note reads that sentence as the failure-delivery surface (no new failure class, event name, delivery door or error family on the delivery path) and names what the change added:timeout/1onStatifierOban.Invoke.Worker,StatifierOban.Invoke.ChildStartWorkerandStatifierOban.Timer.Worker, each overriding theOban.Workerdefault of:infinity;@doc falsehelpersput/2,bound/1,backstop_margin_ms/0andmax_bound/1in the@moduledoc falsemoduleStatifierOban.JobTimeout;call_bounded/4andcapture/1(invoke worker) andfetch_timeout/2andtimeout_kind/1(config).Additions only: zero removed lines. The Note decides nothing and no Status line moves. It follows the 2026-09-27 Note that narrowed the attempt-cap Amendment's identical sentence the same way.
Closes sob-tbw on merge (the conductor closes it).
Gate
Docs only: the diff is outside
gate.build_paths, so the gate has nothing to run (the repo's docs-only commit clause and.claude/wurk/mr.md). No changelog fragment:changelog.d/README.mdexcludes ADRs.Direction check (in-turn review)
Every claim was checked against main at
e6bed65, by anchor. The quoted sentence is in the 2026-09-24 Note ofdocs/adr/0005-permanent-invoke-failure-delivers-on-the-terminal-attempt.md.timeout/1is defined inlib/statifier_oban/invoke/worker.ex(the bound plus@backstop_margin_ms,:infinitypassed through), and asJobTimeout.bound(job)inlib/statifier_oban/invoke/child_start_worker.exandlib/statifier_oban/timer/worker.ex. The locked Oban (2.23.1) defines the defaulttimeout/1answering:infinityinOban.Worker.lib/statifier_oban/job_timeout.exis@moduledoc falseand marksbackstop_margin_ms/0,max_bound/1,put/2andbound/1@doc false.call_bounded/4andcapture/1aredefpin the invoke worker;fetch_timeout/2andtimeout_kind/1aredefpinlib/statifier_oban/config.ex. The function list was taken from thedef/defplines each commit adds underlib/(git show a7c6673 -- lib/,git show fdc73a7 -- lib/), and every name is still present ate6bed65. A timed-out attempt raisesOban.TimeoutErrorfromcall_bounded/4, and the rescue arm around it callsmaybe_fail/7with"run_crashed";maybe_fail/7delivers only whenattempt >= max_attempts."run_crashed"is decision 3's class, anderror.communication.invoke.<invoke_id>is the event name the 2026-09-24 Note gives.fetch_timeout/2refuses with{:invalid_option, key, other}, the shape every other option's value check inconfig.exanswers.git diff origin/main -- docs/adr/shows no removed lines.Provenance
The file map named
timeout/1and "helpers for the job's run-time bound"; the Note also listsbackstop_margin_ms/0,max_bound/1andtimeout_kind/1, which the same bead's second commit (fdc73a7) added. The failure path is unchanged, so they are named for completeness.