Added
- Harmonized Playgrounds across all surfaces (fixes Playground UI mismatches). Created a single shared
<PlaygroundChat>React component that acts as the single source of truth for the full-screen Playground modal, the Router View's "Test Router" panel, and the Expanded Detail Row's "Mini Playground". - Universal real-time response metadata. Under every assistant reply in all three playground locations, users now see the serving model (correctly resolved, even when routed through
fcm), total latency, generated token count, and tokens per second (TPS). The addressed model or the router's Primary pick is also displayed under every user bubble for clarity. - Web Router Benchmarking (
Probe all). Added a "Probe all" action to the Web Router Dashboard. This lets you benchmark AI Latency and TPS on all models in the active routing set concurrently inside the daemon process. A visual progress bar displays the benchmarking status, and results flow back into each row's AI Latency cell. - New server proxy endpoint
/api/router/probe-allinweb/server.jsto handle the web dashboard's probe request and safely proxy it to the daemon's/api/global-benchmarkwith an extended timeout. - Playground daemon-status alignment tests. Added unit tests in
test/test.jsto ensure the/healthand/statsdaemon endpoints consistently reportrunning: truealongsideok: true, preventing a mismatch where the router dashboard would report "running" but the playground would report "offline".
Changed
- Dynamic port and PID resolvers for dev mode (
FCM_DEV=1). Refined paths insrc/core/router-daemon.js,src/core/playground.js,src/core/sync-set.js, andweb/server.jsto use dynamic functions (getRouterPortPath(),getRouterPidPath()). This ensures dev checkouts correctly detect and signal the dev daemon (-devport/PID files) instead of reading stale production constants resolved at module load time.
Fixed
- Fixed false "router offline" alerts. The Playground now correctly trusts the daemon status because both
/healthand/statsendpoints uniformly reportrunning: true. - Restored served-model badge for routed streams. Forwarded the daemon's custom
x-fcm-router-modelresponse header in stream completions through the web proxy, so the playground can display which specific provider/model actually resolved the request when calling thefcmauto-router.