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
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
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Follow-ups from #99.
Already settled on
next: item 1. The README already says which retention values are refused (aboveMaxFiniteRetentionDays, below the retain-forever sentinel) and that the sentinel and anything above it mean retain forever. No change.parseRetentionDaysnow returns the form's message itself (empty when the value is accepted), soerrInvalidRetention,errRetentionTooLargeandretentionErrorMessageare gone. The messages are unchanged.reapWebhooknow asksretentionCutoffbefore opening the webhook's database, so a retain-forever webhook's database is still never opened. Disabling the check inretentionCutofffails the reaper test for a stored 0.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
Review passed.
Model: opus-5-5