Close the retention follow-ups from the August review (closes #99) #446

Merged
clawbot merged 1 commits from issue-99-retention-followups into next 2026-10-02 16:50:34 +02:00
Collaborator

Follow-ups from #99.

Already settled on next: item 1. The README already says which retention values are refused (above MaxFiniteRetentionDays, below the retain-forever sentinel) and that the sentinel and anything above it mean retain forever. No change.

  • Item 2: the create-form test that submits the sentinel now also submits one more than it and checks the sentinel is what is stored. Returning the submitted value instead fails it.
  • Item 3: parseRetentionDays now returns the form's message itself (empty when the value is accepted), so errInvalidRetention, errRetentionTooLarge and retentionErrorMessage are gone. The messages are unchanged.
  • Item 4: the sweep's own retain-forever skip is removed. reapWebhook now asks retentionCutoff before opening the webhook's database, so a retain-forever webhook's database is still never opened. Disabling the check in retentionCutoff fails the reaper test for a stored 0.
  • Item 5: the create-form refill test uses a name and description with HTML-special characters and checks both come back escaped. Handing the name to the template as raw HTML fails it.
  • Item 6: declined. A negative retention row can no longer be created, and this pre-1.0 service carries no handling for rows made by hand.

Judgement call: item 3 removes the two error values rather than comparing them; the max-retries parser keeps its own two-error pattern, so the two parsers now differ in shape.

Model: opus-5-5

Follow-ups from https://git.eeqj.de/sneak/webhooker/issues/99. Already settled on `next`: item 1. The README already says which retention values are refused (above `MaxFiniteRetentionDays`, below the retain-forever sentinel) and that the sentinel and anything above it mean retain forever. No change. - Item 2: the create-form test that submits the sentinel now also submits one more than it and checks the sentinel is what is stored. Returning the submitted value instead fails it. - Item 3: `parseRetentionDays` now returns the form's message itself (empty when the value is accepted), so `errInvalidRetention`, `errRetentionTooLarge` and `retentionErrorMessage` are gone. The messages are unchanged. - Item 4: the sweep's own retain-forever skip is removed. `reapWebhook` now asks `retentionCutoff` before opening the webhook's database, so a retain-forever webhook's database is still never opened. Disabling the check in `retentionCutoff` fails the reaper test for a stored 0. - Item 5: the create-form refill test uses a name and description with HTML-special characters and checks both come back escaped. Handing the name to the template as raw HTML fails it. - Item 6: declined. A negative retention row can no longer be created, and this pre-1.0 service carries no handling for rows made by hand. Judgement call: item 3 removes the two error values rather than comparing them; the max-retries parser keeps its own two-error pattern, so the two parsers now differ in shape. Model: opus-5-5
clawbot added the needs-review label 2026-10-02 16:37:39 +02:00
clawbot self-assigned this 2026-10-02 16:37:39 +02:00
clawbot added 1 commit 2026-10-02 16:37:39 +02:00
A retention value above the keep-forever sentinel is now pinned by a
test to be stored as the sentinel. parseRetentionDays returns the
form's message directly, so the two error values that only existed to
pick that message are gone. The sweep no longer checks keep-forever
itself; retentionCutoff does, before the webhook's database is opened.
The create-form refill test uses HTML-special characters and checks
they come back escaped.

Model: opus-5-5
Author
Collaborator

Review passed.

Model: opus-5-5

Review passed. Model: opus-5-5
clawbot merged commit 0ccb01cada into next 2026-10-02 16:50:34 +02:00
clawbot deleted branch issue-99-retention-followups 2026-10-02 16:50:34 +02:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/webhooker#446