mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
chore(release): 1.17.1
Bump version across all workspaces, update changelog, release notes, OpenAPI spec, bug report template, and OpenSSF badge answers.
This commit is contained in:
@@ -51,7 +51,7 @@ body:
|
||||
attributes:
|
||||
label: Image tag
|
||||
description: Which Docker image tag are you using?
|
||||
placeholder: "e.g. latest, 1.17.0"
|
||||
placeholder: "e.g. latest, 1.17.1"
|
||||
validations:
|
||||
required: true
|
||||
|
||||
|
||||
+23
-38
@@ -1,52 +1,37 @@
|
||||
## Highlights
|
||||
|
||||
Five new tools, a full image editor, SSO login, 20 languages. Probably should have been three separate releases, but here we are.
|
||||
Live demo, per-tool landing pages, and a batch of polish fixes.
|
||||
|
||||
## 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. The confusing mode selector is gone, replaced with a colorize strength slider.
|
||||
- **Exotic formats everywhere** -- OCR, image-to-PDF, favicon generator, composition, stitch, and vectorize all decode HEIC, RAW, PSD now. Previously they just errored out.
|
||||
- **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 (non-ASCII filename crashes, EPIPE on dispatcher, EACCES on storage) now handled properly.
|
||||
- **GPU detection** -- Better diagnostics for containers where CUDA is present but nvidia-smi is not.
|
||||
- **DNG/RAW metadata** -- Image info reads EXIF from RAW files without full decode.
|
||||
- **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.
|
||||
- **Live demo** -- [demo.snapotter.com](https://demo.snapotter.com) lets people try SnapOtter without installing anything.
|
||||
- **Tools index page** -- Browse all 52 tools at `/tools` with search and category filters. Navbar links fixed on subpages.
|
||||
- **52 SEO landing pages** -- Every tool now has a dedicated landing page with FAQs, use cases, and comparison tables for search visibility.
|
||||
- **Background preview** -- Before-after slider shows a checkered background behind transparent images so you can actually see what changed.
|
||||
- **Strong password generator** -- One-click button in the Add Members form generates a secure password.
|
||||
- **Easter eggs** -- Hello from the otter side.
|
||||
|
||||
## Bug fixes
|
||||
|
||||
- **Upscale on CPU** -- No longer times out on NAS boxes and low-power hardware.
|
||||
- **QR code logo** -- Adding a logo no longer makes the preview vanish permanently.
|
||||
- **Crop overflow** -- Tall portrait images stay inside the viewport.
|
||||
- **TIFF alpha** -- Files needing alpha 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** -- Mixed-format batches no longer crash. Network errors handled.
|
||||
- **Beautify preview** -- Updates in real time, no longer collapses when frame or watermark is active.
|
||||
- **Progress bars** -- Stitch and vectorize show progress during processing.
|
||||
- **SVGZ** -- SVG-to-raster handles gzip-compressed SVGs.
|
||||
- **Non-ASCII filenames** -- X-File-Results header is percent-encoded, fixing downloads for non-Latin names.
|
||||
- **HEIC/HEIF info** -- Image info tool no longer fails on HEIC/HEIF files (pre-decode added).
|
||||
- **AI install errors** -- Better error messages and resource limits when installing AI model bundles.
|
||||
- **Library thumbnails** -- Image previews in the file library now load correctly (auth headers were missing).
|
||||
- **Dropdown clipping** -- People and Teams tables in settings no longer clip dropdown menus.
|
||||
- **Size comparison** -- Percentage badge hidden on non-compression tools where it was misleading.
|
||||
- **Privacy link** -- Removed duplicate privacy policy link from the main content area.
|
||||
- **Italian translation** -- AI features settings section translated.
|
||||
- **Lucide icons** -- Updated renamed icons (Wand2, Columns) to current names.
|
||||
|
||||
## Infrastructure
|
||||
|
||||
- OpenSSF Scorecard hardened from 4.3 to ~7.0.
|
||||
- CI tests parallelized into 4 shards with downsized fixtures.
|
||||
- 41 dependency updates across dev, production, and GitHub Actions.
|
||||
|
||||
## Upgrade
|
||||
|
||||
```bash
|
||||
docker pull snapotter/snapotter:1.17.0
|
||||
docker pull snapotter/snapotter:1.17.1
|
||||
```
|
||||
|
||||
Or with Docker Compose:
|
||||
@@ -55,4 +40,4 @@ Or with Docker Compose:
|
||||
docker compose pull && docker compose up -d
|
||||
```
|
||||
|
||||
**Full Changelog**: https://github.com/snapotter-hq/SnapOtter/compare/v1.16.0...v1.17.0
|
||||
**Full Changelog**: https://github.com/snapotter-hq/SnapOtter/compare/v1.17.0...v1.17.1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@snapotter/api",
|
||||
"version": "1.17.0",
|
||||
"version": "1.17.1",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
openapi: 3.1.0
|
||||
info:
|
||||
title: SnapOtter API
|
||||
version: 1.17.0
|
||||
version: 1.17.1
|
||||
description: |
|
||||
REST API for SnapOtter, a self-hosted image processing platform with 52 tools.
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@snapotter/demo",
|
||||
"version": "1.17.0",
|
||||
"version": "1.17.1",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
||||
@@ -4,6 +4,51 @@ description: Release notes and version history for SnapOtter. See what's new, im
|
||||
|
||||
# Changelog
|
||||
|
||||
## 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 52 tools at `/tools` with search and category filters.
|
||||
- **52 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.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@snapotter/docs",
|
||||
"version": "1.17.0",
|
||||
"version": "1.17.1",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"docs:dev": "vitepress dev .",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@snapotter/landing",
|
||||
"version": "1.17.0",
|
||||
"version": "1.17.1",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@snapotter/web",
|
||||
"version": "1.17.0",
|
||||
"version": "1.17.1",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "snapotter",
|
||||
"version": "1.17.0",
|
||||
"version": "1.17.1",
|
||||
"private": true,
|
||||
"description": "Self-hosted image processing suite with 52 tools and local AI. Single Docker container, no external services.",
|
||||
"homepage": "https://snapotter.com",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@snapotter/ai",
|
||||
"version": "1.17.0",
|
||||
"version": "1.17.1",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"main": "./src/index.ts",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@snapotter/image-engine",
|
||||
"version": "1.17.0",
|
||||
"version": "1.17.1",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"main": "./src/index.ts",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@snapotter/shared",
|
||||
"version": "1.17.0",
|
||||
"version": "1.17.1",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"main": "./src/index.ts",
|
||||
|
||||
@@ -1228,7 +1228,7 @@ export const PRINT_LAYOUTS: PrintLayout[] = [
|
||||
{ id: "none", label: "None", width: 0, height: 0 },
|
||||
];
|
||||
|
||||
export const APP_VERSION = "1.17.0";
|
||||
export const APP_VERSION = "1.17.1";
|
||||
|
||||
/**
|
||||
* Tool IDs that require the Python sidecar (AI/ML tools).
|
||||
|
||||
Reference in New Issue
Block a user