Closed general

Adopt the Dock Bar dashboard contract (adom-ui-design 1.9.0): header, say strip + Send to AI, status pills, demo player, graduation

John Lauer · 1mo ago ·closed by Colby Knox

The Dock Bar dashboard contract shipped: adom/adom-ui-design 1.9.0 (adom-wiki pkg install adom/adom-ui-design), plus item 9 of the Dock Bar guide (adom/hydrogen, docs/dockbar.md). The 2026-08-24 fleet audit found seven dashboards with seven say-strips, five status dialects, and five version placements; these skills end that. Please adopt in your next regular release:

  1. dock-dashboard - the anatomy: house header, say strip + demo, status pill row, then your app's own content. Full apps (main UI is the dock target) embed the same primitives in their own layout.
  2. dash-header - human name (never a slug echo), version NEVER inline in the bar (hover popover only), the standard target: <Box> chip, and a ? left of the gear that recalls the newbie scaffolding.
  3. say-strip - heading is the literal "Say it"; quoted phrases with your noun in teal; TWO buttons on every phrase: Copy (clipboard + toast "Copied to clipboard. Paste it into any AI thread.") and Send to AI (NEW ruling: open a NEW AI thread via the panel's AI-threads API - POST /ai-threads/new with staged name + your dock:<slug> tag, then run-prompt with submit:true - via your backend's POST /api/say-send; new threads ONLY, resume/existing stays parked). On send failure: error toast + copy fallback.
  4. dash-demo - NEW ruling: every dashboard ships ONE guided demo beside the prompts. Step list drives it; player toolbar play/pause/prev/next/exit while running; pre-created adom-tts say mp3s shipped in your package, audio ON by default with a mute button; captions are ab captions synced to each step at the bridge default size/position, never custom (fleet consistency ruling).
  5. status-leds - one compact LED pill row (prose on tap, never by default), red always carries its next step, busy states escalate to "stuck?" past 15 min.
  6. newbie-graduation - scaffolding folds after dismissal / 3 green launches / first AI-driven action; the say strip folds last; ? restores.

Each skill ships a copy-paste recipe. Cold-verify happens on ConfRoomROG after you ship, same as the copy-toast round.

Your app's audit findings (2026-08-24, live capture on ConfRoomROG):

  • The header says 'adom-lbr': slug echo, the displayed name becomes 'Adom LBR' (dash-header).
  • Status hides in six green header nav dots plus 'Adom Bridge ready': adopt the visible pill row with tap-to-expand (keep the nav, drop its double duty as health).
  • Say phrases are unquoted and the strip carries a Demo pill inside it: quote the phrases, move the demo to its own 'Play the demo' button beside the strip.
  • Adopt the two-button contract (Copy + Send to AI).
  • Your Demo predates the contract: adopt the player toolbar, per-step adom-tts mp3s, ab captions at bridge default size (dash-demo).

2 Replies

John Lauer · 1mo ago

Adopted in adom/adom-lbr 2.12.5, published. Against the six skills and this page's audit findings:

  • dash-header: header is now "Adom LBR · the EDA library converter" (slug echo gone); version lives ONLY in the brand hover popover (600 ms, tap on mobile) with the wiki link; the standard target: chip carries the bridge LED (reads "this machine" when the loopback /health answers - the page cannot learn the box name from the projected cross-origin /status, flagging that as a contract gap for bridge-backed FULL apps); ? sits left of the outline cog and recalls the scaffolding. The six header nav dots are gone.
  • say-strip: heading "Say it", canonical explainer with the noun lbr in teal, six curly-quoted chips (body face), Copy + Send to AI on every chip, chip click copies, fleet toast strings verbatim. Send to AI = POST /api/say-send: the backend reads ~/.adom/hydrogen-control-url, POSTs /ai-threads/new {name:"Adom LBR — say it", tags:["dock:adom-lbr"]} then run-prompt {sid, prompt, submit:true}. NEW threads only; the old resume/census path stays parked behind TRY_PARKED. Failure answers {ok:false, why}; the page error-toasts AND copies. (From the container the control API is unreachable, so the fallback path is what I could ralph; the happy path needs the CRR verify.)
  • status-leds: compact pill row directly under the strip; tap opens the prose + the fix (every non-green detail leads with its _hint); busy escalates to "stuck?" after 15 min client-side.
  • dash-demo: the Demo moved out of the strip to its own "Play the demo" button; the player toolbar gained mute (audio ON by default, muted persisted); every step fires an ab caption at the BRIDGE DEFAULT size (never custom), cleared on step change and exit; the 13 narration mp3s remain pre-rendered adom-tts files shipped in the package.
  • newbie-graduation: Fresh / Graduated / Recallable, localStorage, dismissal / 3 green launches / first AI-driven action, say strip folds last (5), ? restores for the session, fold one-liner click re-expands. One field finding for the skill: behind the cloud proxy every dashboard PORT shares ONE origin, so the fleet key adom-dash-graduation cross-talks between apps there (a sibling app's aiDriven landed in our state during the ralph). We namespaced to adom-lbr:dash-graduation; recommend the skill mandate a per-app namespace.

Ralphed on ConfRoomROG pup: fresh state (6 chips, 6 pills, demo button), dismissal -> fold line -> click restores, ? recall, send-failure toast + copy fallback, pill popover. Ready for the cold verify.

Colby Knox · 1mo ago

Closing this one out for the record: adopted in 2.12.5 as replied above, and every piece it introduced has since moved through the 1.22.1 contract and into the shared newbie-panel module, which adom-lbr vendors at 2.21.0 as of 2.19.0. Current state and evidence are on issues #13 and #14; the ah proof is tracked on #15.

Log in to reply.