fix(web): clear woke state on explicit thread actions - #5486
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
ApprovabilityVerdict: Approved 05c6acd This is a self-contained bug fix that clears the 'woke' notification state when users explicitly interact with threads (archive, settle, or dismiss). The changes call existing state management functions in appropriate places and add a clickable dismiss button for the woke indicator. You can customize Macroscope's approvability policy. Learn more. |
b5f321b to
0924788
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 0924788. Configure here.
One commit: fix(web): clear woke state on explicit thread actions (pingdotgg#5486). Two conflicts, both where upstream touched code the fork had extended. ChatView's send path: the fork wraps startThreadTurn in outbox persistence (enqueue, in-flight tracking, remove-on-delivery, queue-for-retry on transport errors); upstream added acknowledgeActiveThreadWoke() on success. Kept the fork structure and grafted the acknowledgement onto its success branch. Taking upstream would have deleted the outbox; taking ours would have dropped the fix. useThreadActions: imports and a dependency array, both unions -- the fork's worktree-cleanup entries plus upstream's threadWokeAt and markThreadVisited. Also fixed two duplicate imports that git produced without reporting a conflict. Both sides added specifiers to the same statements, so the auto-merge combined them and left scopedThreadKey and useUiStateStore imported twice. Only the typechecker caught it -- a clean merge is again not evidence of a working one. Verified: full recursive typecheck clean, 2255 tests pass. The single failure is the Codex structured-output test, which predates this merge. Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
## What's Changed * fix(web): clarify auto permission fallback by @t3-code[bot] in pingdotgg/t3code#5431 * fix(acp): keep unknown approvals actionable by @t3-code[bot] in pingdotgg/t3code#5430 * fix(mobile): stop thread messages reading through pending cards by @carlosricojr in pingdotgg/t3code#5450 * fix(web): align composer inline chips with prompt text by @StiensWout in pingdotgg/t3code#5495 * fix(web): clear woke state on explicit thread actions by @StiensWout in pingdotgg/t3code#5486 **Full Changelog**: pingdotgg/t3code@v0.0.32-nightly.20260806.1015...v0.0.32-nightly.20260806.1018 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.32-nightly.20260806.1018

Summary
Validation
vp run --filter @t3tools/web typecheckvp lint --report-unused-disable-directives apps/web/src/components/ChatView.tsx apps/web/src/hooks/useThreadActions.ts apps/web/src/components/SidebarV2.tsxvp fmt --checkon the changed web filespnpm exec vp test run --passWithNoTests --project unit src/components/Sidebar.snooze.test.ts src/components/ChatView.logic.test.ts src/hooks/useThreadActions.test.ts(43 passed)git diff --checkThe suite-registration error comes from invoking a globally installed
vpoutside the workspace dependency context. Usepnpm exec vpor a package script so the workspace-local Vite+ binary is resolved.Implemented by Codex (GPT-5.6) via T3 Code.
Note
Low Risk
Local UI visit-state behavior change only; no auth, data, or API contract changes.
Overview
Woke notifications no longer clear just because you opened a thread or its
updatedAtmoved ahead of last visited. The old effect that auto-calledmarkThreadVisitedon view is removed.Acknowledgment now happens only on explicit actions, and always uses the server-backed wake time from
threadWokeAt(not “now”): dismiss the Woke control in the sidebar, successfully start a turn in chat, or settle / archive the thread. Sidebar rows treat Woke as a clickable dismiss control and adjust hover/pointer behavior so settle/snooze controls don’t steal clicks from it.Reviewed by Cursor Bugbot for commit 05c6acd. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Clear woke state on explicit thread actions in chat and sidebar
wokeAttimestamp instead of auto-marking it visited on view based onupdatedAt.wokeAttimestamp.Macroscope summarized 05c6acd.