Drop dedupe_key_strategy from the inbox watch and say what actually happens

activity-core corrected us: it governs Temporal schedule overlap, not
per-message suppression, and there is no dedupe at the sink — so an
unread message re-emits hourly until read. Removed the field rather than
leave it implying a guarantee it does not give, and kept the repetition
deliberately: an hourly line in the progress log is a cheap price for the
failure this exists to prevent, and it stops when somebody reads.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-08-20 12:02:14 +02:00
parent 54606c883e
commit 2ebdc133bc
2 changed files with 27 additions and 3 deletions

View file

@ -11,7 +11,7 @@
| workplan | RISK-WP-0001 | active | — | workplans/RISK-WP-0001-make-the-register-decidable.md |
| workplan | RISK-WP-0002 | proposed | — | workplans/RISK-WP-0002-publication-handover.md |
| workplan | RISK-WP-0003 | proposed | — | workplans/RISK-WP-0003-regulatory-intake.md |
| workplan | RISK-WP-0004 | active | — | workplans/RISK-WP-0004-run-the-register.md |
| workplan | RISK-WP-0004 | finished | — | workplans/RISK-WP-0004-run-the-register.md |
| task | RISK-WP-0001-T01 | done | — | workplans/RISK-WP-0001-make-the-register-decidable.md |
| task | RISK-WP-0001-T02 | done | — | workplans/RISK-WP-0001-make-the-register-decidable.md |
| task | RISK-WP-0001-T03 | progress | — | workplans/RISK-WP-0001-make-the-register-decidable.md |
@ -27,7 +27,7 @@
| task | RISK-WP-0003-T02 | todo | — | workplans/RISK-WP-0003-regulatory-intake.md |
| task | RISK-WP-0003-T03 | todo | — | workplans/RISK-WP-0003-regulatory-intake.md |
| task | RISK-WP-0003-T04 | todo | — | workplans/RISK-WP-0003-regulatory-intake.md |
| task | RISK-WP-0004-T01 | progress | — | workplans/RISK-WP-0004-run-the-register.md |
| task | RISK-WP-0004-T01 | done | — | workplans/RISK-WP-0004-run-the-register.md |
| task | RISK-WP-0004-T02 | done | — | workplans/RISK-WP-0004-run-the-register.md |
| task | RISK-WP-0004-T03 | done | — | workplans/RISK-WP-0004-run-the-register.md |
| task | RISK-WP-0004-T04 | done | — | workplans/RISK-WP-0004-run-the-register.md |

View file

@ -14,7 +14,6 @@ trigger:
cron_expression: "5 * * * *"
timezone: Europe/Berlin
misfire_policy: skip
dedupe_key_strategy: skip
context_sources:
- type: state-hub
query: hub_inbox
@ -49,6 +48,31 @@ the mechanism that stops it depending on somebody remembering.
An unread message addressed to `risk-nexus` is, by construction, a claim that
something in the register may have moved.
## It will repeat, and that is the deliberate choice
`activity-core` corrected us on 2026-08-20: `dedupe_key_strategy` governs
Temporal schedule overlap, not per-message suppression, and cron workflow ids
include `scheduled_for` — so an unread message re-emits an instruction **every
hour until it is read**. There is no dedupe at the sink either.
We removed the field rather than leave it there implying a guarantee it does
not give.
The repetition is kept, on purpose. An unread message addressed to this
register is a claim that something in it may have moved, and the failure this
activity exists to prevent — grading `RISK-F-0001` `critical` while its fix
notice sat unread — cost a wrong grade and a nearly-sent escalation. An hourly
line in the progress log is a cheap price for that, and it stops the moment
somebody reads the message.
**Reading a message includes marking it read.** That is what clears the nag,
and it is part of question zero rather than a courtesy.
If this ever becomes real noise — an unattended weekend, a message nobody can
action — the fix `activity-core` named is a stable completion key gating the
rule, not a longer interval. A longer interval would trade a visible cost for
an invisible one.
## What it does not do
It does not grade, close, publish or escalate anything. Severity, disclosure