fix(realtime): catch up missed board events after rejoin - #3320
Conversation
|
@codex review Please review exact head The first implementation head Run: https://github.com/Chris0Jeky/Taskdeck/actions/runs/35591987360 ; JUnit artifact |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3cc235f6fb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please re-review head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 072d252b0e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bb35340ca5
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
fa44ae0 to
9fcae6f
Compare
9fcae6f to
eda04b0
Compare
|
@codex review\n\nPlease review exact current head �da04b07afb8f00e46106e911bb3071615fd1088 against base b830ed1960648662f92090e2970491d163f93a7. Focus on rejoin acknowledgement, recovery/polling ownership transfer, fallback/catch-up deduplication, stale connection callbacks, and failed latest-board rejoin behavior. Earlier review findings were repaired; this is the one current-head review request for the rebased PR. |
Review findingsP2 — Version recovery completion across consecutive reconnectsA catch-up from an earlier reconnect can still discharge a newer recovery obligation. Every reconnect sets the shared Reproduction sequence:
A mutation missed during the second outage can therefore remain absent. Recovery completion needs an epoch/generation token so only the recovery generation that owns a read can discharge its obligation. P2 — A skipped view refresh is still treated as successful recovery
This remains reachable because route navigation updates The adapter should return Review statusReviewed exact head I could not publish the review directly to GitHub because this environment has neither an authenticated The repository’s human-action ledger currently contains 42 open items, including maintainer-only credential rotation, real-device validation, repository/CI governance decisions, and product rulings. OUTSTANDING_TASKS.mdL143-L144 OUTSTANDING_TASKS.mdL165-L168 Checks
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: eda04b07af
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Fresh review request for exact current head 90d41ea against base fb830ed. The prior current-head review findings are fixed in commits 1e9029c and 90d41ea: reconnect recovery completion is generation-scoped, queued successors retarget newer recovery generations, and BoardView reports skipped stale/unmounted refreshes as false. Please review only the fix diff and confirm whether any merge-blocking defect remains. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 90d41eaf1f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Fresh review request for exact current head 51448e9 against base fb830ed. The previous P2 threads are addressed by generation-scoped recovery, queued-old-generation protection, stale-view false signaling, and affirmative commit enforcement. Review only the final fix diff for merge-blocking defects. |
|
Codex Review: Didn't find any major issues. Can't wait for the next one! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Closes #3319.
Repair
No dependency, workflow, backend or store changes. The separate server-side JoinBoard investigation #1521 remains open.
Exact current head
072d252b0e258fd4a28443f547c6ea3e34ee49bb, based on main307c3b8b50bec1cb0bfaea3e570a942bcb1d4451.Four files: the controller, ten new recovery cases, and two existing reconnect assertions updated to require exactly one catch-up while independently proving periodic polling stops. No assertions are skipped or weakened to allow missing recovery.
Evidence and review history
6fb7f2d...: normal Ubuntu frontend lint/typecheck/build/PWA validation passed; all eight then-new recovery cases passed. Full JUnit recorded 7,158 tests, one failure, zero errors. The sole failure was an older resilience test asserting no reconnect read. Run: https://github.com/Chris0Jeky/Taskdeck/actions/runs/35591987360 . That outdated expectation was corrected in3cc235f...without changing production behavior.3cc235f...found two valid P2 gaps: an in-flight fallback could swallow catch-up, and navigation during rejoin could discard recovery. Both were reproduced before correction and are addressed by current head. The supplementary probe now passes 4/4; ten formal recovery tests include both schedules and failed recovery transfer. Inline threads contain detailed replies.Local npm registry DNS failed (EAI_AGAIN), and installed Node 22 is below the repository's Node 24 contract. Locked-dependency runtime qualification therefore uses normal hosted Actions, without engine/dependency/workflow bypasses.
Handoff
Keep draft until current-head frontend/full CI and the repeat review are inspected. Recheck current main and changed paths before continuing. Do not merge, alter release gates or infer that successful unit checks qualify real-server SignalR behavior. This PR does not own board/session-store invalidation (#3305/#3306/#3324).