Skip to content

feat(ui): finish the chrome glyph conversion (RIG-3739) - #1219

Merged
trunk-io[bot] merged 1 commit into
mainfrom
compass-ux/3739-chrome-glyphs-t5c
Sep 16, 2026
Merged

trunk-io[bot] merged 1 commit into
mainfrom
compass-ux/3739-chrome-glyphs-t5c

Conversation

@rigel-mintaka

@rigel-mintaka rigel-mintaka commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

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.

@linear-code

linear-code Bot commented Sep 13, 2026

Copy link
Copy Markdown

RIG-3739

@rigel-mintaka
rigel-mintaka added this pull request to stack #1200 September 13, 2026 22:06
@rigel-mintaka
rigel-mintaka marked this pull request as ready for review September 13, 2026 22:06
@github-actions

github-actions Bot commented Sep 13, 2026

Copy link
Copy Markdown

Compass engineering docs preview: https://compass-ux-3739-chrome-glyph-0p38.compass-eng-docs.pages.dev

Deployed from compass-ux/3739-chrome-glyphs-t5c at b40a4eb.

Changed pages:

Base automatically changed from compass-ux/3739-chrome-glyphs to main September 13, 2026 22:43
@trunk-io

trunk-io Bot commented Sep 13, 2026

Copy link
Copy Markdown

😎 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
rigel-mintaka force-pushed the compass-ux/3739-chrome-glyphs-t5c branch from 0a88c56 to b40a4eb Compare September 16, 2026 00:38
@trunk-io
trunk-io Bot merged commit 0a059d0 into main Sep 16, 2026
16 checks passed
@trunk-io
trunk-io Bot deleted the compass-ux/3739-chrome-glyphs-t5c branch September 16, 2026 03:33
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.

2 participants