Skip to content

fix(web): clear woke state on explicit thread actions - #5486

Merged
maria-rcks merged 4 commits into
pingdotgg:mainfrom
StiensWout:t3code/remove-woke-tag-on-thread-click
Aug 6, 2026
Merged

fix(web): clear woke state on explicit thread actions#5486
maria-rcks merged 4 commits into
pingdotgg:mainfrom
StiensWout:t3code/remove-woke-tag-on-thread-click

Conversation

@StiensWout

@StiensWout StiensWout commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Keep the Woke notification until the Woke control is clicked, a new user message is sent, or the thread is settled or archived.
  • Keep Woke dismiss controls reachable in slim and card sidebar rows, including while quick actions are shown.
  • Preserve the server-backed wake timestamp when acknowledging the notification.

Validation

  • vp run --filter @t3tools/web typecheck
  • vp lint --report-unused-disable-directives apps/web/src/components/ChatView.tsx apps/web/src/hooks/useThreadActions.ts apps/web/src/components/SidebarV2.tsx
  • vp fmt --check on the changed web files
  • pnpm 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 --check

The suite-registration error comes from invoking a globally installed vp outside the workspace dependency context. Use pnpm exec vp or 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 updatedAt moved ahead of last visited. The old effect that auto-called markThreadVisited on 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

  • Sending a message now marks the active thread as visited at its wokeAt timestamp instead of auto-marking it visited on view based on updatedAt.
  • Archiving or settling a thread now acknowledges any outstanding snooze wake by marking the thread visited at its wokeAt timestamp.
  • The Woke badge in the sidebar becomes a clickable button that dismisses the wake notification by recording the thread as visited at the wake timestamp.
  • Behavioral Change: threads with a pending wake state are no longer auto-acknowledged on view; acknowledgement now requires an explicit user action (send, archive, settle, or badge click).

Macroscope summarized 05c6acd.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 468d1842-e94e-4588-80a7-d5b3c56301ad

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 6, 2026
@StiensWout StiensWout changed the title fix(web): clear woke state when threads are visited fix(web): clear woke state on explicit thread actions Aug 6, 2026
Comment thread apps/web/src/components/ChatView.tsx
Comment thread apps/web/src/components/SidebarV2.tsx
@macroscopeapp

macroscopeapp Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: 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.

@StiensWout
StiensWout force-pushed the t3code/remove-woke-tag-on-thread-click branch from b5f321b to 0924788 Compare August 6, 2026 11:09
Comment thread apps/web/src/components/SidebarV2.tsx Outdated

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ 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.

Comment thread apps/web/src/components/SidebarV2.tsx
@maria-rcks
maria-rcks merged commit 4f5834b into pingdotgg:main Aug 6, 2026
17 checks passed
omegent-app Bot added a commit to patroza/t3code that referenced this pull request Aug 6, 2026
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>
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Aug 7, 2026
## 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants