feat(ui): finish the chrome glyph conversion (RIG-3739) - #1219
Merged
Merged
Conversation
This was referenced Sep 13, 2026
rigel-mintaka
added this pull request to stack #1200
September 13, 2026 22:06
rigel-mintaka
marked this pull request as ready for review
September 13, 2026 22:06
|
Compass engineering docs preview: https://compass-ux-3739-chrome-glyph-0p38.compass-eng-docs.pages.dev Deployed from Changed pages: |
|
😎 Stack merged successfully - details. |
T5c, the last conversion slice. Four sites move to `<Glyph>` and one swaps a character; only one new bitmap was needed, because most of these were the same affordances already converted in T5a/T5b: - `BacklogView` section caret and `LogPanel`'s minimize toggle both reuse `disclosure`. The toggle's two states are one glyph rotated 180deg rather than two bitmaps, so the pair cannot drift out of alignment. - `UsageBar`'s branch mark reuses `vcs`. - `LogPanel`'s stop mark is the one new glyph, a filled 7x7 square. `comms.ts` `channelGlyph` is data, not JSX — it returns the marker string that three render sites draw beside a channel name, alongside `@` and `#`. Returning a `GlyphName` would force all three to branch glyph-vs-character and put a bitmap in the same alignment column as two characters, so the fix is a covered character instead: `⌗` U+2317 (absent from Space Mono) becomes `&` U+0026, the Discord convention for a group DM and plain ASCII. The six `→` arrows in `Bridge` and `SettingsView` stay text. U+2192 is in the Space Mono cmap, so converting them was a style call rather than a coverage fix, and a bitmap arrow reads no better at this size — two of the six sit mid- sentence, where it would break the type. `agent.png` and `backlog.png` are recaptured. `LogPanel` mounts on the agent surface with the log open by default, so the stop mark and the minimize toggle both render there, and the backlog chevron renders on the backlog board. A first recapture pass wrote nothing and I read that as "these sites are not captured" — wrong. Playwright only rewrites a baseline whose diff exceeds tolerance, and the 0.001 ratio allows 921 px on a 1280x720 shot. Measured against the previous baselines the deltas are 913 px (agent) and 1387 px (backlog): the backlog shot was over budget and would have failed CI, and the agent shot sat at 99% of it, one render shift from a confusing red. Both now depict the new bitmaps. That leaves the Unifont pin blocked only by the six fixture strings in `stub-data.ts` (`➜`, `▪▪▪▪`), which belong to T8. Every rendered chrome character now resolves in the brand face — measured by parsing the cmap, not by eye. Verified: 1112 pass / 0 fail; typecheck, stylelint, biome, and markdownlint clean. The new bitmap is one orthogonally-connected component and its documented grid matches its cells.
rigel-mintaka
force-pushed
the
compass-ux/3739-chrome-glyphs-t5c
branch
from
September 16, 2026 00:38
0a88c56 to
b40a4eb
Compare
mattwilkinsonn
approved these changes
Sep 16, 2026
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.
T5c, the last conversion slice. Four sites move to
<Glyph>and one swaps acharacter; only one new bitmap was needed, because most of these were the same
affordances already converted in T5a/T5b:
BacklogViewsection caret andLogPanel's minimize toggle both reusedisclosure. The toggle's two states are one glyph rotated 180deg rather thantwo bitmaps, so the pair cannot drift out of alignment.
UsageBar's branch mark reusesvcs.LogPanel's stop mark is the one new glyph, a filled 7x7 square.comms.tschannelGlyphis data, not JSX — it returns the marker string thatthree render sites draw beside a channel name, alongside
@and#. Returninga
GlyphNamewould force all three to branch glyph-vs-character and put abitmap in the same alignment column as two characters, so the fix is a covered
character instead:
⌗U+2317 (absent from Space Mono) becomes&U+0026, theDiscord convention for a group DM and plain ASCII.
The six
→arrows inBridgeandSettingsViewstay text. U+2192 is in theSpace Mono cmap, so converting them was a style call rather than a coverage fix,
and a bitmap arrow reads no better at this size — two of the six sit mid-
sentence, where it would break the type.
agent.pngandbacklog.pngare recaptured.LogPanelmounts on the agentsurface with the log open by default, so the stop mark and the minimize toggle
both render there, and the backlog chevron renders on the backlog board. A first
recapture pass wrote nothing and I read that as "these sites are not captured" —
wrong. Playwright only rewrites a baseline whose diff exceeds tolerance, and the
0.001 ratio allows 921 px on a 1280x720 shot. Measured against the previous
baselines the deltas are 913 px (agent) and 1387 px (backlog): the backlog shot
was over budget and would have failed CI, and the agent shot sat at 99% of it,
one render shift from a confusing red. Both now depict the new bitmaps.
That leaves the Unifont pin blocked only by the six fixture strings in
stub-data.ts(➜,▪▪▪▪), which belong to T8. Every rendered chromecharacter now resolves in the brand face — measured by parsing the cmap, not by
eye.
Verified: 1112 pass / 0 fail; typecheck, stylelint, biome, and markdownlint
clean. The new bitmap is one orthogonally-connected component and its documented
grid matches its cells.