Uh oh!
There was an error while loading. Please reload this page.
feat(cli): themed terminal output with shared UI primitives - #120
Merged
Conversation
Add the skilld-ui crate: theme roles, Screen and Line, text measurement, braille spinner frames, and relative time. Port search rendering onto it byte-identical, and route every command through semantic Lines. Plain and JSON output stay exact machine records; Human output gains glyphs, aligned fields, and hyperlinks. The status spinner starts after 500ms so fast operations never flash. The update TUI shares the spinner and theme glyphs.
OutdatedProgressLine gated only on a terminal stderr, so an agent session attached to a TTY streamed spinner lines into its logs. Gate it on agent detection too, matching the status line and output modes.
harlan-zw
commented
Aug 21, 2026
CollaboratorAuthor
Checked by hand, since CI cannot cover it:
|
Uh oh!
There was an error while loading. Please reload this page.
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 freeto 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.
❓ Type of change
📚 Description
Every command except search printed bare sentences while search carried its own hand-rolled ANSI helpers, and the update TUI re-implemented wrapping, truncation, and its own spinner. One
skilld-uicrate now owns the theme roles, screen/line model, text measurement, spinner frames, and relative time, with zero new dependencies.Plain and JSON output stay byte-identical, so agents and scripts see no change. Human terminals get consistent glyphs, aligned fields, and hyperlinks, the spinner waits 500 ms so fast operations never flash, and the TUI shares the same spinner and glyphs.
One real bug fell out of the sweep:
skilld outdated --allstreamed spinner lines into agent logs whenever the agent session held a terminal stderr. Progress now goes quiet for agents, matching the status line and output modes.