fix(control-ui): show Sessions live status#80169
Conversation
|
@clawsweeper review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
655673a to
5b92740
Compare
|
Codex review: needs maintainer review before merge. Summary Reproducibility: yes. source-reproducible: current main has status and hasActiveRun on session rows, but the Sessions table omits a Status column and the English filter copy still says Active. I did not run the browser locally during this read-only sweep. Real behavior proof Next step before merge Security Review detailsBest possible solution: Land this narrow UI projection if maintainers accept the label semantics, and keep the richer heartbeat/stall API work in the existing activity-tracking issues. Do we have a high-confidence way to reproduce the issue? Yes, source-reproducible: current main has status and hasActiveRun on session rows, but the Sessions table omits a Status column and the English filter copy still says Active. I did not run the browser locally during this read-only sweep. Is this the best way to solve the issue? Yes: the PR is the narrow maintainable fix for the reported UI projection gap because it uses existing row fields and avoids adding a new Gateway activity API. The broader heartbeat/stall model should remain separate. What I checked:
Likely related people:
Remaining risk / open question:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 09132effa82a. |
|
@clawsweeper re-review |
|
@clawsweeper review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
5b92740 to
ea757bd
Compare
|
@clawsweeper review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
ea757bd to
5f8994a
Compare
Summary
status/hasActiveRunrow data available, but operators could not see which recent session was live, and theActivefilter sounded like liveness even though it was an updated-within lookback.Updated within, regenerated Control UI locale fallbacks, and tightened Sessions table responsive behavior so row cells truncate instead of wrapping.Live onlytoggle, and no new server-side session behavior.Change Type (select all)
Scope (select all touched areas)
Linked Issue/PR
Real behavior proof (required for external PRs)
http://127.0.0.1:5173/, Codex in-app browser.http://127.0.0.1:5173/__codex-sessions-single-row-fixture.htmlin the in-app browser, checked page identity/not-blank/console health, verified live and idle badges plus long runtime text, and clicked the live-session checkbox.notBlank: true,hasFrameworkOverlay: false,consoleIssues: [],liveBadgeCount: 1,idleBadgeCount: 1,runtimeCount: 1,checkedCount: 1.Activewas lookback copy.Root Cause (if applicable)
Regression Test Plan (if applicable)
ui/src/ui/views/sessions.test.ts,ui/src/ui/views/sessions.browser.test.ts,ui/src/styles/components.test.ts,ui/src/i18n/test/translate.test.ts.User-visible / Behavior Changes
Livebadge; idle/terminal states show compact non-live badges.Activefilter label now readsUpdated withinto describe the lookback semantics accurately.Diagram (if applicable)
Security Impact (required)
Yes/No) NoYes/No) NoYes/No) NoYes/No) NoYes/No) NoYes, explain risk + mitigation: N/A.Repro + Verification
Environment
Steps
hasActiveRun: true/status: runningand another is idle.Expected
Livebadge.Actual
Active.Evidence
Human Verification (required)
What you personally verified (not just CI), and how:
375,430,768, and1440, reduced column visibility at narrow widths, generated locale fallback sync.Review Conversations
If a bot review conversation is addressed by this PR, resolve that conversation yourself. Do not leave bot review conversation cleanup for maintainers.
Compatibility / Migration
Yes/No) YesYes/No) NoYes/No) NoRisks and Mitigations
statusbadge as the richer heartbeat/stall model requested in related issues.Live,Idle, terminal states), uses only existing row data, and explicitly leaves heartbeat/stall semantics to Feature: Per-Session Health Polling & Live Status Indicators #57933 / [Feature]: Per-session activity state (busy/idle + awaiting_user, awaiting_subagent) via gateway API + WS statechange #39127.Duplicate / overlap triage
gitcrawllocal data was stale for Dashboard Sessions view: no live/active indicator, 'Active N' label is misleading #78307 (repository.updatedAt2026-04-13 and target missing), so live GitHub search was used for current overlap checks.ui/src/ui/views/sessions.ts.Verification commands
pnpm test ui/src/ui/views/sessions.test.ts ui/src/ui/views/sessions.browser.test.ts ui/src/ui/controllers/sessions.test.ts ui/src/styles/components.test.ts ui/src/i18n/test/translate.test.tspnpm test ui/src/ui/views/sessions.browser.test.ts ui/src/styles/components.test.tspnpm ui:i18n:checkpnpm exec oxfmt --check --threads=1 CHANGELOG.md ui/src/styles/components.css ui/src/styles/components.test.ts ui/src/styles/layout.mobile.css ui/src/ui/views/sessions.browser.test.ts ui/src/ui/views/sessions.test.ts ui/src/ui/views/sessions.ts ui/src/i18n/locales/en.tsgit diff --checkpnpm --dir ui buildhttp://127.0.0.1:5173/__codex-sessions-single-row-fixture.html