feat: add status light indicator for TUI and Web UI#30363
Conversation
- Add computeStatusLight() in @opencode-ai/core/session/status-light - Refactor TUI trafficLight memo to use shared function - Add status light dot to Web UI session tabs (V2 titlebar) - Shows colored dot when config.status_light is enabled - Falls back to title text when disabled
|
The following comment was made by an LLM, it may be inaccurate: The search results show PR #30363 (the current PR) and indicate it reopens #30273. The related PR from the search results is: Related PR:
This is related but appears to be a different feature focused on showing session status in the tab title, whereas the current PR (reopened from #30273) adds a status light indicator for both TUI and Web UI. The description mentions this PR reopens #30273 with rebased commits, which would be the primary related/predecessor PR, though it's not appearing in the current open PRs search results (likely because it was closed/superseded). No duplicate open PRs found that would conflict with the current PR #30363. |
|
Thanks for updating your PR! It now meets our contributing guidelines. 👍 |
Issue for this PR
Closes #30272
Type of change
What does this PR do?
Adds a configurable status light indicator in the terminal title bar and Web UI session tabs that reflects the current opencode state:
Configuration:
status_light: booleanat top-level config (global or project-level).{ "status_light": true }The indicator is prepended to the existing terminal title (e.g.
🟢 OC | My Session). In Web UI, a colored dot is shown before the tab title text.Permission required and question asked states are correctly shown as green (waiting for user), avoiding false "busy" indication.
How did you verify your code works?
bun typecheckpasses across all 27 packagesbun run buildsucceeds for all platformsstatus_light: truein global configScreenshots / recordings
N/A — terminal title bar change is not visible in screenshots. Web UI tab dot can be verified visually.
Checklist
If you do not follow this template your PR will be automatically rejected.