The rust:1.89-bookworm container does not include Node.js, causing
actions/cache@v4 to fail with "exec: node: not found". Removed all
cache action steps. sccache still provides intra-job deduplication
when compiling both --features server and --features web.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add three responsive breakpoints (1024px, 768px, 480px) to make the
dashboard fully usable on tablets and phones. The sidebar now slides
in as an overlay on mobile with a hamburger toggle in a fixed header bar.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add .cargo/config.toml with rustc-wrapper = sccache for local caching
- Install sccache in CI clippy/test jobs via prebuilt musl binary
- Add actions/cache to persist sccache dir across CI runs (keyed by Cargo.lock)
- Add BuildKit cache mounts in Dockerfile for sccache across Docker builds
- Disable sccache for fmt/audit jobs where it adds no value
Local clean-rebuild speedup: 1m58s -> 34s (3.4x) with warm cache.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add a compile-time i18n system with 270 translation keys across 5 locales
(EN, DE, FR, ES, PT). Translations are embedded via include_str! and parsed
lazily into flat HashMaps with English fallback for missing keys.
- Add src/i18n module with Locale enum, t()/tw() lookup functions, and tests
- Add JSON translation files for all 5 locales under assets/i18n/
- Provide locale Signal via Dioxus context in App, persisted to localStorage
- Replace all hardcoded UI strings across 33 component/page files
- Add compact locale picker (globe icon + ISO alpha-2 code) in sidebar header
- Add click-outside backdrop dismissal for locale dropdown
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>