- New constants/labels.ts with all enum → Chinese mappings
- DataPages.tsx: all render() functions use labels
- Dashboard.tsx: eventType shows Chinese
- LearningData.tsx: session status shows Chinese
- Filter dropdowns also show Chinese options
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- DataPages.tsx: add any type annotation to all onRow callbacks
(ReadingEvent/Session/Anomaly/Record/Progress)
- ReplayPage.tsx: remove unused dayjs import
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Session detail: add "查看关联事件" button linking to /learning/events
- ReadingEventPage: read clientSessionId from URL search params on mount
- ReadingEventPage: add Client Session ID filter input
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- SessionPage already had full implementation by user
- Added clientSessionId filter input for active/interrupted session search
- Detail drawer already covers 16 fields including session diagnostics
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add userId filter input to LearningRecord list
- Add click-to-view detail Drawer with full record info
- Fix occurredAt formatting to use dayjs
- Add scroll for narrow displays
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>