Files
waggle-os/docs/ux-refactor/wave-R-spec-2026-07-06.md
Oleg Maslov 0c3e2ead3b
Some checks failed
Installer Smoke / installer-smoke (push) Has been cancelled
moving
2026-09-02 10:10:29 +02:00

7.6 KiB
Raw Blame History

Wave R — R10 convergent fixes (2026-07-06 S2, goal 5×9/10)

R10: design 7.8 · kw 7.7 · competitor 7.6 · a11y 7.6 · brand 7.5 (min 7.5 avg 7.64 — new min high; loop moving again). Shots: C:/Users/MARKOM~1/AppData/Local/Temp/claude/D--Projects-waggle-os/a6467fd9-181f-4689-a4ee-1d6dedbbfb17/scratchpad/shots/judge-round10/ Same vocabulary + honesty contract as waves P/Q. Surgical; both themes; testids/aria survive.

Lane A — settings selection grammar + Show re-home (5/5 flagged the blue ring) — 6.6 worst

Evidence: 137-settings-models-dark/light.png, 141-settings-provider-selected-dark.png. Files: model-gate/ModelGate.tsx, apps/SettingsApp.tsx, os/ModelPilotCard.tsx, tests.

  1. Kill the blue ring (all 5 judges): shot 141 shows Anthropic with a browser/Tailwind DEFAULT BLUE focus/ring while OpenAI wears the honey selected border — find every ring utility in the tile grid missing an explicit ring color + the focus-visible outline, and tokenize: honey ring = selected/focus, risk tint = error; never two ring languages at once. An error tile that is ALSO selected shows risk ring only.
  2. Dark segmented control (API key / Local model): real active state — filled cell (bg-card + shadow-sm is too subtle in dark; add honey underline or stronger fill) to match light's clarity.
  3. Re-home the Show control (3/5): out of the rail foot → the CONTENT side: a compact labeled control in the settings content header row (right-aligned, caption "Show"), so it sits visually above the sections it gates. Keep aria + tier mechanics + tests.
  4. ModelPilotCard: replace bare $$$ glyphs with explicit cost text (e.g. "$$$ · ~$0.05/msg" already exists as a legend at card foot — surface the per-row cost inline, or tooltip + aria-label; judges called the glyphs cryptic).

Lane B — workspace card living identity (5/5 HIGH, third round) — 7.0

Evidence: 132-workspaces-dark/light.png, 140. The card body still reads as reserved-but-empty; Open is hover-only; two "Research Hub"s differ only by slug chip; dark cards near-vanish. Files: packages/server/src/** (workspace list route), apps/web/src/lib/types.ts, apps/web/src/lib/adapter.ts, apps/AllWorkspacesApp.tsx (+test).

  1. Server enrichment (the real unlock): find GET /api/workspaces list route; the workspace summary/description cache and per-workspace session/memory stores exist server-side. Extend each list row with REAL fields where cheaply available: memoryCount (frame count for that workspace mind) and lastSessionTitle or the cached summary line. NO N+1 explosion: batch or reuse existing counts; if a count is expensive, skip it — never estimate. Typecheck packages/server with its own tsconfig (it is NOT covered by npm run build).
  2. Card render: body = description OR cached summary OR lastSessionTitle-composed line ("Last: