Chat header decluttered + collapsible Trace Ingestion
Two small left-region tweaks give the Neural Brain chat more breathing room: a stripped-down chat header and a collapsible Trace Ingestion tile.
Decluttered chat header
The chat tile header (.brain-chat-header) previously showed a "Neural Brain"
title plus a live-telemetry status pill (pulse dot + "Live telemetry" /
"Waiting for signal"). Both were removed; the header now holds only the close
(×) button, right-aligned.
index.html: dropped.brain-chat-titleand.brain-chat-status-inline(which contained#brainChatStatus). The dialog now names itself witharia-label="Neural Brain chat"instead of the danglingaria-labelledby="brainChatTitle"(no such element ever existed).src/brain-ui.ts: removedbrainChatStatusfrom the cached-element list and the per-tickels.brainChatStatus.textContent = …write, so nothing references the deleted node.css/app.css:.brain-chat-headeris nowjustify-content: flex-end; removed the unused.brain-chat-title,.brain-chat-status-inline,.pulse-dot, and@keyframes pulseDotrules.
Collapsible Trace Ingestion tile
The observability panel (#obs-panel) gained a chevron toggle in its header
(#obsCollapse) that collapses the tile to just its header, hiding .obs-body.
Because the slot is flex: 0 0 auto and #leftChat is flex: 1, collapsing
the panel hands that vertical space straight to the chat.
- Defaults to collapsed so the chat gets maximum real estate out of the box.
- The choice is persisted across reloads in
localStorageunderexepert.obsCollapsed, wrapped in try/catch for private-mode / SSR safety. aria-expanded+aria-controls="obsBody"keep the toggle accessible; the chevron rotates 180° when expanded.
Help link now opens the rendered guide
The panel's ? help link pointed at Plans/guide-trace-ingestion.md, which
Vite resolved to a raw, unrendered .md file on the app origin (a blank page).
It now opens the rendered Docusaurus guide page at
/docs/guides/trace-ingestion.
On local app origins, docs links default to http://localhost:3000, which
matches the separate Docusaurus dev server. In production, leave VITE_DOCS_URL
unset: the Vercel build bundles the rendered docs into the app's dist/ folder,
so the link resolves on the deployed app origin under /docs.
See the UI guide for the chat tile contract and the trace-ingestion tile notes.