Skip to content

fix(ui): keep full owner/name for tap chips in config editor#33

Merged
fullstackjam merged 1 commit into
mainfrom
fix/tap-chip-display-name
Jul 17, 2026
Merged

fix(ui): keep full owner/name for tap chips in config editor#33
fullstackjam merged 1 commit into
mainfrom
fix/tap-chip-display-name

Conversation

@fullstackjam

Copy link
Copy Markdown
Member

What

In the dashboard config editor, Homebrew taps rendered as meaningless single words: the tap cirruslabs/cli showed as cli, and openbootdotdev/tap showed as tap.

Why

displayName() in PackageManager.svelte unconditionally took the last slash-separated segment:

if (name.includes('/')) return name.split('/').pop();

That's correct for three-segment package paths (cirruslabs/cli/tarttart), but a tap's name is owner/name — stripping the prefix throws away its identity and leaves an unrecognizable tail.

Not a CSS truncation; the name was discarded at render time.

Fix

Taps keep their full name; every other type is unchanged. This also makes the editor consistent with the public config page — ConfigDetail.svelte's "Homebrew taps" section already renders p.name unabridged.

Verification

No Svelte component test infrastructure exists in this repo (no @testing-library/svelte, no component tests), so rather than add a test dependency for a two-line display fix, this was verified by rendering the real page: the four affected entries from a live config were seeded into local D1, the edit page was rendered with headless Chrome (--dump-dom, so client-side JS runs), and each chip's visible text was compared against the real name in its aria-label.

Visible (chip text) Stored (real name) Type
tart cirruslabs/cli/tart formula — unchanged
openboot openbootdotdev/tap/openboot formula — unchanged
wrangler wrangler npm — unchanged
cirruslabs/cli cirruslabs/cli tap — fixed (was cli)
openbootdotdev/tap openbootdotdev/tap tap — fixed (was tap)

npm run validate passes: lint 0 errors, svelte-check 0 errors, 289 tests passed, build succeeds.

🤖 Generated with Claude Code

https://claude.ai/code/session_01NExRvhpGqvdcoj5zZFtoQL

displayName() unconditionally took the last slash-separated segment, which
is right for three-segment package paths (cirruslabs/cli/tart -> tart) but
destroys a tap's identity: a tap name *is* owner/name, so cirruslabs/cli
rendered as "cli" and openbootdotdev/tap as "tap".

Taps now keep their full name, matching the Homebrew taps section in
ConfigDetail.svelte, which already renders p.name unabridged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NExRvhpGqvdcoj5zZFtoQL
@codecov

codecov Bot commented Jul 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@fullstackjam
fullstackjam merged commit 5c25b79 into main Jul 17, 2026
8 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