feat(web): show running indicator for active sessions in sidebar#2075
Open
cal-gooo wants to merge 1 commit intoMoonshotAI:mainfrom
Open
feat(web): show running indicator for active sessions in sidebar#2075cal-gooo wants to merge 1 commit intoMoonshotAI:mainfrom
cal-gooo wants to merge 1 commit intoMoonshotAI:mainfrom
Conversation
Adds a subtle three-layer "alive" marker (core dot, breathing halo, rotating orbital arc) to each running session row in the sidebar, so users can tell at a glance which sessions are busy without opening them. Derived from `session.status.state` (busy/restarting). Also sets up vitest + testing-library in web/ and ships unit tests for the new component. Two unrelated useSimplifiedLogicExpression violations flagged by biome in approval-dialog.tsx and session-files-panel.tsx were auto-fixed so `npm run lint` stays clean after adding the new code.
6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a subtle "alive" marker to each running session in the sidebar so users can tell at a glance which sessions are busy without opening them.
SessionRunningIndicatorcomponent rendered next to the title for running sessions in both list and grouped viewssession.status.stateisbusyorrestarting--session-running*CSS tokens with light/dark variants so it matches the existing shadcn-style themeprefers-reduced-motion<output role="status" aria-label="Session is running">Preview
Left half is the light theme, right half is dark. Top: a sample sidebar with running and non-running rows interleaved. Bottom: the indicator enlarged so you can see the three animation layers.
Testing
Adds
vitest+@testing-library/reacttoweb/(no prior JS test runner existed) and aSessionRunningIndicatortest suite covering default label, semantic element, base class + core layer, custom label, and className merging.Test plan
cd web && npm test— vitest suite passescd web && npm run typecheck— cleancd web && npm run lint— clean (two pre-existinguseSimplifiedLogicExpressionerrors inapproval-dialog.tsxandsession-files-panel.tsxwere auto-fixed; behavior unchanged)cd web && npm run build— clean🤖 Generated with Claude Code