Relocates the entire Docusaurus site from the repo root into a
dedicated docs/ directory to keep docs tooling separate from the
Rust/frontend workspace. Updates CI workflows (build.yml, docs.yml),
justfile (adds `just docs` task), and GEMINI.md to reflect the new
paths.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
LibraryStep: replace viewport-relative h-[min(28rem,calc(100dvh-20rem))]
with a fixed h-[420px] so the file browser panel renders correctly inside
nested overflow-y-auto scroll containers in the setup wizard.
SavingsOverview: replace percentage-height CSS bar divs with proper
recharts AreaChart (savings over time) and BarChart (savings by codec),
using CSS variable tokens for all colors. Removes the now-unused
formatCompactStorage helper.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix React #418/#423: remove activeIndex effect from SettingsPanel, defer
applyRootTheme via requestAnimationFrame in AppearanceSettings
- Add retry countdown on failed job rows with 30s refresh tick
- Add attempt_count to Job interface; add job_count to CodecSavings (Rust + frontend)
- Stats page: Total Library Reduction headline, job counts per codec, recharts BarChart
for jobs-per-day histogram
- Mobile layout: hamburger overlay sidebar with backdrop, hide Updated/priority
columns on small screens in jobs table
- CI: check-web now runs e2e tests; docker workflow adds nightly schedule
building linux/amd64,linux/arm64 and tagging :nightly
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- LibraryStep.tsx: Add optional chaining for browse.entries
- Dashboard.tsx: Replace status-success with helios-solar color
- ResourceMonitor.tsx: Replace status-success with helios-solar color
- processor.rs: Add auto-pause on empty queue with SSE notification
- wizard.rs: Wait for scan completion before analyzing pending jobs
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Backend fixes:
- auth.rs: Replace .unwrap() with pattern matching and .expect()
- middleware.rs: Replace .unwrap() with .expect() for static headers
- pipeline.rs: Add error logging for analysis/planning failures
- pipeline.rs: Log profile fetch errors instead of swallowing silently
- wizard.rs: Set setup_required=false after setup completes (fixes CI)
- tests.rs: Use tx_capacity for jobs channel to test lag behavior (fixes CI)
Frontend fixes:
- JobManager.tsx: Add exponential backoff for SSE reconnect (1s-30s + jitter)
- SettingsPanel.tsx: Fix React hydration by moving URL parsing to useEffect
- api.ts: Increase timeout from 15s to 30s for hardware detection
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the duplicate setSaveError("") call in HardwareSettings that was
already cleared before the try block. Replace all remaining text-[10px]
and text-[11px] arbitrary Tailwind tokens with text-xs across 9 components.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Part 1-2: setup.astro app-shell layout + new SetupSidebar.astro
- Part 3: SetupFrame full-page layout, 2px progress bar, toast errors
- Part 4: LibraryStep single-column redesign with chips and browse
- Parts 5-7: Fix banned patterns in SetupControls, ScanStep, ProcessingStep
- Part 8: JobManager polish (inline summary, badge/header/radius fixes)
- Part 9: SystemSettings engine mode section with API integration
- Part 10: HeaderActions dead code removal (engine mode state/handlers)
macOS ships bash 3.2 (GPL2); mapfile was added in bash 4.0. Use
while IFS= read -r loops with process substitution instead, which
work in bash 3.2+.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>