mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
## [0.12.1](https://github.com/siddharthksah/Stirling-Image/compare/v0.12.0...v0.12.1) (2026-03-27)
### Bug Fixes
* **docs:** clean up footer llms.txt links ([a4d4d36](https://github.com/siddharthksah/Stirling-Image/commit/a4d4d368286a80decf73563ca6d7e7cae119099a))
17 KiB
17 KiB
0.12.1 (2026-03-27)
Bug Fixes
- docs: clean up footer llms.txt links (e842cde)
0.12.0 (2026-03-27)
Bug Fixes
- api: resolve team name lookup and show server error messages (609fc8b)
Features
- docs: add llms.txt links to GitHub Pages footer (b874445)
0.11.1 (2026-03-27)
Bug Fixes
- docs: ignore localhost dead links in VitePress build (78269d4)
0.11.0 (2026-03-27)
Bug Fixes
- a11y: add aria-hidden to decorative GemLogo SVG (ae185ce)
- api: allow Scalar docs through auth and CSP (6023109)
- api: use content instead of spec.content for Scalar v1.49 API (dfcb4d5)
- ui: clean up settings, automate page, fullscreen logo, and README (b3c8ad4)
Features
- api: add all remaining endpoints to OpenAPI spec (e7b38ba)
- api: add all tool endpoints to OpenAPI spec (753ba3e)
- api: add llms.txt and llms-full.txt endpoints (12ba52a)
- api: add OpenAPI 3.1 spec skeleton with common schemas (b2189f5)
- api: add Scalar docs route and install dependency (6f2c319)
- api: register docs route in server and test helper (bc6b389)
- branding: add faceted gem SVG logo assets (4bc9335)
- branding: add favicon and meta tags to index.html (2508fd0)
- branding: add OG social preview image (c6c5b92)
- branding: add PWA manifest and PNG logo assets (298567d)
- branding: show gem icon in app header as default logo (dd857fb)
- docs: add gem favicon to VitePress site (0918f93)
- docs: add llms.txt and llms-full.txt to GitHub Pages (5f6959a)
0.10.0 (2026-03-26)
Bug Fixes
- ocr: update PaddleOCR for v3 API and add Tesseract fallback (e260a93)
Features
- erase-object: replace mask upload with in-browser brush painting (40e3081)
0.9.0 (2026-03-26)
Bug Fixes
- blur-faces: switch from MediaPipe to OpenCV and auto-orient images (dc10f90)
- docker: add build layer caching for faster Docker rebuilds (03ba30d)
- upscale: auto-orient images before upscaling and improve UI (8a6e665)
Features
- adjustments: add real-time live preview for all color tools (b5c924e)
- image-to-pdf: add live PDF page preview with margin visualization (cd666ea)
- rotate: add editable angle input and fine-tune +/- buttons (e1f04c2)
0.8.2 (2026-03-25)
Bug Fixes
- test: add missing PNG fixture files to repo (45c6b9d)
- test: exclude e2e tests from vitest and fix CI test suite (9d28485)
0.8.1 (2026-03-25)
Bug Fixes
- resolve test failures from shared DB race conditions (1a7116d)
0.8.0 (2026-03-25)
Bug Fixes
- docker: skip husky prepare script in production install (fdfb0a0)
- prevent useAuth infinite loop causing rate limit storms (9624dae)
Features
- api: add logo upload/serve/delete routes with tests (6063f4d)
- api: add persistent file management helpers to frontend api module (ecbfcce)
- api: add teams CRUD routes and update auth team references (ec22e53)
- api: add tool filtering and DB-backed cleanup settings (07e7e8d)
- api: add user files CRUD routes at /api/v1/files/* (6a07007)
- db: add teams table and migration (365783b)
- db: add userFiles table and migration (a2fdbd5)
- env: add FILES_STORAGE_PATH config variable (3c737a6)
- files: add Files page with nav, list, details, upload, and routing (3f127a4)
- files: add mobile layout for Files page (e864d1e)
- files: wire serverFileId for version tracking (8868d3e)
- i18n: add translation keys for settings phase 1 (c5ff80a)
- implement Files page with persistent storage and version tracking (f6183d2)
- storage: add file storage helpers module (7c37213)
- stores: add Zustand store for Files page state management (fb487be)
- tool-factory: auto-save results to persistent file store when fileId provided (27d8629)
- ui: add teams, tools, feature flags, temp files, logo to settings dialog (fbce0dd)
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Added
- Files page — persistent server-side storage with version tracking and a mobile layout
- Teams — full CRUD API, database table, and migration
- Admin settings panel covering teams, tool visibility, feature flags, temp file cleanup, and logo upload
- Branding API routes (logo upload, serve, delete)
- Tool filtering and DB-backed cleanup settings on the API side
- i18n keys for the new settings screens
userFilestable for persistent file managementFILES_STORAGE_PATHconfig variable for controlling where uploaded files live- Tool results auto-save to persistent storage when a
fileIdis provided
Changed
- Renamed
Tool.alphatoTool.experimentaleverywhere - Tightened TypeScript types in tool-factory registry (removed
anycasts) - Bumped login attempt limit from 5 to 10
- Switched
isNaNtoNumber.isNaNin cleanup interval parsing - Null-safe team lookup in auth registration
Removed
- Internal planning docs (
docs/superpowers/) and Claude Code config (.claude/) from version control — these stay local only
0.7.0 - 2026-03-24
Added
- Inline settings configuration for pipeline automation steps, allowing per-step parameter overrides
Security
- Hardened authentication with stricter session validation
- Added security headers (HSTS, CSP, X-Content-Type-Options)
- SVG sanitization on upload to prevent XSS via malicious SVGs
- Pipeline ownership enforcement — users can only execute their own pipelines
0.6.0 - 2026-03-24
Added
- Extracted reusable auto-orient utility from image processing pipeline
- Expanded integration test coverage across tool routes
0.5.2 - 2026-03-23
Fixed
- Restored
APP_VERSIONimport used by the/healthendpoint, fixing version reporting in production
0.5.1 - 2026-03-23
Fixed
- Crop tool now uses
percentCropfromonChangecallback, fixing inflated pixel values that produced incorrect crop regions
Changed
- Removed unused Swagger dependencies, reducing bundle size
- Parallelized CI jobs for faster pipeline execution
0.5.0 - 2026-03-23
Added
- Interactive crop tool with visual overlay, grid lines, aspect ratio presets, pixel input fields, and keyboard controls
- Multi-image support — upload and process multiple files with arrow navigation and filmstrip thumbnail strip
- Batch processing wired across all tool settings with
processAllFilesmethod clientJobIdcorrelation for SSE progress during batch operations- Side-by-side comparison view for resize results
- Live CSS transform preview for rotate/flip operations
- Redesigned resize settings with tabbed UI (presets, custom dimensions, scale percentage)
- Client-side ZIP extraction via
fflatefor batch result downloads - Per-file metadata display with caching
Fixed
- White screen crash when uploading photos with null GPS EXIF data
- TypeScript
Uint8Arraytype incompatibility withfflate
0.4.1 - 2026-03-23
Fixed
- Unified all services on port 1349 (was split across multiple ports)
- Strip-metadata tool now correctly removes all EXIF data
- Before/after slider and side-by-side comparison component rendering fixes
0.4.0 - 2026-03-23
Added
- Resize tool redesign with tabbed settings UI — presets, custom dimensions, and scale percentage
- Rotate/flip live preview using CSS transforms before server round-trip
- Side-by-side comparison component for visual before/after on resize
- Conditional result views — side-by-side for resize, live preview for rotate
Fixed
- CI/CD pipeline — removed broken AI docs updater workflow, fixed Docker publish job
0.3.1 - 2026-03-23
Fixed
- CI workflow failure:
tsxbinary not found in AI docs updater action
0.3.0 - 2026-03-23
Added
- Real progress bars replacing indeterminate spinners across all tools
- SSE-based progress streaming from Python AI scripts through the API to the frontend
ProgressCardcomponent with determinate progress display for all tool typesuseToolProcessorhook rewritten with XHR upload progress and SSE event streamingonProgresscallback support in all AI wrapper functions (rembg, RealESRGAN, PaddleOCR, MediaPipe, LaMa)emit_progress()calls in all Python AI scripts for granular status updates- Intuitive subject/quality selector replacing raw model dropdown in background removal tool
Fixed
- Progress bar no longer resets from 100% to 0% between processing stages
setError(null)no longer overridessetProcessing(true)race condition- SSE progress endpoint added to public auth paths (was returning 401)
0.2.1 - 2026-03-22
Added
- Monorepo foundation — Turborepo with pnpm workspaces (
apps/api,apps/web,apps/docs,packages/shared,packages/image-engine,packages/ai) - Fastify API server with health check, environment config, and SQLite database via Drizzle ORM
- Authentication system with default admin user, login page, and session management
- React SPA with Vite, Tailwind CSS, dark/light/system theme, and sidebar layout
- 14 Sharp-based image operations — resize, crop, rotate, convert, compress, metadata strip, color adjust, and more
- Generic tool route factory for declarative API endpoint creation
- Tool settings UI for all core image tools with before/after comparison slider
- Batch processing with ZIP download and SSE progress tracking
- 30+ tools including watermark, text overlay, composition, collage, splitting, border/frame, image info, compare, duplicates, color palette, QR code, barcode, replace-color, SVG-to-raster, vectorize, GIF, favicon, and image-to-PDF
- 6 AI-powered tools via Python sidecar — background removal, upscaling, OCR, face detection/blur, object erasure (LaMa inpainting)
- Pipeline system — builder UI with templates, execution/save/list API endpoints
- i18n architecture with English translations
- Keyboard shortcuts for tool navigation
- Mobile responsive layout with bottom navigation
- Fullscreen tool grid view
- Settings dialog (general, security, API keys, about)
- API key management routes
- Home page redesign with upload flow and auth guard
- Multi-stage Docker build with Python ML dependencies
- Playwright end-to-end test suite
- VitePress documentation site with GitHub Pages deployment
- GitHub Actions CI pipeline and Docker Hub auto-publish workflow
- Semantic-release for automated versioning
- Swagger/OpenAPI documentation at
/api/docs - Automatic workspace file cleanup cron
Fixed
- Python bridge ENOENT handling for venv fallback — no longer swallows script errors
- Port configuration unified to 1349 for the UI across all modes
- Home upload flow, auth redirect, and form submit handling bugs
- Background removal defaults to U2-Net (fast, ~2s) instead of slow BiRefNet