Skip to content

feat(webui): Wave 6A — usage badge and failover timeline - #17

Merged
bodencrouch merged 1 commit into
mainfrom
feat/chat-ui-wave6a
Jul 25, 2026
Merged

feat(webui): Wave 6A — usage badge and failover timeline#17
bodencrouch merged 1 commit into
mainfrom
feat/chat-ui-wave6a

Conversation

@bodencrouch

Copy link
Copy Markdown
Contributor

Summary

  • Make ranked free failover legible on every turn: the routing chip expands into a keyboard-accessible timeline of ordered hop attempts (tier, endpoint, resolved model, outcome, hop index) including tier skip reasons from Wave 4B.
  • Add a per-reply usage/latency badge (tokens only when the route exposes them, otherwise latency-only — never fabricated) plus a client-side session totals row.
  • All data comes from client metadata already available: a new success-inclusive RouteTrace, SSE usage capture via stream_options.include_usage, and client-measured TTFT/total. No new proxy logging backend.

Origin: docs/brainstorms/2026-07-25-chat-ui-wave6-transparency-discovery-requirements.md (6A slice, R58–R64 + R88). Plan: docs/plans/2026-07-25-004-feat-chat-ui-wave6a-transparency-plan.md. Wave 5 remains blocked on this per the refreshed requirements.

Test plan

  • cd webui && npm test (91 passing)
  • cd webui && npm run build
  • npx playwright test tests/e2e/failover-timeline.spec.ts
  • Manual: send a message, expand the routing chip → hops listed with outcomes and skip reasons; alias note visible
  • Manual: keyboard only — Tab to chip, Enter expands, focus ring visible
  • Manual: route without usage metadata → badge shows latency only, no token counts
  • Manual: session totals row updates across replies and resets on new chat
  • Confirm Pages CI runs the new failover-timeline.spec.ts

Make ranked free failover legible on every turn: capture a success-inclusive
RouteTrace across tier skips and proxy endpoint hops, request stream usage
when the proxy supports it, and measure client TTFT/total. Expand the routing
chip into a keyboard-accessible disclosure with hop outcomes, skip reasons,
and a free vs openrouter/free note. Add a session totals row that aggregates
tokens (when exposed) and wall time.

Playwright failover-timeline.spec.ts covers multi-hop expand + latency-only
degrade. Wave 5 stays blocked on 6A per refreshed requirements.

webui npm test: 91 passing. Playwright failover-timeline green.
@bodencrouch
bodencrouch merged commit ee74a6b into main Jul 25, 2026
3 checks passed
@bodencrouch
bodencrouch deleted the feat/chat-ui-wave6a branch July 25, 2026 11:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant