- New '录制回放' page with sidebar nav entry - Recording: start/stop/auto, file list with play/export/delete - Playback: visual bar indicator, opens dashboards to see replayed data - Settings: restored dev tools section with test mode toggle
- HTTPException import added (was causing 500 on missing dashboard) - game_manager.remove_plugin() restored (was AttributeError) - api.js checks HTTP status codes, fails fast on errors - sidebar game highlight only matches selected gameId - scene resize handler uses stored canvas dims (was NaN) - forwarder socket properly closed on listener stop - telemetry port: use_unified_port toggle, off = per-game port, auto-restart on switch