Skip to content

feat(connect): render session/run status surface; stop spinner on waiting#45

Merged
hbrooks merged 2 commits into
mainfrom
feat/session-status-surface
Jul 13, 2026
Merged

feat(connect): render session/run status surface; stop spinner on waiting#45
hbrooks merged 2 commits into
mainfrom
feat/session-status-surface

Conversation

@hbrooks

@hbrooks hbrooks commented Jul 13, 2026

Copy link
Copy Markdown
Member

What

Companion to backend ellipsis-dev/ellipsis#5830, which replaces the raw per-execution status on the session stream/REST with a customer-facing surface: two axes (session = alive/sleeping/closed, run = scheduled/starting/working/waiting/…) plus a derived single-word status.

The connect view used to spin running even while the agent was idle at the prompt waiting for your input (headless streaming keeps the box warm between turns). This consumes the new vocabulary so the footer reads what's actually happening.

Changes

  • StreamFrame + the AgentSession type gain session/run (and surface on the REST session object).
  • isWorkingStatus = [scheduled, starting, working, retrying]waiting/sleeping stop the spinner, so a finished turn reads waiting instead of a misleading spinning running. This is the core fix.
  • everRunning triggers on working|waiting; the poll backstop and connect's initialStatus read surface?.status ?? status, so the socket and poll paths share the derived vocabulary (the raw status is a different one).
  • statusSystemLine rewritten to the surface words.

Testing

npx tsc --noEmit clean. Requires the backend PR deployed for the new frame fields to arrive; degrades gracefully otherwise (surface?.status ?? status).

hbrooks added 2 commits July 13, 2026 14:05
…ting

The backend now streams a customer-facing status surface (session + run axes +
a derived word) instead of the raw per-execution status. A connected session
used to spin "running" even while the agent was idle at the prompt waiting for
input. Consume the new vocabulary:

- StreamFrame + the AgentSession type gain session/run (+ surface on the REST
  session).
- isWorkingStatus = [scheduled, starting, working, retrying] — waiting/sleeping
  stop the spinner, so a finished turn reads "waiting" instead of a misleading
  spinning "running".
- everRunning triggers on working|waiting; the poll backstop and connect's
  initialStatus read surface.status (fall back to raw) so the socket and poll
  paths share the derived vocabulary.
- statusSystemLine rewritten to the surface words.

Companion to the backend PR (ellipsis-dev/ellipsis#5830).
@hbrooks hbrooks merged commit 86b8172 into main Jul 13, 2026
1 check passed
@hbrooks hbrooks deleted the feat/session-status-surface branch July 13, 2026 18:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant