Skip to content

Release v4.3.2 - #26

Merged
countzero merged 5 commits into
mainfrom
develop
Sep 24, 2026
Merged

countzero merged 5 commits into
mainfrom
develop

Conversation

@countzero

Copy link
Copy Markdown
Owner

Overview

This release changes only the layout of the footer that sca usage and sca monitor print below the table. When the footer mixes tags of different widths ([Usage], [Monitor], [Warmup], [Watch]), every message now starts in one column. To upgrade, replace the file; nothing else changes.

v4.3.2

  • Aligned the footer messages in one column after left-aligned [Tag] labels. The column sits 3 spaces after the shortest tag, or 1 space after the widest if that lies further right.
  • Hung wrapped continuation rows under that same column instead of under each line's own tag.
  • Left a footer unpadded when all its tags share one width, so a plain sca usage advisory ([Usage] lines alone) renders exactly as in v4.3.1.
  • Re-rendered docs/images/monitor.svg and the twelve theme-*.svg images to match.

Before:

[Usage] 'slot-1': api key or non-claude.ai slot
[Monitor] Automatic slot switching is enabled.
[Warmup] Keeping all slots warm.
[Watch] Last poll at 19:06:41

After:

[Usage]   'slot-1': api key or non-claude.ai slot
[Monitor] Automatic slot switching is enabled.
[Warmup]  Keeping all slots warm.
[Watch]   Last poll at 19:06:41

Why

With tags of different widths, each message started in a different column and wrapped rows hung under their own tag, so the footer read as ragged. Two other layouts were tried on develop and dropped. Padding exactly to the widest tag left [Warmup] / [Watch]-only frames with a gap too small to read as alignment. Right-aligned tags (the Cargo style) made the left edge ragged under the left-aligned [Usage] Plan usage header. The fixed 3-space minimum gap keeps the column visible even when the tags differ by one character.

The padding is added only when the footer is drawn (Split-FooterLine -TagWidth, computed in Format-UsageFooter). The message strings stay unpadded, because the monitor latches are compared by value and by prefix, and many tests pin the exact text.

Shortcomings

  • The column is computed per frame, so it moves if the set of tags in a watch frame changes: for example, when a [Monitor] latch first appears next to [Watch]. In practice the [Monitor] and [Warmup] latches are present from the first frame, so this is rare.
  • On a terminal too narrow for the hanging indent (tag plus gap over half a row), the alignment is dropped rather than squeezing every row.
  • [Sync], [Switch] and the one-shot sca warmup advisory don't go through the footer and are not aligned.

Feedback wanted

Mostly on the look: is the 3-space minimum gap right? I'm also looking for a second read of the head-placement branch in Split-FooterLine. The word split would otherwise collapse the padding back to a single space as soon as a line wraps.

Not done

  • No live sca usage / sca monitor run against a real ~/.claude. The change is verified through the Pester suite (1073 passed, coverage 98.8%) and the re-rendered images.

The footer mixes [Usage], [Monitor], [Warmup] and [Watch] lines, so each
message started at a different column and wrapped rows hung under their
own tag. Format-UsageFooter now pads every tag to the widest one in the
block, and Split-FooterLine hangs continuation rows under that shared
column.

The padding is applied at render time only: latch strings are compared
by value and prefix, so the messages themselves stay unpadded. A block
whose tags are all [Usage] renders unchanged.
The second clause restated what "the widest tag present" already implies.
Padding after the closing bracket left a wide gap between a short tag and
its message, so the text read as detached from its label. Right-aligning
the tag, as Cargo does for its status words, keeps one space after every
tag while the messages still share one column.
…shortest

Right-aligned tags left a ragged left edge that read as fuzzy under the
left-aligned header. The tags are left-aligned again, and the message
column is set so the shortest tag gets a 3-space gap (or the widest a
1-space gap, whichever lies further right). The fixed gap keeps the
column step visible when the tags differ by only one character. A block
whose tags all share one width stays unpadded.
@countzero
countzero merged commit 225a11e into main Sep 24, 2026
3 checks passed
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