feat(tui): show the Coven crown when no familiar holds the identity slot - #185
Merged
Merged
Conversation
The welcome box has an identity slot in its left column: a familiar's sigil, 11 columns by 4 rows of half-block art. It renders only when a familiar is configured. Without one the slot is simply blank, and Coven has no mark of its own anywhere in the interface -- the product name appears once, as text, in the box border. That slot now falls back to Coven's crown, downsampled from brand/logo/opencoven-mark.svg into the same 11x4 half-block vocabulary the sigils use, ramped from a dimmed violet up to COVEN_CODE_ACCENT. The slot is borrowed, not taken. A configured familiar still wins it, unchanged; this only fills space that was previously empty. That matters: a familiar's sigil is personal and the crown is not, so the crown must never displace one. The ramp borrows the grammar the sigils already use -- they read as `primary` climbing to `accent` -- rather than inventing a second visual language for the same slot. Sized to the existing slot deliberately, so nothing reflows: the box stays at WELCOME_BOX_HEIGHT, which the footer anchor and header height both key off, and the strings scripts/tui-tests/cases/02_startup.sh pins are untouched. A test asserts those survive alongside the crown. Ported from the sibling implementation's launcher masthead, which had a different premise: that launcher opened on a bare identity line with no mark and no slot, so the mark was additive there. Here the slot already existed and already had an owner, so the port is a fallback rather than a new element. Signed-off-by: Val Alexander <68980965+BunsDev@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
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.
What
The welcome box has an identity slot in its left column — a familiar's sigil, 11 columns by 4 rows of half-block art. It renders only when a familiar is configured. Without one the slot is blank, and Coven has no mark of its own anywhere in the interface; the product name appears once, as text, in the box border.
That slot now falls back to the crown from
brand/logo/opencoven-mark.svg, downsampled into the same 11×4 half-block vocabulary the sigils use:Ramped from a dimmed violet up to
COVEN_CODE_ACCENT.The slot is borrowed, not taken
A configured familiar still wins it, unchanged. This only fills space that was previously empty.
That distinction is the whole design. A familiar's sigil is personal; the crown is not. Displacing someone's familiar with a product logo would be a regression, so the crown is strictly a fallback.
Fitting rather than reflowing
Sized to the existing slot deliberately.
WELCOME_BOX_HEIGHTis load-bearing — both the footer anchor (render.rs:131) and the header height (:1082) key off it — so nothing reflows and no geometry changes.The strings
scripts/tui-tests/cases/02_startup.shpins (Coven v,Tips for getting started,What's new,❯) are untouched, and a test asserts they survive alongside the crown rather than trusting that.On the ramp
The sigils already read as
primaryclimbing toaccent. The crown borrows that grammar rather than inventing a second visual language for the same slot.How this differs from the original
Ported from the sibling launcher masthead in
coven, but the premise there does not hold here. That launcher opened on a bare identity line with no mark and no slot, so a masthead was additive. Here the slot already existed and already had an owner — so the port became a fallback, not a new element.I'd rather flag that than claim a clean port: the shape changed because the target was different.
Tests
coven_crown_fits_the_sigil_slot_and_ramps— 4 rows, every row exactly 11 columns, ramp endpoints are the dim violet and the accent, and the two differ (a flat mark is not a ramp)welcome_box_shows_the_crown_when_no_familiar_is_configured— renders the box and asserts both the crown and all three pinned welcome stringsVerification
Manual TUI check per AGENTS.md, tmux 80×24 — the capture above is from that run.