Skip to content

Replace harness wordmarks with the AgentsView icon glyphs - #54

Merged
mariusvniekerk merged 1 commit into
mainfrom
t3code/harness-icons
Sep 2, 2026
Merged

Replace harness wordmarks with the AgentsView icon glyphs#54
mariusvniekerk merged 1 commit into
mainfrom
t3code/harness-icons

Conversation

@mariusvniekerk

Copy link
Copy Markdown
Contributor

HarnessMark (#53) shipped the wide brand wordmarks from the AgentsView docs matrix. What consumers need is an icon: a square glyph that fits a 16px icon slot beside the agent's own label, like a lucide icon. A wordmark cannot do that, and "Claude Code" next to a button already labelled "Claude" reads as noise.

This replaces it with HarnessIcon, built from the 49-glyph monochrome sprite on the AgentsView landing page. Glyphs paint in currentColor, so they follow the theme and dim with muted text; there is no mono switch because there are no brand colours to flatten.

Things to know:

  • Ids follow the sprite's brand names, not agent products: Codex draws openai, Cortex Code draws snowflake, Positron draws posit. Each HARNESS_ICONS entry lists the agent products the docs draw with it so a consumer can build its own mapping.
  • The wordmark component, assets, demo, docs, and spec are removed rather than kept alongside. Nothing consumes them yet.

Verified with bun run fmt, bun run check, bun run lint, bun test, bun run check:usage, bun run build, and playwright test tests/browser/harness-icon.spec.ts. Gallery reviewed by eye in both themes.

generated by a clanker

`HarnessMark` shipped the wide brand wordmarks from the AgentsView docs
matrix. Consumers wanted an icon: something square that sits in a 16px
icon slot next to the agent's own label, the way a lucide glyph does. A
wordmark three to seven times wider than tall cannot do that, and
rendering "Claude Code" beside a button already labelled "Claude" reads
as noise.

AgentsView's landing page also carries a sprite of 49 monochrome 24x24
glyphs, one per harness, which is the artwork consumers actually need.
`HarnessIcon` bundles those glyphs and draws them in `currentColor`, so
they follow the theme and dim with muted text without a `mono` switch.
Ids follow the sprite's brand names rather than agent products: Codex
draws `openai`, Cortex Code draws `snowflake`, Positron draws `posit`.
Each entry lists the agent products the docs draw with it so a consumer
can build its own mapping.

The wordmark component, its assets, demo, docs, and spec are removed
rather than kept alongside; nothing consumes them yet and the API is
free to break.

Generated with Claude Code (claude-fable-5-1)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
@roborev-ci

roborev-ci Bot commented Sep 2, 2026

Copy link
Copy Markdown

roborev: Combined Review (f5f200a)

No issues found.


Reviewers: 2 done | Synthesis: codex | Total: 2m17s

mariusvniekerk pushed a commit to kenn-io/forge that referenced this pull request Sep 2, 2026
The previous commit put kit-ui's HarnessMark wordmarks on the launch
surfaces. Those are wide brand wordmarks, so they could not sit in the
icon slot and ended up standing in for the target's label. That is not
what a launch list needs: the label is the maintainer's own name for the
agent, and the icon should be a small glyph beside it, like the sparkles
icon it replaces.

kit-ui now ships HarnessIcon, the 49-glyph monochrome icon set from the
AgentsView landing page, in place of the wordmarks. This pins kit-ui to
that commit and draws the glyph in the icon slot at the icon size on the
launch popover, the workspace home cards, the create-and-launch split
menu, and the phone launch sheet. Labels are untouched; the glyph only
replaces the generic kind icon, and agents with no matching glyph keep
it.

Glyphs are keyed by brand, not agent product, so the matcher compares a
target key against each glyph's id and the agent products kit-ui lists
for it: the built-in codex resolves to the OpenAI glyph and cortex-code
to Snowflake. After the segment match, a bare string prefix of at least
four characters catches wrappers such as claudex without letting pi
claim pixel.

The kit-ui pin points at the head of kenn-io/kit-ui#54; it needs a bump
to the merge commit once that lands.

Generated with Claude Code (claude-fable-5-1)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
@mariusvniekerk
mariusvniekerk merged commit 5d93a31 into main Sep 2, 2026
6 checks passed
@mariusvniekerk
mariusvniekerk deleted the t3code/harness-icons branch September 2, 2026 11:57
mariusvniekerk added a commit to kenn-io/forge that referenced this pull request Sep 2, 2026
Every agent in the launch surfaces used the same generic sparkles icon,
so a row of Claude, Codex, Gemini, and opencode entries read as
identical items. Launch targets now draw the coding-agent glyph kit-ui
ships as `HarnessIcon`, with the target's own label unchanged beside it.

- The launch popover, workspace home cards, the create-and-launch split
menu, and the phone launch sheet show the glyph in the icon slot. Agents
with no matching glyph keep the sparkles icon; shells keep the terminal
icon.
- A target is matched by the leading segments of its key against
kit-ui's glyph ids and the agent products listed for them, then by a
bare prefix of at least four characters. `claude`, `claude-fast`, and a
`claudex` wrapper all get the Claude glyph; `codex-review` gets the
OpenAI one; `pixel` never picks up `pi`.
- kit-ui is pinned to the commit that replaced the wordmarks with the
AgentsView glyph set (kenn-io/kit-ui#54).

Also included: the ephemeral dev launcher no longer inherits the source
config's MCP port, which belongs to the live daemon and made the
ephemeral backend fail to start. It resolves a free port (or
`-mcp-port`) and reports `mcp_port` and `mcp_url` in its status JSON.

<sup>generated by a clanker</sup>

---------

Co-authored-by: Docs Test <docs@example.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant