Claude: changes for issue #96 #97
No reviewers
Labels
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Grandiras/Ponente!97
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "claude/issue-96"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #96.
🤖 Reviewing this PR — follow along in the action run; the reply will link the full session transcript.
📜 Live transcript — updating every ~5 minutes while the task runs.
✅ Verdict: approve — no blocking issues found.
Fixes a real re-entrancy bug: a cross-board shared-card link changes both the route parameter and the query parameter, which Blazor delivers as two separate
OnParametersSetAsyncinvocations — the query-driven one lands mid-await of the route-driven one'sReloadAsync, before_columnsreflects the new board, causingOpenSharedCardto wrongly conclude the card is gone, toast, and strip?card=before the real load could open it.The fix places the
_loadingBoardguard insideOpenSharedCard()itself rather than only in the caller, which correctly protects both call sites — the full-reload branch inOnParametersSetAsyncand the same-board branch that also callsOpenSharedCard()directly. Traced through the sequencing:_loadedBoardIdis assigned synchronously before theawait ReloadAsync(), so the reentrant query-only call takes the "same board" branch and hits the guard; once the load finishes,_loadingBoardis cleared andOpenSharedCard()is called again withSharedCardIdstill intact, so the open succeeds. No await points exist between clearing the flag and the final call, so there's no residual race there.The new e2e test follows the established patterns in this suite (board creation/teardown mirrors
boards.spec.js/calendar-all.spec.js), and its selectors (#desc-tab-preview,.link-card,data-card-id) match the actual markup inCardModal.razorandLinkCard.razor. The CLAUDE.md addition accurately documents the mechanism and the fix. No issues found.⏱ 1m 29s · 13 turns · tokens: 74.4k in / 7.0k out (+1128.6k cache-read)
📜 Full session transcript