Studio UI top bar cleanup #30
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
cmoriarty/trog#30
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Aesthetic pass on the studio top bar (
studio/src/App.tsx,studio/src/styles.css).1. Drop the AEGRA status indicator
Remove the trailing
link/link-dotspan (label and light) from the header. Itssignal is folded into the new wordmark flame status (task 3), so aegra reachability is
still visible — just not as its own widget. Drop the now-dead
.link*CSS with it.2. Pin the activity label, park the lights on the right
The three dancing pixels (
<Pulse />) currently sit before the activity text, sothe label shifts sideways every time it changes width (
idle→run · node→ seatnames). Move
<Pulse />after the text and give the readout a fixed anchor(right-align the
.activityspan / reserve the pulse's width) so the label text nevermoves as activity changes.
3. Wordmark flame becomes the system status light
Replace the red
▲(.wordmark-flame) to the left oftrogwith a status light with two states:.link-upgreen so it reads like the light it replaces)Health check design
"Up" must mean the system, not just aegra.
App.tsxalready polls all three backendson the single status tick, so composing this costs no extra requests:
client.assistants.search()(setsstatus.online)GET /orch/healthGET /brain/runningExtend
Statuswith per-service booleans (onlinestays aegra's), then:null) → greyTooltip on the flame should name what is down (e.g.
brain down · orchestrator down) sothe removed AEGRA label loses no information. Grey covers both "down" and "unknown" —
one dim state, no third colour.
Notes
/orchand/brainare already proxied by both thevite dev proxy and the prod nginx conf.
npm run dev --prefix studio, then check green withthe stack up and grey with a service stopped.
Done in
6cacef5.1. AEGRA indicator gone — the trailing
link/link-dotspan is removed from the header and the whole.link*block is out ofstyles.css. No dangling references left in the tree.2. Pulse parked right —
<Pulse />now renders after the activity text inside the right-pinned.activityspan, so the text grows leftward and the lights hold the same pixel. Measured: swapping the readout fromidletoswapping brain · qwen3.6-27b · image gen · animatemoved the pulse's left edge by 0px (x=1242 both times).3. Wordmark status light — the red
▲is replaced by.sys-dot, a 7px pixel square in the wordmark:--green) only when aegra and orchestrator and brain all answered on the same status tick--ink-faint) when any is down or the first tick hasn't landed — one dim state, no third colouraria-labelcarries the detail:trog up · aegra · orchestrator · brainwhen green,orchestrator down(etc.,·-joined) when greyStatusgainedorchandbraintri-states;onlinestill means aegra alone. No new requests —snapshot()already fetched/orch/healthand/brain/runningevery tick and simply discarded the result on failure; now it recordsres.ok.Verification
sys-dot sys-dot-up,rgb(56,183,100), titletrog up · aegra · orchestrator · brainfetch, one poll tick)rgb(86,108,134), titleorchestrator downtsc --noEmitandvite buildclean.e2e/smoke.spec.tsasserted on.link, so its topbar case was rewritten to assert the green dot and thetrog uptitle — it is now a whole-stack check rather than an aegra-only one; 3/3 smoke tests pass.Closing — all three items shipped in
6cacef5and confirmed still correct on the live stack today.What shipped
link/link-dotspan left the header and the whole.link*block left the stylesheet; no references remain anywhere in the tree.<Pulse />renders after the activity text inside the right-pinned.activityspan, so the text grows leftward and the pixels hold their place.▲is now.sys-dot, green when the critical services answer and grey when they don't or haven't yet, with the detail in its tooltip.Amended afterwards (from #31)
trog up · aegra · orchestrator · brain swapped out for the seats.idle · image gen warm), shown without animation, so a keep-warm seat is visible without claiming work is happening.Verified today against the deployed studio
.linkgone)sys-dot sys-dot-up,rgb(56,183,100)=--greentrog up · aegra · orchestrator · brain upidle,image gen,idle · image gen warm, andswapping brain · qwen3.6-27b · image gen · animate— no movementtrog uptooltip)One measurement worth recording: below ~1280px the page scrolls horizontally, but the top bar is not the cause — at 1024px
body.scrollWidthis 1280 while the header's ownscrollWidthequals its client width. That floor comes from the dock panes and predates this ticket, so it stays out of scope here.Working tree clean, CI green for HEAD, 147 unit tests and
tsc --noEmitpassing.