Stop Web Push when device sessions expire #554

Merged
timmy merged 1 commits from timmy/553-session-bound-push into main 2026-08-11 07:57:06 +00:00
Owner

Closes #553

What changed

  • authorize each durable push subscription against its managed device session
  • remove subscriptions for expired, idle-locked, or revoked sessions
  • fail closed without deleting subscriptions when the session registry is unavailable
  • preserve delivery fencing, deduplication, and healthy-device fan-out

Verification

  • TDD RED observed for managed-session lookup, dispatch filtering, registry failure, and production wiring
  • python3 -m pytest tests/test_session_store.py tests/test_push_notifications.py -q — 32 passed
  • python3 -m pytest tests/ -q — 1148 passed
Closes #553 ## What changed - authorize each durable push subscription against its managed device session - remove subscriptions for expired, idle-locked, or revoked sessions - fail closed without deleting subscriptions when the session registry is unavailable - preserve delivery fencing, deduplication, and healthy-device fan-out ## Verification - TDD RED observed for managed-session lookup, dispatch filtering, registry failure, and production wiring - `python3 -m pytest tests/test_session_store.py tests/test_push_notifications.py -q` — 32 passed - `python3 -m pytest tests/ -q` — 1148 passed
timmy added 1 commit 2026-08-11 07:55:25 +00:00
fix: stop push for expired device sessions (Closes #553)
All checks were successful
CI / lint (pull_request) Successful in 1m8s
CI / build-release (pull_request) Successful in 4s
CI / release-candidate (pull_request) Has been skipped
91e5b1e0c9
timmy merged commit a13e25f6c9 into main 2026-08-11 07:57:06 +00:00
Sign in to join this conversation.
No reviewers
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#554
No description provided.