feat(i18n): 21-language pipeline, landing/docs/API wiring, landing+API translations

Shared Claude Code translation pipeline (scripts/i18n, no API key) plus Astro/VitePress/Scalar i18n wiring. Landing and API reference translated into all 20 languages; docs i18n wiring + English source anchors. The translated docs markdown (apps/docs/<locale>/**, 3,620 files) follows in a companion PR because it exceeds GitHub's per-PR CI file limit.
This commit is contained in:
SnapOtter
2026-07-11 13:01:55 +08:00
committed by GitHub
parent 2e91368816
commit 00b651c9f8
353 changed files with 564607 additions and 2594 deletions
+31 -31
View File
@@ -2,13 +2,13 @@
description: Release notes and version history for SnapOtter. See what's new, improved, and fixed in each release.
---
# Changelog
# Changelog {#changelog}
## v2.0.0
## v2.0.0 {#v2-0-0}
SnapOtter 2.0 turns the image toolkit into a full file-manipulation suite: 200+ tools across five modalities (Image, Video, Audio, PDF, and Files), rebuilt on Postgres 17 and a Redis-backed job queue, with a one-command `docker run`. This is a major release; read Breaking changes before upgrading from 1.x.
### New features
### New features {#new-features}
- **Four new tool modalities**: Video, Audio, PDF, and Files join Image, taking the catalog to 200+ tools.
- **Durable background jobs**: A Redis-backed queue (BullMQ) runs every tool as a tracked job with live SSE progress.
@@ -21,7 +21,7 @@ SnapOtter 2.0 turns the image toolkit into a full file-manipulation suite: 200+
- **Files library**: Save any result and reuse it as input to another tool.
- Pinned tools, in-canvas zoom and pan, 21 languages, and enterprise capabilities (OIDC/SSO, SAML, SCIM, S3 storage, per-tool permissions, audit export, distributed tracing).
### Improvements
### Improvements {#improvements}
- Cancel a running process. (#137)
- Full-resolution RAW decoding through LibRaw, including DNG. (#289)
@@ -30,7 +30,7 @@ SnapOtter 2.0 turns the image toolkit into a full file-manipulation suite: 200+
- Privacy hardening: no automatic third-party egress, plus an optional strict-offline mode.
- Always-on feedback button, even with analytics off.
### Bug fixes
### Bug fixes {#bug-fixes}
- `RATE_LIMIT_PER_MIN=0` disables rate limiting for tool routes again. (#271)
- Repaired AI virtualenv paths inside the Docker image. (#390)
@@ -42,11 +42,11 @@ SnapOtter 2.0 turns the image toolkit into a full file-manipulation suite: 200+
- Generated PDFs are stamped with SnapOtter as the Producer.
- mediapipe installs on Python 3.13 and Debian 13.
### Breaking changes
### Breaking changes {#breaking-changes}
2.0 replaces the embedded SQLite database with Postgres 17 and adds Redis 8 for the job queue. Your 1.x data migrates automatically on first boot, but the container stack changed, so back up your whole `/data` volume first (1.x runs SQLite in WAL mode, so the committed data usually lives in `snapotter.db-wal`). Then pick the single-container image (embedded Postgres and Redis, root only) or the Compose stack (app plus Postgres 17 and Redis 8). See the [migration guide](https://github.com/snapotter-hq/SnapOtter/blob/main/MIGRATING.md) and the [upgrade guide](/guide/upgrading).
### Upgrade
### Upgrade {#upgrade}
```bash
docker pull snapotter/snapotter:2.0.0
@@ -62,11 +62,11 @@ docker compose pull && docker compose up -d
---
## v1.17.2
## v1.17.2 {#v1-17-2}
New HTML to Image tool, WCAG 2.2 AA accessibility, security hardening from penetration testing, and 5 critical Docker fixes.
### New features
### New features {#new-features-1}
- **HTML to Image**: Capture screenshots of URLs or raw HTML as PNG/JPEG/WebP. Full-page captures, custom viewports, dark mode.
- **Docker _FILE secret convention**: Mount sensitive env vars as files instead of plain-text. (#205)
@@ -74,7 +74,7 @@ New HTML to Image tool, WCAG 2.2 AA accessibility, security hardening from penet
- **Shape editor improvements**: Fill/stroke transparency, RGBA color picker, dash line styles.
- **Pre-built release archives**: Download tarballs from GitHub Releases for non-Docker installs (Proxmox, bare metal, LXC). (#202)
### Improvements
### Improvements {#improvements-1}
- **WCAG 2.2 AA accessibility**: Skip navigation, focus trapping, aria-live regions, reduced motion support, correct contrast ratios. (#209)
- **Mobile responsiveness**: Responsive settings, SSE auto-reconnect on mobile tab switch. (#203, #204)
@@ -83,7 +83,7 @@ New HTML to Image tool, WCAG 2.2 AA accessibility, security hardening from penet
- **Per-tool API documentation**: 53 doc pages with parameters, examples, and response formats.
- **AI model downloads**: Retry logic with exponential backoff for HuggingFace. (#201)
### Bug fixes
### Bug fixes {#bug-fixes-1}
- Fresh Docker containers were completely unusable (rate limit blocked all requests).
- Face detection AI tools (blur-faces, red-eye-removal, enhance-faces, passport-photo) failed on all platforms.
@@ -95,13 +95,13 @@ New HTML to Image tool, WCAG 2.2 AA accessibility, security hardening from penet
- Real-ESRGAN CUDA OOM on 8GB GPUs. (#200)
- 6 production Sentry errors and 7 QA bugs. (#208)
### Security
### Security {#security}
- 10 penetration test findings addressed (XFF bypass, malformed JSON crashes, unbounded pipelines, audit log XSS, TRACE method, and more). (#207)
- SSRF hex IPv6 bypass blocked. (Credit: @tonghuaroot)
- Dockerfile base images pinned by digest.
### Upgrade
### Upgrade {#upgrade-1}
```bash
docker pull snapotter/snapotter:1.17.2
@@ -117,11 +117,11 @@ docker compose pull && docker compose up -d
---
## v1.17.1
## v1.17.1 {#v1-17-1}
Live demo, per-tool landing pages, and a batch of polish fixes.
### New features
### New features {#new-features-2}
- **Live demo** - [demo.snapotter.com](https://demo.snapotter.com) lets people try SnapOtter without installing anything.
- **Tools index page** - Browse all 50+ tools at `/tools` with search and category filters.
@@ -129,7 +129,7 @@ Live demo, per-tool landing pages, and a batch of polish fixes.
- **Background preview** - Before-after slider shows a checkered background behind transparent images.
- **Strong password generator** - One-click button in the Add Members form.
### Bug fixes
### Bug fixes {#bug-fixes-2}
- HEIC/HEIF info tool no longer fails (pre-decode added).
- AI model bundle install shows better error messages and respects resource limits.
@@ -140,13 +140,13 @@ Live demo, per-tool landing pages, and a batch of polish fixes.
- Italian translation added for AI features settings.
- Renamed Lucide icons updated (Wand2, Columns).
### Infrastructure
### Infrastructure {#infrastructure}
- OpenSSF Scorecard hardened from 4.3 to ~7.0.
- CI tests parallelized into 4 shards with downsized fixtures.
- 41 dependency updates.
### Upgrade
### Upgrade {#upgrade-2}
```bash
docker pull snapotter/snapotter:1.17.1
@@ -162,11 +162,11 @@ docker compose pull && docker compose up -d
---
## v1.17.0
## v1.17.0 {#v1-17-0}
Five new tools, a full image editor, SSO login, 20 languages. Probably should have been three separate releases, but here we are.
### New features
### New features {#new-features-3}
- **Image editor** - Layers, brushes, shapes, adjustments, filters, curves, keyboard shortcuts. Runs in your browser, processes on your hardware.
- **OIDC / SSO authentication** - Login with Google, GitHub, Okta, or any OpenID Connect provider. Set a few env vars and your team uses their existing accounts.
@@ -181,7 +181,7 @@ Five new tools, a full image editor, SSO login, 20 languages. Probably should ha
- **Pipeline import/export** - Save tool chains as JSON, share them with others.
- **17 new camera RAW formats** via exiftool, plus QOI, JP2, EPS, DDS, CUR, DPX, FITS, PPM/PGM/PBM, SVGZ, and APNG input. New output codecs for BMP, ICO, JP2, QOI. AVIF, TIFF, GIF, JXL, and PSD export recovered from a previously lost branch.
### Improvements
### Improvements {#improvements-2}
- **Image enhancement** - Replaced the old pipeline with CLAHE + normalise + gamma. New Deep Enhance toggle uses the AI model for more aggressive results.
- **Restore photo** - Scratch detection rewritten with 8-angle Otsu filtering. LaMa inpainting now runs at native resolution.
@@ -192,7 +192,7 @@ Five new tools, a full image editor, SSO login, 20 languages. Probably should ha
- **Auth-disabled mode** - Anonymous user is seeded in the DB with admin role. API keys, pipelines, and user files no longer break on FK constraints.
- **2,705+ new tests** across unit, integration, and E2E.
### Bug fixes
### Bug fixes {#bug-fixes-3}
- Upscale on CPU no longer times out on NAS boxes and low-power hardware.
- QR code logo no longer makes the preview vanish permanently.
@@ -206,7 +206,7 @@ Five new tools, a full image editor, SSO login, 20 languages. Probably should ha
- SVGZ handled by SVG-to-raster.
- Non-ASCII filenames fixed via percent-encoded X-File-Results header.
### Upgrade
### Upgrade {#upgrade-3}
```bash
docker pull snapotter/snapotter:1.17.0
@@ -222,48 +222,48 @@ docker compose pull && docker compose up -d
---
## v1.14.0
## v1.14.0 {#v1-14-0}
Unified Docker image with GPU auto-detection. One image handles both CPU and GPU workloads. Simplified compose to a single file with log rotation. Model pre-downloads now include verification and a smoke test.
---
## v1.13.0
## v1.13.0 {#v1-13-0}
Role-based access control (RBAC). 14 granular permissions, three built-in roles (admin, editor, user), custom role support. Permission checks on all API routes. Frontend tabs filtered by user permissions.
---
## v1.12.0
## v1.12.0 {#v1-12-0}
PDF to Image tool. Convert PDF pages to PNG, JPEG, WebP, or TIFF at custom DPI. Unified Docker image with GPU auto-detection.
---
## v1.11.0
## v1.11.0 {#v1-11-0}
Auto-generated llms.txt via vitepress-plugin-llms for AI-friendly documentation.
---
## v1.10.0
## v1.10.0 {#v1-10-0}
Content-aware resize (seam carving) with face protection. Resize images while preserving important content.
---
## v1.9.0
## v1.9.0 {#v1-9-0}
Stitch / Combine tool. Join images side by side, stacked vertically, or in a custom grid.
---
## v1.8.0
## v1.8.0 {#v1-8-0}
Edit Metadata tool. View and edit EXIF, IPTC, and XMP metadata with a granular strip/keep interface.
---
## Older releases
## Older releases {#older-releases}
For the full commit-level changelog including patch releases, see [GitHub Releases](https://github.com/snapotter-hq/snapotter/releases).