Deduplicate filing sync notifications and replace toast spam with one durable task status #5

Closed
opened 2026-03-14 22:16:26 +00:00 by Francy51 · 1 comment
Owner

Summary

Filing sync currently produces stacked, near-identical notifications that follow the user across pages and degrade every workflow.

Evidence

  • Manual pass on 2026-03-14 after creating a coverage record and moving through Research, Financials, Graphing, Filings, and Search.
  • Multiple Filing sync toasts accumulated with overlapping progress states.
  • Background retries appear to create more noise instead of updating one durable task surface.

Expected

  • One sync operation should map to one durable status representation that updates in place.

Acceptance Criteria

  • Duplicate sync toasts are collapsed or updated in place.
  • Retries update the existing task state instead of spawning new notifications.
  • The user has one clear path to inspect details or dismiss the task state.
  • Notification volume remains bounded during long-running or failing workflows.
## Summary Filing sync currently produces stacked, near-identical notifications that follow the user across pages and degrade every workflow. ## Evidence - Manual pass on 2026-03-14 after creating a coverage record and moving through Research, Financials, Graphing, Filings, and Search. - Multiple `Filing sync` toasts accumulated with overlapping progress states. - Background retries appear to create more noise instead of updating one durable task surface. ## Expected - One sync operation should map to one durable status representation that updates in place. ## Acceptance Criteria - Duplicate sync toasts are collapsed or updated in place. - Retries update the existing task state instead of spawning new notifications. - The user has one clear path to inspect details or dismiss the task state. - Notification volume remains bounded during long-running or failing workflows.
Francy51 added the P1 label 2026-03-14 22:16:26 +00:00
Author
Owner

Implemented in 0d6c684.

Completed scope:

  • deduped sync_filings enqueue paths so the same user + task type + resource key reuses the in-flight task instead of creating duplicates
  • collapsed active filing sync work into one aggregate notification entry with one stable toast/card surface
  • kept non-sync task notifications unchanged
  • applied grouped read/silence actions across batch member tasks through the existing single-task notification endpoint
  • added pure aggregation tests plus API coverage for same-ticker dedupe and multi-ticker independence

Validation run:

  • bun test lib/task-notification-entries.test.ts lib/server/repos/tasks.test.ts
  • RUN_TASK_WORKFLOW_E2E=1 bun test lib/server/api/task-workflow-hybrid.e2e.test.ts -t "reuses the same in-flight filing sync task|lets different tickers queue independent filing sync tasks"
  • bun x tsc --noEmit

Known follow-up:

  • browser-level notification-center regression coverage is still missing; I am tracking that separately so this issue can close on the shipped behavior change.
Implemented in `0d6c684`. Completed scope: - deduped `sync_filings` enqueue paths so the same user + task type + resource key reuses the in-flight task instead of creating duplicates - collapsed active filing sync work into one aggregate notification entry with one stable toast/card surface - kept non-sync task notifications unchanged - applied grouped read/silence actions across batch member tasks through the existing single-task notification endpoint - added pure aggregation tests plus API coverage for same-ticker dedupe and multi-ticker independence Validation run: - `bun test lib/task-notification-entries.test.ts lib/server/repos/tasks.test.ts` - `RUN_TASK_WORKFLOW_E2E=1 bun test lib/server/api/task-workflow-hybrid.e2e.test.ts -t "reuses the same in-flight filing sync task|lets different tickers queue independent filing sync tasks"` - `bun x tsc --noEmit` Known follow-up: - browser-level notification-center regression coverage is still missing; I am tracking that separately so this issue can close on the shipped behavior change.
Francy51 added reference 0d6c684 2026-03-14 23:32:41 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Francy51/Neon-Desk#5