FA-34979 / Notification interfaces / Member archive
Notification content revision review: close-preview from revision-three-pending-review · case 04
The close-preview event leaves a notification in revision-three-read instead of revision-three-unread.
Case contract
Notification content revision review is a bounded visual-notification workflow with mutable policy state {'current': 2, 'ack': 1, 'preview': None, 'withdrawn': False}. Its default transition relation is {('revision-one-read', 'revision-two-arrives'): 'revision-two-unread', ('revision-two-unread', 'open-revision'): 'revision-two-preview', ('revision-two-preview', 'ack-revision'): 'revision-two-read', ('revision-two-preview', 'revision-three-arrives'): 'revision-three-pending-review', ('revision-three-pending-review', 'accept-update'): 'revision-three-preview', ('revision-three-preview', 'ack-revision'): 'revision-three-read', ('revision-three-read', 'late-revision-two'): 'revision-three-read', ('revision-three-pending-review', 'close-preview'): 'revision-three-unread', ('revision-three-unread', 'open-revision'): 'revision-three-preview', ('revision-two-unread', 'revision-withdrawn'): 'withdrawn'}; domain inputs can suppress or redirect transitions and update policy fields, as specified in solve. Different-generation events are inert. Batches apply in order. Optional observe returns the selected policy field alongside the phase.
Why this case matters
Visual notification lifecycle ordering can leave an inbox or toast showing the wrong actionable state even when transport succeeds.
One recorded failure
Sample boundary fixtureThis sample comes from the broken implementation of a controlled reproducer.
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| revision-three-pending-review / close-preview | "revision-three-read" | "revision-three-unread" | Failed |
MEMBER ARCHIVE
The complete case is available to members.
This record includes three runnable implementations, regression fixtures, execution results, and source hashes.
Member access is invitation-based. Sign in with your invited account to inspect the sources.
Sign in to the archive ↗