Notify operators when Human Gate decisions are waiting #1437

Closed
opened 2026-08-26 15:57:43 +00:00 by timmy · 0 comments
Owner

Product gap

Human Gates are actionable on mobile once the dashboard is open, but pending release decisions never proactively reach the operator. The existing privacy contract in docs/human-gates.md already requires count-only lock-screen copy and the canonical #/my-work/human-gates route; current push scheduling, preferences, service worker routing, and app-badge reconciliation do not implement that channel.

Vertical slice

  • Add an account/device-scoped Human Gates push preference.
  • Dispatch a privacy-safe notification only when pending gate count changes to a non-zero value.
  • Route notification taps directly to #/my-work/human-gates.
  • Reconcile pending gates into the installed-app badge and clear the channel at zero.
  • Preserve quiet-hours/catch-up behavior and never include candidate title, artifact URL, hash, or rationale in lock-screen payloads.

Acceptance tests

  1. Enabling the preference and transitioning from 0 to N pending gates emits one count-only payload with the canonical route; unchanged N does not spam.
  2. A transition to zero clears Human Gates badge state and emits no notification.
  3. Notification click on a 320px mobile shell opens the in-app Human Gates review route.
  4. Disabled preferences and unauthenticated/device-mismatched state do not dispatch.
  5. Focused tests and the full suite pass.

Non-duplication evidence

All historical issue/PR titles through #1436, open work, the latest releases through v0.1.0-rc.1743, and recent commits were searched. Prior Human Gates work covers inbox/review, mobile queue placement, progressive launch, authorization, refresh, and evidence handoff; no issue, PR, release, or commit implements Human Gates push delivery or badge reconciliation.

## Product gap Human Gates are actionable on mobile once the dashboard is open, but pending release decisions never proactively reach the operator. The existing privacy contract in `docs/human-gates.md` already requires count-only lock-screen copy and the canonical `#/my-work/human-gates` route; current push scheduling, preferences, service worker routing, and app-badge reconciliation do not implement that channel. ## Vertical slice - Add an account/device-scoped Human Gates push preference. - Dispatch a privacy-safe notification only when pending gate count changes to a non-zero value. - Route notification taps directly to `#/my-work/human-gates`. - Reconcile pending gates into the installed-app badge and clear the channel at zero. - Preserve quiet-hours/catch-up behavior and never include candidate title, artifact URL, hash, or rationale in lock-screen payloads. ## Acceptance tests 1. Enabling the preference and transitioning from 0 to N pending gates emits one count-only payload with the canonical route; unchanged N does not spam. 2. A transition to zero clears Human Gates badge state and emits no notification. 3. Notification click on a 320px mobile shell opens the in-app Human Gates review route. 4. Disabled preferences and unauthenticated/device-mismatched state do not dispatch. 5. Focused tests and the full suite pass. ## Non-duplication evidence All historical issue/PR titles through #1436, open work, the latest releases through v0.1.0-rc.1743, and recent commits were searched. Prior Human Gates work covers inbox/review, mobile queue placement, progressive launch, authorization, refresh, and evidence handoff; no issue, PR, release, or commit implements Human Gates push delivery or badge reconciliation.
timmy self-assigned this 2026-08-26 15:57:43 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stackchain/stackchain-dashboard#1437
No description provided.