Sidebar session status

A running conversation that is not waiting for user input displays three pulsing dots, including when pinned. Only the selected running row displays the background sweep. Selection is represented by aria-current="true".

Rendering

ConvItem prioritizes needs-input, then running, then unread. StatusMarker displays the resulting state before considering the pinned and idle markers. Waiting for input retains its amber marker. CSS suppresses running and finishing pseudo-elements on unselected rows. Backend status, task execution, navigation, and conversation persistence are unchanged.

Installation and recovery

Source TSX and CSS are built through the normal release asset pipeline. The committed checkout is installed with scripts/refresh-local-app.sh, which replaces the default App runtime and frontend together. Installed minified JavaScript and generated asset names are never manually patched. The workspace root package manifest retains workspace definitions and is separate from the desktop package manifest.

Acceptance

Implementation status

The source behavior is implemented and independently reviewed. Web tests, Web and Desktop checks, repository contracts, and documentation links pass. Installation uses the production build and the acceptance checks above; a successful source check alone does not establish installed-App health.