Files
SnapOtter/apps/docs/changelog.md
T
SnapOtter 31e5f81a55 feat(docs): add v1.17.2 changelog and auto-update in release workflow
- Add v1.17.2 entry to docs/changelog.md
- Add "Update docs changelog" step to release workflow that
  auto-prepends .release-notes.md to the docs changelog on
  each release, then commits and pushes to trigger docs deploy
2026-06-08 16:21:29 +08:00

212 lines
9.0 KiB
Markdown

---
description: Release notes and version history for SnapOtter. See what's new, improved, and fixed in each release.
---
# Changelog
## 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
- **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)
- **Enterprise licensing and S3 storage**: Optional commercial license key and S3-compatible object storage.
- **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
- **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)
- **Background removal quality**: Edge smoothing, color decontamination, output format selection.
- **Italian translation**: ~145 new strings by @albanobattistella. (#206)
- **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
- 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.
- HEIC files broken on ARM (libheif symbol mismatch).
- Upscale and restore-photo AI bundles failed to install on ARM.
- OCR used wrong CUDA version on GPU containers.
- SSRF guard bypass via hex IPv4-mapped IPv6 addresses. (Credit: @tonghuaroot)
- iPhone HEIC decoding with auxiliary images. (#183, #199)
- Real-ESRGAN CUDA OOM on 8GB GPUs. (#200)
- 6 production Sentry errors and 7 QA bugs. (#208)
### 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
```bash
docker pull snapotter/snapotter:1.17.2
```
Or with Docker Compose:
```bash
docker compose pull && docker compose up -d
```
[Full diff on GitHub](https://github.com/snapotter-hq/SnapOtter/compare/v1.17.1...v1.17.2)
---
## v1.17.1
Live demo, per-tool landing pages, and a batch of polish fixes.
### New features
- **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.
- **50+ SEO landing pages** -- Every tool now has a dedicated landing page with FAQs, use cases, and comparison tables.
- **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
- HEIC/HEIF info tool no longer fails (pre-decode added).
- AI model bundle install shows better error messages and respects resource limits.
- Library thumbnails load correctly (auth headers were missing).
- Dropdown menus no longer clip in People and Teams settings tables.
- Size comparison percentage hidden on non-compression tools.
- Duplicate privacy policy link removed.
- Italian translation added for AI features settings.
- Renamed Lucide icons updated (Wand2, Columns).
### Infrastructure
- OpenSSF Scorecard hardened from 4.3 to ~7.0.
- CI tests parallelized into 4 shards with downsized fixtures.
- 41 dependency updates.
### Upgrade
```bash
docker pull snapotter/snapotter:1.17.1
```
Or with Docker Compose:
```bash
docker compose pull && docker compose up -d
```
[Full diff on GitHub](https://github.com/snapotter-hq/SnapOtter/compare/v1.17.0...v1.17.1)
---
## 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
- **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.
- **Meme generator** -- 100 built-in templates with text rendering via opentype.js. Or upload your own image.
- **Beautify** -- Drop a screenshot in, get a polished image out. Device frames (macOS, Windows, browser), shadows, gradients, social media presets.
- **Color blindness simulation** -- Preview how images look with protanopia, deuteranopia, tritanopia, and other color vision deficiencies.
- **PNG transparency fixer** -- Detects fake-transparent PNGs and fixes them with BiRefNet HR-matting. Optional watermark removal via LaMa inpainting.
- **AI canvas expand** -- Extend image boundaries with AI fill. Three quality tiers (fast, balanced, quality) depending on how much GPU time you want to trade.
- **20 languages** -- Arabic, Chinese (Simplified/Traditional), Czech, Dutch, French, German, Hindi, Indonesian, Italian, Japanese, Korean, Polish, Portuguese, Russian, Spanish, Thai, Turkish, Ukrainian, Vietnamese. RTL works for Arabic.
- **URL import** -- Paste URLs into the dropzone or bulk-import from a list. Server-side fetch with SSRF protection.
- **Multi-file eraser** -- Draw erase masks across multiple images, process them all with one click. Strokes persist per-image.
- **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
- **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.
- **Exotic formats everywhere** -- OCR, image-to-PDF, favicon generator, composition, stitch, and vectorize all decode HEIC, RAW, PSD now.
- **Compress** -- Target-size tolerance tightened from 5% to 1%. Target size is the default mode. Added stepper buttons and KB/MB unit selector.
- **Sentry cleanup** -- 644 non-actionable events filtered. Real errors now handled properly.
- **GPU detection** -- Better diagnostics for containers where CUDA is present but nvidia-smi is not.
- **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
- Upscale on CPU no longer times out on NAS boxes and low-power hardware.
- QR code logo no longer makes the preview vanish permanently.
- Crop overflow fixed for tall portrait images.
- TIFF alpha files correctly force PNG output instead of producing corruption.
- HDR/EXR decode converts to 8-bit before CLAHE, fixing decode failures.
- Face landmarks input buffers converted to PNG before the Python sidecar, fixing crashes.
- Find duplicates handles mixed-format batches and network errors.
- Beautify preview updates in real time.
- Progress bars for stitch and vectorize.
- SVGZ handled by SVG-to-raster.
- Non-ASCII filenames fixed via percent-encoded X-File-Results header.
### Upgrade
```bash
docker pull snapotter/snapotter:1.17.0
```
Or with Docker Compose:
```bash
docker compose pull && docker compose up -d
```
[Full diff on GitHub](https://github.com/snapotter-hq/SnapOtter/compare/v1.16.0...v1.17.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
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
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
Auto-generated llms.txt via vitepress-plugin-llms for AI-friendly documentation.
---
## v1.10.0
Content-aware resize (seam carving) with face protection. Resize images while preserving important content.
---
## v1.9.0
Stitch / Combine tool. Join images side by side, stacked vertically, or in a custom grid.
---
## v1.8.0
Edit Metadata tool. View and edit EXIF, IPTC, and XMP metadata with a granular strip/keep interface.
---
## Older releases
For the full commit-level changelog including patch releases, see [GitHub Releases](https://github.com/snapotter-hq/snapotter/releases).