Skip to content

ui: stop update text overflowing the channel tiles and the status table - #1577

Merged
IanButterworth merged 4 commits into
mainfrom
fix-update-text-overflow
Aug 20, 2026
Merged

ui: stop update text overflowing the channel tiles and the status table#1577
IanButterworth merged 4 commits into
mainfrom
fix-update-text-overflow

Conversation

@IanButterworth

@IanButterworth IanButterworth commented Aug 20, 2026

Copy link
Copy Markdown
Member

We need visual regression tests..

Master
Screenshot 2026-08-20 at 10 22 54 PM

PR

Screenshot 2026-08-20 at 10 23 36 PM

Claude:


The GUI's channel tiles showed a pending update as Update: → 1.12.7+0.aarch64.apple.darwin14. The was a tofu box: egui's proportional font is Ubuntu-Light, which has no arrows, and the bundled Hack face that covers U+2192 is not in the proportional chain. The text was also far too wide for a 168pt tile and sat on an untruncated label, so it wrapped and spilled over the neighbouring tile.

Hack is now appended to the proportional chain, which also fixes Linked → …, Alias → … and the override and link status messages. The badge reads Update: 1.12.7, with the +<build>.<platform> tag dropped when it matches what is installed and the full version in a tooltip. Update and version labels are truncated in both views; the list view needed that independently, because egui_extras columns do not clip by default. Tile buttons now stack up from the bottom with Layout::bottom_up rather than by arithmetic against min_rect, which the tile's own set_min_size had already made a no-op.

The secondary action row was gated as a whole on !row.is_default, so the default channel got an Update: badge and no button to act on it. Default and Remove belong behind that condition, Update does not; each is now gated on its own, as the list view already did.

juliaup status had the same problem in a terminal, reaching 140 columns with updates pending. The update column now says 1.12.7 rather than Update to 1.12.7+0.aarch64.apple.darwin14 available, and if the table still would not fit, the version column drops the build tag and shortens the pull request URL from #1561 to (#62359). Wide terminals keep both, and output that is not going to a terminal is unchanged.

This overlaps #1558, which drops build metadata from list and status unconditionally rather than only when the table would not fit.

IanButterworth and others added 4 commits August 20, 2026 21:21
The pending-update badge read `Update: → 1.12.7+0.aarch64.apple.darwin14`.
egui's proportional font is Ubuntu-Light, which has no arrows, so the `→`
rendered as a tofu box; the bundled `Hack` face is the only one that covers
U+2192 and it is not in the proportional fallback chain. Append it, which also
fixes the arrows in `Linked → …`, `Alias → …` and the override and link status
messages.

The badge itself was far too long for a 168pt tile and sat on an untruncated
label, so it wrapped and spilled out over the neighbouring tile. It now shows
the target version with the `+<build>.<platform>` tag dropped when it matches
what is installed, and carries the full version in a tooltip. Both the update
and version labels are truncated in the tile and the list view, so no string
length can spill again; the list view needs it independently because
`egui_extras` columns do not clip by default.

Stack the tile buttons up from the bottom with `Layout::bottom_up` rather than
positioning them by arithmetic against `min_rect`, which the tile's own
`set_min_size` had already made a no-op.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
With updates pending, `juliaup status` rendered a 140 column table, which wraps
and is unreadable in an 80 column terminal. The update column repeated the
platform tag that the version column already showed, and the pull request URL
added in #1561 made the version column 61 characters wide.

The update column now shows just the target version, with the build tag dropped
when it matches what is installed. If the table still does not fit, the version
column also drops the build tag and shortens the pull request URL to `(#62359)`.
Terminals wide enough for the full table keep it, and output that is not going
to a terminal is unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The tile view gated the whole secondary action row on `!row.is_default`, so
the default channel showed an `Update:` badge with no button to act on it.
Suppressing `Default` and `Remove` there is right, since the channel is
already the default and cannot be removed, but `Update` was caught by the
same condition. Gate each button on its own, as the list view already does,
and size them by how many are actually shown.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Codex review. `strip_build_tag`'s doc repeated what `format_version`'s
already said, and the rest ran two or three lines longer than they needed
to.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@IanButterworth
IanButterworth merged commit b1f00b9 into main Aug 20, 2026
35 checks passed
@IanButterworth
IanButterworth deleted the fix-update-text-overflow branch August 20, 2026 21:59
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