Say max_retries is the total attempt count, not a retry count #320

Open
clawbot wants to merge 1 commits from issue-316-max-retries-total-attempts-copy into next
Collaborator

Both target forms (create and edit) and the README max_retries rows now say the number is the total number of delivery attempts, not retries added to a first try.

Why: the delivery core makes max_retries attempts in total — a new delivery starts at attempt one and stops once the attempt number reaches max_retries — so 3 means three attempts and 0 is a single fire-and-forget attempt with no retries and no circuit breaker. The forms said "Max retries" with no total and the README row said "maximum retry attempts", so an operator wanting "try, then retry twice" would enter the wrong number.

What changed: the help text under the field on both forms, the max_retries table row and the http description in the README, and a UI copy test that renders both forms and pins the shared wording. Delivery arithmetic unchanged.

Verification: make fmt-check and the new copy test pass. Full make check could not be made green here — the shared host is out of memory (load ~320; every -race build OOM-killed), so make check and make lint were killed before finishing. The one run that reached the test phase passed everything except two argon2 login subtests in internal/handlers that hit the 90s per-package timeout under that load, a known timing-marginal package (#194) unrelated to this change.

Disclosure: make check not confirmed green and make lint unverified, both due to host OOM; lowered parallelism (-p=1 -parallel=2, GOMAXPROCS=6) did not help — saturation is host-wide.

Model: opus-4-8

Both target forms (create and edit) and the README `max_retries` rows now say the number is the total number of delivery attempts, not retries added to a first try. Why: the delivery core makes `max_retries` attempts in total — a new delivery starts at attempt one and stops once the attempt number reaches `max_retries` — so `3` means three attempts and `0` is a single fire-and-forget attempt with no retries and no circuit breaker. The forms said "Max retries" with no total and the README row said "maximum retry attempts", so an operator wanting "try, then retry twice" would enter the wrong number. What changed: the help text under the field on both forms, the `max_retries` table row and the `http` description in the README, and a UI copy test that renders both forms and pins the shared wording. Delivery arithmetic unchanged. Verification: `make fmt-check` and the new copy test pass. Full `make check` could not be made green here — the shared host is out of memory (load ~320; every `-race` build OOM-killed), so `make check` and `make lint` were killed before finishing. The one run that reached the test phase passed everything except two argon2 login subtests in `internal/handlers` that hit the 90s per-package timeout under that load, a known timing-marginal package (https://git.eeqj.de/sneak/webhooker/issues/194) unrelated to this change. Disclosure: `make check` not confirmed green and `make lint` unverified, both due to host OOM; lowered parallelism (`-p=1 -parallel=2`, `GOMAXPROCS=6`) did not help — saturation is host-wide. Model: opus-4-8
clawbot added the needs-review label 2026-09-21 09:56:33 +02:00
clawbot self-assigned this 2026-09-21 09:56:33 +02:00
clawbot added 1 commit 2026-09-21 09:56:33 +02:00
The delivery core makes max_retries attempts in total: a fresh delivery
starts at attempt one and gives up once the attempt number reaches
max_retries, so 3 is three attempts, not four, and 0 is special-cased to
a single fire-and-forget attempt with no retries and no circuit breaker.
The create and edit target forms called it "Max retries" with no total,
and the README data-model row called it "maximum retry attempts", so an
operator wanting "try, then retry twice" would enter the wrong number.

Both forms and the README rows now state the number is the total number
of delivery attempts, with the 0 case spelled out. The delivery
arithmetic is unchanged. A UI copy test renders both forms and pins the
shared wording so it cannot drift back to a retry count.

Model: opus-4-8
Some required checks failed
check / check (push) Failing after 1s
You are not authorized to merge this pull request.
This pull request can be merged automatically.
This branch is out-of-date with the base branch
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin issue-316-max-retries-total-attempts-copy:issue-316-max-retries-total-attempts-copy
git checkout issue-316-max-retries-total-attempts-copy
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/webhooker#320