Release-readiness accuracy: docs contradict the code, TODO.md omits landed units, debug logging in the production asset #141

Closed
opened 2026-08-12 12:30:13 +02:00 by clawbot · 2 comments
Collaborator

Found by the integration review of #111. Milestoned 1.0.0 because these make the README and release notes untrue at the exact moment of tagging.

  1. RETENTION_SWEEP_INTERVAL is missing from the README env table (README.md:86-98), while README.md:174 and README.md:642 both reference it as documented.

  2. TODO.md omits 5 of the 15 landed units#64, #79, #90, #113 and #118 — in a commit titled "Update TODO.md for the completed 1.0.0 milestone". Both of the omitted entries for #113 and #118 are credential-exposure fixes, which are precisely the ones a reader of the release notes wants to see.

  3. TODO.md:118 deleted "Manual event redelivery from the web UI" from Next Step without it being implemented, while README.md:263 still sells Replay in the present tense as a core capability. No redelivery code exists anywhere in the tree. Either the README claim is false or the roadmap entry should not have been dropped — resolve it so the two agree.

  4. static/js/app.js:2 ships console.log("Webhooker loaded") in the production asset.

Definition of done

  • The README env table lists every environment variable the code reads. Verify by enumerating them from internal/config rather than by eye.
  • TODO.md Completed Steps covers all 15 units landed in this milestone.
  • README.md:263 and TODO.md agree with each other and with the code about whether replay/redelivery exists. If it does not exist, the README must not claim it in the present tense.
  • No debug logging in shipped static assets.

Implementation requirements

  • This unit MAY edit TODO.md — it is one of the things being fixed. It is the exception to the usual rule from #112, which holds for every other branch.
  • Run make fmt and include the result; markdown must be committed formatted.
  • Branch from next, PR based on next, single commit, title ending (closes #N).
  • Gate on make check plus the Docker lint path with the cache defeated (#119).
Found by the integration review of https://git.eeqj.de/sneak/webhooker/pulls/111. Milestoned 1.0.0 because these make the README and release notes untrue at the exact moment of tagging. 1. **`RETENTION_SWEEP_INTERVAL` is missing from the README env table** (`README.md:86-98`), while `README.md:174` and `README.md:642` both reference it as documented. 2. **`TODO.md` omits 5 of the 15 landed units** — https://git.eeqj.de/sneak/webhooker/issues/64, https://git.eeqj.de/sneak/webhooker/issues/79, https://git.eeqj.de/sneak/webhooker/issues/90, https://git.eeqj.de/sneak/webhooker/issues/113 and https://git.eeqj.de/sneak/webhooker/issues/118 — in a commit titled "Update TODO.md for the completed 1.0.0 milestone". Both of the omitted entries for https://git.eeqj.de/sneak/webhooker/issues/113 and https://git.eeqj.de/sneak/webhooker/issues/118 are credential-exposure fixes, which are precisely the ones a reader of the release notes wants to see. 3. **`TODO.md:118` deleted "Manual event redelivery from the web UI" from Next Step without it being implemented**, while `README.md:263` still sells Replay in the present tense as a core capability. No redelivery code exists anywhere in the tree. Either the README claim is false or the roadmap entry should not have been dropped — resolve it so the two agree. 4. **`static/js/app.js:2` ships `console.log("Webhooker loaded")`** in the production asset. ## Definition of done - The README env table lists every environment variable the code reads. Verify by enumerating them from `internal/config` rather than by eye. - `TODO.md` Completed Steps covers all 15 units landed in this milestone. - `README.md:263` and `TODO.md` agree with each other and with the code about whether replay/redelivery exists. If it does not exist, the README must not claim it in the present tense. - No debug logging in shipped static assets. ## Implementation requirements - This unit MAY edit `TODO.md` — it is one of the things being fixed. It is the exception to the usual rule from https://git.eeqj.de/sneak/webhooker/issues/112, which holds for every other branch. - Run `make fmt` and include the result; markdown must be committed formatted. - Branch from `next`, PR based on `next`, single commit, title ending ` (closes #N)`. - Gate on `make check` plus the Docker lint path with the cache defeated (https://git.eeqj.de/sneak/webhooker/issues/119).
clawbot added this to the 1.0.0 milestone 2026-08-12 12:30:13 +02:00
clawbot self-assigned this 2026-08-12 12:30:13 +02:00
Author
Collaborator

Plan, for the one item with a real choice in it (3):

Redelivery does not exist in the tree (only a comment in internal/delivery/engine.go mentions the word), so the README claim is what is false. The two present-tense Replay claims — the Rationale item and the Use Cases bullet — get rewritten as not-yet-implemented rather than deleted, so the capability stays visible as roadmap, and TODO.md Future Steps regains "Manual event redelivery from the web UI" alongside the REST redelivery endpoint it already lists. The /api/v1/events/{id}/redeliver row is already under an "API (Planned)" heading and needs no change.

Items 1, 2 and 4 are mechanical: env table row, five Completed Steps entries derived from git log origin/main..origin/next, and the console.log deletion.

Plan, for the one item with a real choice in it (3): Redelivery does not exist in the tree (only a comment in `internal/delivery/engine.go` mentions the word), so the README claim is what is false. The two present-tense Replay claims — the Rationale item and the Use Cases bullet — get rewritten as not-yet-implemented rather than deleted, so the capability stays visible as roadmap, and `TODO.md` Future Steps regains "Manual event redelivery from the web UI" alongside the REST redelivery endpoint it already lists. The `/api/v1/events/{id}/redeliver` row is already under an "API (Planned)" heading and needs no change. Items 1, 2 and 4 are mechanical: env table row, five Completed Steps entries derived from `git log origin/main..origin/next`, and the `console.log` deletion.
Author
Collaborator

Done in #144 (base next).

Verification beyond the PR body's gate evidence: the env table was checked against an exhaustive enumeration of internal/config, not by eye — twelve variables, RETENTION_SWEEP_INTERVAL the only one missing, and no package outside internal/config reads the environment at all. The replay resolution was checked against the code: the string "redeliver" appears exactly once in the tree, in a comment in internal/delivery/engine.go, so nothing implements it. The debug-logging sweep over static/ and templates/ matched only the one console.log.

Done in https://git.eeqj.de/sneak/webhooker/pulls/144 (base `next`). Verification beyond the PR body's gate evidence: the env table was checked against an exhaustive enumeration of `internal/config`, not by eye — twelve variables, `RETENTION_SWEEP_INTERVAL` the only one missing, and no package outside `internal/config` reads the environment at all. The replay resolution was checked against the code: the string "redeliver" appears exactly once in the tree, in a comment in `internal/delivery/engine.go`, so nothing implements it. The debug-logging sweep over `static/` and `templates/` matched only the one `console.log`.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/webhooker#141