Skip to content

fix(ui): show one spinner throughout live turns - #3350

Open
Colafornia wants to merge 1 commit into
apache:mainfrom
Colafornia:fix/single-live-turn-spinner
Open

fix(ui): show one spinner throughout live turns#3350
Colafornia wants to merge 1 commit into
apache:mainfrom
Colafornia:fix/single-live-turn-spinner

Conversation

@Colafornia

@Colafornia Colafornia commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

During a live turn, a completed tool row could appear above the working status while no animated indicator showed that output was still in progress.

The expected behavior is one active spinner—not zero or two—throughout a live turn.

Live-turn phase Tool row Turn status Spinner owner
The model works before or between tool calls No running tool Shows the working phrase, elapsed time, and spinner Turn status
A tool call runs Shows its running state and spinner Keeps the working phrase and elapsed time Tool row
The tool settles and the model continues Shows its completed state Resumes the spinner with the working phrase and elapsed time Turn status

When the turn reaches a terminal state, the running status disappears and no spinner remains.

The previous implementation removed the spinner from TurnRunningStatus to prevent duplicate animation during tool calls. This also removed the only animated indicator between tool calls.

This change detects in-flight tools with the shared isInFlightToolStatus helper. The turn status renders the existing Astryx Spinner only when no tool owns the active spinner.

The working copy, elapsed timer, timeline folding, and tool-row behavior remain unchanged. The spinner is decorative for assistive technology, while the status row keeps its accessible name.

Before After
image image

Verification

  • npm --workspace @maka/ui test — 184 tests passed
  • The new regression test failed before the production change and passed after it
  • git diff --cached --check — passed
  • Real-window visual verification was not run

AI use

Select exactly one:

  • No generative tool made a substantive contribution
  • Generative tooling made a substantive contribution

Tool(s) and scope: Codex diagnosed the missing activity state, implemented conditional spinner ownership, added regression coverage, and drafted this pull request.

Checklist

  • Tests cover the change and fail without it
  • Lint, format, typecheck and the affected suites pass locally

Does this PR entail a change in behavior?

  • Yes — described under Summary above
  • No

Hand spinner ownership between running tools and the turn status so live output always has one activity indicator.

Generated-by: Codex
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