Skip to content

Adapt progress output to width#2682

Merged
plajjan merged 1 commit into
mainfrom
progress-width-adapt
Mar 8, 2026
Merged

Adapt progress output to width#2682
plajjan merged 1 commit into
mainfrom
progress-width-adapt

Conversation

@plajjan

@plajjan plajjan commented Mar 8, 2026

Copy link
Copy Markdown
Contributor

The build and test progress renderers assumed a fixed terminal shape in too many places. Narrow terminals could wrap live rows, live and done lines could fall into different column layouts, and acton test no longer kept its wide padded live format. The test UI could also lose its initial spinner state and stall while repainting live rows.

Introduce explicit terminal size tracking and route the build and test formatters through width-aware renderers. Build lines now share one layout picker for live and done output, preserve failure messages as truncated status text, reserve a safety column against autowrap, and still fit to the current width when progress drawing is disabled. Test lines now reuse the legacy wide layout when it fits, fall back compactly when it does not, and render live spinners from indexed line renderers.

This keeps build output columnar at normal widths, lets test output preserve its established wide layout while still degrading predictably on narrow terminals, and makes current terminal width an input to rendering rather than an accidental side effect of the progress UI mode.

Fixes #2673

@plajjan plajjan enabled auto-merge March 8, 2026 12:54
@plajjan plajjan force-pushed the progress-width-adapt branch from 8e61f54 to 0ffe823 Compare March 8, 2026 13:53
The build and test progress renderers assumed a fixed terminal
shape in too many places. Narrow terminals could wrap live rows,
live and done lines could fall into different column layouts, and
acton test no longer kept its wide padded live format. The test
UI could also lose its initial spinner state and stall while
repainting live rows.

Introduce explicit terminal size tracking and route the build and
test formatters through width-aware renderers. Build lines now
share one layout picker for live and done output, preserve
failure messages as truncated status text, reserve a safety
column against autowrap, and still fit to the current width when
progress drawing is disabled. Test lines now reuse the legacy
wide layout when it fits, fall back compactly when it does not,
and render live spinners from indexed line renderers.

This keeps build output columnar at normal widths, lets test
output preserve its established wide layout while still
degrading predictably on narrow terminals, and makes current
terminal width an input to rendering rather than an accidental
side effect of the progress UI mode.
@plajjan plajjan force-pushed the progress-width-adapt branch from 0ffe823 to 4372471 Compare March 8, 2026 19:59
@plajjan plajjan merged commit e3ea184 into main Mar 8, 2026
77 of 84 checks passed
@plajjan plajjan deleted the progress-width-adapt branch March 8, 2026 21:17
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.

Improve progress output for narrow terminal

1 participant