Repository navigation
feat(tui): configurable loading spinner, default aesthetic - #126
Closed
quickbeard wants to merge 4 commits into
Closed
quickbeard wants to merge 4 commits into
quickbeard wants to merge 4 commits into
Conversation
The thinking/loading spinner (Thinking header, running tool/task/bash rows, dialogs, startup screen, and the run-CLI subagent inspector) changes from braille dots to the cli-spinners "aesthetic" bar. A new optional "spinner" key in tui.json accepts any cli-spinners preset name; unknown names fall back to aesthetic without invalidating the config. Reduced-motion behavior is unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The default is now a fork-owned {frames, interval} spec (aesthetic's
fill cycle at 3 segments instead of 7); the spinner config resolves to
a spec rather than a preset name so the default doesn't have to be a
cli-spinners preset. Named presets in tui.json behave as before.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The 3-segment bar now cycles empty -> full (4 frames at 160ms, the same 640ms full cycle as cli-spinners' aesthetic) instead of holding the first segment filled at 80ms. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replaces the TUI's braille-dots thinking/loading spinner with a 3-segment filling bar (
▰▰▱, 230ms — cli-spinners'aestheticfill cycle narrowed from 7 segments to 3) and makes the spinner user-configurable via a new optionalspinnerkey in tui.json.Spinnercomponent: Thinking header, running tool/task/bash rows, dialogs, startup screen — plus thecodev runsubagent inspector."spinner": "<name>"accepts any cli-spinners preset name (e.g."dots"restores the old look). Unknown names fall back to the default bar at resolve time instead of failing schema validation, since the host drops the entire tui.json on a schema failure.{frames, interval}spec (fork-onlypackages/tui/src/config/spinner.ts): known cli-spinners names map to their preset spec, everything else to the fork-owned 3-segment default — which is why the default doesn't need to be a cli-spinners preset.cli-spinners@3.4.0(the version already resolved transitively viaopentui-spinner) becomes a direct dep ofpackages/tui.⋯fallback is unchanged.Verification
bun typecheckclean inpackages/tuiandpackages/opencode;packages/clientcheck:generatedis a no-op (TuiConfig is not part of the public HttpApi).packages/tui/test/spinner-config.test.tsx(default spec, preset passthrough, fallback, schema); existing tui config/dialog suites and opencode run-CLI suites pass.▰▰▱bar on a running bash row;{"spinner": "dots"}restores braille;{"spinner": "bogus"}falls back to the bar with the rest of the config still applied.🤖 Generated with Claude Code