Skip to content

feat(web): show project attention in switcher - #7955

Closed
sethwebster wants to merge 2 commits into
pingdotgg:mainfrom
sethwebster:t3code/workspace-status-dots
Closed

sethwebster wants to merge 2 commits into
pingdotgg:mainfrom
sethwebster:t3code/workspace-status-dots

Conversation

@sethwebster

@sethwebster sethwebster commented Aug 23, 2026 •

Copy link
Copy Markdown
Contributor

Closes #7954.

Problem

The project switcher hides attention states in other projects. Users have to change the project filter or return to All projects to find a failed thread, an input request, or an unread completion.

Fix

  • Add a static status dot to each affected project icon in the current web and desktop project switcher.
  • Roll up only failed, awaiting-input, and unread-completion states, with failed > input > done precedence.
  • Reuse the sidebar's settled and snoozed lifecycle decisions so settled, archived, and deliberately hidden threads do not produce stale dots.
  • Subscribe each project row only to its own visit markers, and compute cross-project status only while the switcher is open.
  • Include the status in each menu item's accessible name.

Mobile keeps its native text-only project filter, which has no project-icon slot.

UI changes

Before After
Project switcher without attention dots Project switcher with failed, input, and done dots

Verification

  • pnpm exec vp test run apps/web/src/components/Sidebar.logic.test.ts (111 tests)
  • pnpm exec vp run --filter @t3tools/web typecheck
  • targeted vp lint for the changed TypeScript files
  • pnpm exec vp run --filter @t3tools/web build
  • isolated real-app pass at 1024 x 720 in dark mode
    • failed, input, and done dots render with distinct colors
    • a settled-only project has no dot
    • menu item names expose Failed, Awaiting input, and Done

Implemented with gpt-5.6-sol through the Codex harness in T3 Code.


Note

Low Risk
UI-only sidebar switcher change with isolated status rollup and tests; no auth, data, or API surface changes.

Overview
The web/desktop project switcher now shows a status dot on projects that need attention outside the current filter, so users can find failures, input requests, and unread completions without switching to All projects.

Dots roll up only failed, input, and done (unread completion), in that order. Approvals, background work, settled/snoozed/archived threads, and never-visited historical completions do not light a dot. Cross-project status is computed only while the menu is open; each row subscribes only to its own visit markers. Accessible names include the status label. Mobile stays text-only.

Reviewed by Cursor Bugbot for commit bbd52c7. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add project attention dots to the sidebar project switcher

  • Adds resolveProjectAttentionStatus in Sidebar.logic.ts which reduces a list of threads to a single attention status with precedence: failed > input > done, or null when no attention applies.
  • Adds the ProjectScopeMenuItem component in Sidebar.tsx that renders a colored dot and aria-label per project when attention is present, and a settings button.
  • Updates the sidebar partitioning memo to gather per-project thread sets (including out-of-scope threads while the project menu is open) so attention can be computed for every project.
  • Documents the new indicators in thread-sidebar.md.
  • Behavioral Change: the sidebar now iterates all non-archived threads when the project scope menu is open (not just in-scope ones) to populate projectAttentionThreadsByKey; out-of-scope threads remain hidden in the main lists but are processed for attention.

Macroscope summarized bbd52c7.

@coderabbitai

coderabbitai Bot commented Aug 23, 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: 0f3a55d3-01be-4e4c-b111-3152d182bcb8

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:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 23, 2026
@macroscopeapp

macroscopeapp Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Skipped

Macroscope did not run approvability analysis for this PR. Macroscope could not determine whether this PR modifies its approvability configuration, so the PR was not approved automatically. A PR that may change the rules that govern approval is never approved automatically.

Copy link
Copy Markdown
Member

Note

This comment is posted by Julius' dot

Closing this because the new project attention dots require prior product-direction approval. In #7954, Theo classified these dots as a feature proposal and asked for an Ideas discussion; this PR does not link approval of the direction and scope. The contribution guide requires that approval. Please obtain it in an Ideas discussion and link the decision when requesting reconsideration.

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:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(web): show attention status dots in the project switcher

2 participants