- DocumentTranslator: replace Chakra Progress (broken types in 2.2.1
with fresh installs) with a simple Box-based progress bar — no type
issues, same visual result
- Dockerfile: switch from npm install to npm ci so Docker uses exact
locked versions from package-lock.json, preventing type discrepancies
between local and Docker builds
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Admin panel (/admin) with JWT auth: configure Replicate API token,
JigsawStack API key, model version, enable/disable AI translation,
change admin password. Settings persisted in data/settings.json.
- Replicate AI translation: POST /api/translate/replicate uses
JigsawStack text-translate model via Replicate API. Main page
switches to client-side AI translation when enabled.
- Document translation tab: supports PDF, DOCX, XLSX, XLS, CSV.
Excel/Word formatting fully preserved (SheetJS + JSZip XML manipulation).
PDF uses pdf-parse extraction + pdf-lib reconstruction.
Column selector UI for tabular data (per-sheet, All/None toggles).
- Updated README with full implementation documentation.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>