Skip to content

fix: stabilize dashboard navigation recovery - #2931

Merged
numnx merged 1 commit into
devfrom
fix/navigation-refresh-recovery
Jul 11, 2026
Merged

fix: stabilize dashboard navigation recovery#2931
numnx merged 1 commit into
devfrom
fix/navigation-refresh-recovery

Conversation

@numnx

@numnx numnx commented Jul 11, 2026

Copy link
Copy Markdown
Collaborator

What changed

  • Prevent chat draft hydration from pairing a newly selected project with a thread retained from the previous project.
  • Rebase the shared realtime cursor to the server's authoritative acknowledgement after restart.
  • Clear unrecoverable realtime cursors and serialize navigation-driven subscription changes until acknowledgement.
  • Update canonical and published documentation for draft ownership, recovery operations, and the current WebSocket protocol.

Root cause and impact

Project navigation could briefly combine the new project id with the previous thread id, causing draft GET/PUT ownership failures. Separately, the realtime client max-merged sequence acknowledgements, so a lower post-restart server watermark could never replace the stale browser cursor. Every navigation scope change then triggered another snapshot recovery and a fan-out of REST refreshes, which could make route tabs appear frozen.

Validation

  • pnpm run ci
    • dependency audit passed
    • typecheck/lint passed
    • backend coverage: 5,262 passed, 7 skipped
    • dashboard: 2,100 passed, 2 skipped
    • production build passed
  • Targeted dashboard regressions: 31 passed
  • Playwright route smoke and rapid navigation stress: 2 passed
  • Fixed build on port 4444: rapid in-app route cycle completed with no page errors or HTTP failures
  • Published docs sync check passed

Risk and rollback

Risk is limited to dashboard draft-context selection and realtime subscription handshakes. Roll back commit d5284c048 if scope acknowledgements fail to progress or draft restoration regresses. REST resource snapshots remain the recovery source throughout.

@numnx
numnx marked this pull request as ready for review July 11, 2026 15:51
@numnx
numnx merged commit ab9d4b7 into dev Jul 11, 2026
40 checks passed
@numnx
numnx deleted the fix/navigation-refresh-recovery branch July 11, 2026 15:51
@numnx numnx mentioned this pull request Jul 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant