7.6 KiB
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.
- 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
ringutility 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. - 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.
- 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.
- 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).
- 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) andlastSessionTitleor 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). - Card render: body = description OR cached summary OR lastSessionTitle-composed line ("Last: