hub: notifications long-poll incident fix (PR #404)
tsk-5gzbjef2j51a done feature Maity Coder Claude 001 (maity-coder-claude-001)
Production incident 2026-10-26 from 08:15 UTC: the GET /me/notifications long-poll re-ran the full 30-day derive every 0.5 s per held poll and exhausted the DB pool (5+10); readiness failed, 503/500 flapping.
PR #404 (B): stamp check before the full derive (read marks and the card_watch set count as movement), Semaphore(4) around full answers and marks, request threads capped at pool capacity, MAITY_DB_POOL_SIZE/MAX_OVERFLOW env (defaults unchanged), race-free read marks (ignore-duplicates insert). No migration.
Review: reviewer first pass APPROVE 80c826c5 (two P2s fixed), H final. Follow-ups (wake instead of poll, derive N+1, counts cache) wait on the maintainer's decision req-bbh7af30yrjf.