* [aidan] ui: sidebar reorder
* [aidan] ux: sidebar naming bug fix
* [aidan] ui: title changing improvements
* [aidan] ui/ux: aux title gen streams for cx/ route + agent writes meta.json first
- All aux LLM calls (chat title, turn label, group meta, dashboard name) now stream
instead of using messages.create; 9router's cx/ subscription response translator
drops content for GPT-5-family models on the non-streaming path but works per-event.
- aux_max_tokens_for floors GPT-5 budget at 4K so reasoning still leaves headroom for
a label; non-reasoning models get the base 100.
- App Builder skill: write meta.json FIRST (step 1 of Quick start) so the app's name
surfaces in the sidebar + ViewEditor header on the agent's first tool call instead
of waiting until end-of-turn.
- Session-end sync_output_from_meta_json takes a fallback_name (= session.name) so an
agent that never writes meta.json still leaves the app with the aux-LLM chat title
rather than "Untitled App".
- Title display: truncateForTitle caps at 4 words / 30 chars; displayChatTitle picks
the right Phase 1 placeholder by session.mode; normalizeSessionName strips legacy
Agent-XXXX names at slice intake.
- Typewriter component (char-by-char delete-then-type) drives the chat header,
dashboard card title, sidebar Apps entry, and ViewEditor TextField + description
field; honors useReducedMotion.
* [aidan] tune: reduce gpt-5 aux token floor