Skip to content

feat: TSR chart on top of realtime; add Turn Success Rate to Ranking Algorithm#69

Merged
guohai merged 1 commit into
mainfrom
feat/tsr-ui-polish
Jul 10, 2026
Merged

feat: TSR chart on top of realtime; add Turn Success Rate to Ranking Algorithm#69
guohai merged 1 commit into
mainfrom
feat/tsr-ui-polish

Conversation

@guohai

@guohai guohai commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator

Two small follow-ups to the Turn Success Rate feature (#68).

Changes

  • Realtime: the full-width Turn Success Rate (%) chart now sits above the Response Latency and Interrupt Latency charts (was below).
  • Leaderboard: the "Ranking Algorithm" popover was stale (listed 5 metrics with the old weights and omitted TSR). It now lists all 6 composite metrics with the current weights:
    • Response Latency 25%, Turn Success Rate 25%, Interrupt Latency 15%, Noise Reduction 15% (coming soon), Network Resilience 10% (coming soon), Naturalness 10% (coming soon).
    • TSR is shown as a live metric; the three daemon placeholders keep their "coming soon" tag.

UI-only; npm run check clean.

Generated with SMT smt@agora.io

…Algorithm

- realtime: move the full-width Turn Success Rate (%) chart above the
  Response/Interrupt Latency charts.
- leaderboard: the "Ranking Algorithm" popover now lists all 6 composite
  metrics with current weights (Response 25 / Turn Success Rate 25 /
  Interrupt 15 / Noise 15 / Network 10 / Naturalness 10); TSR shown as a
  live metric, the three placeholders still marked "coming soon".

🤖 Built with SMT <smt@agora.build>
@github-actions

Copy link
Copy Markdown

🤖 Claude Code Review

This is a purely presentational PR: it reorders the three realtime charts (TSR now spans full width on top, then Response Latency, then Interrupt Latency) and updates the leaderboard popover to document 6 metrics instead of 5.

Correctness — verified good:

  • Each reordered card is internally consistent after the swap: title, description, data, Y-axis formatter/domain, and tooltip unit all move together. TSR card correctly keeps domain={[0,100]}, % formatter, and unit="%"; the two latency cards keep the ms formatter and no unit prop. No data/label mismatch.
  • Leaderboard weights sum to 100% (25 + 25 + 15 + 15 + 10 + 10), and they match the server's actual ranking weights in server/routes.ts:3721-3726 (responseLatency 0.25, turnSuccessRate 0.25, interruptLatency 0.15, noiseReduction 0.15, network/naturalness 0.10). So the doc text now reflects the real algorithm rather than drifting from it — good.

No issues found in security, logic, performance, or maintainability. The tsrChart/responseChart/interruptChart variables are unchanged and already defined; only their placement in the grid changed.

One trivial observation (not blocking): the title says "add Turn Success Rate to Ranking Algorithm," but the algorithm change itself already landed server-side (routes.ts) in a prior commit — this diff only syncs the client-facing weight documentation. Worth confirming the PR description isn't implying an untested backend change, but the code here is fine.

LGTM.

@github-actions

Copy link
Copy Markdown

🤖 Codex Code Review

No findings.

  • Reviewed client/src/pages/leaderboard.tsx and client/src/pages/realtime.tsx against origin/main..origin/feat/tsr-ui-polish.
  • The leaderboard copy now matches the backend composite weights in server/routes.ts.
  • The realtime chart reorder appears UI-only and preserves the correct chart data/units for TSR, response latency, and interrupt latency.
  • I did not run npm run check because this environment is read-only, but the diff is small and I don’t see security, logic, performance, or maintainability regressions.

@guohai guohai merged commit ab50077 into main Jul 10, 2026
3 checks passed
@guohai guohai deleted the feat/tsr-ui-polish branch July 10, 2026 09:20
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