ashim/CHANGELOG.md

71 KiB

1.14.0 (2026-04-10)

Bug Fixes

  • add FILES_STORAGE_PATH to Dockerfile ENV to prevent data loss (b575243)
  • add shutdown timeout and improve health endpoint (986ad37)
  • address code review findings before merge (caf65bc)
  • correct PaddleOCR language codes for model download and OCR (e1ee571)
  • force CPU mode in download_models.py for build-time compatibility (b4b59a7)
  • handle paddlepaddle-gpu CUDA import at build time gracefully (0083a74)
  • install cuda-compat stubs for build-time PaddlePaddle import (d31d665)
  • load RealESRGAN pretrained weights for actual AI upscaling (fa9569c)
  • revert to npx tsx in CMD for pnpm compatibility (e55253d)
  • simplify smoke test to CPU-only imports for build-time compat (3481663)
  • skip RealESRGAN import check on arm64 in smoke test (1e2ef52)
  • split paddlepaddle-gpu and paddleocr installs, use --extra-index-url (74183e8)
  • suppress ML library stdout noise in ocr.py and upscale.py (c0b419d)
  • use PaddlePaddle GPU package index for CUDA wheels (dd9528f)
  • use platform-specific mediapipe version for arm64 compatibility (7face19)

Features

  • expand model pre-download with verification and smoke test (a9e3b96)
  • simplify CI to single unified Docker build (b385a2e)
  • simplify compose to single file, add log rotation (84f7057)
  • unified Docker image with GPU auto-detection (6c3eb3b)

1.13.0 (2026-04-10)

Bug Fixes

  • complete RBAC implementation lost during merge (cc8a272)

Features

  • add backend permission map and requirePermission middleware (1a99571)
  • add permission checks and admin override to API key routes (d776680)
  • add permission checks and admin override to pipeline routes (59f40db)
  • add permission checks and ownership scoping to user-files routes (86ba698)
  • add shared Permission and Role types (2f594e9)
  • add tools:use permission check to tool, batch, pipeline, and upload routes (885ace5)
  • extend useAuth hook with role and permissions from session (e0ba8be)
  • filter settings tabs by user permissions, remove admin fallback (bcbd24a)
  • include permissions and teamName in login/session responses (4943177)
  • replace requireAdmin with requirePermission on all routes (af7f57d)

1.12.0 (2026-04-10)

Bug Fixes

  • a11y: add keyboard support to pdf-to-image upload dropzone (1778f72)
  • use specific selector in pdf-to-image e2e test (b2a2c89)

Features

  • add pdf-to-image backend route with info and processing endpoints (30155c1)
  • add pdf-to-image frontend settings component (44bbfba)
  • register pdf-to-image in frontend tool registry (5fd294c)
  • register pdf-to-image tool in shared constants and i18n (43324c1)
  • unified Docker image with GPU auto-detection (#37) (b0083e2)

1.12.0 (2026-04-10)

Features

  • unified Docker image with GPU auto-detection (#37) (b0083e2)

1.11.0 (2026-04-07)

Features

  • docs: auto-generate llms.txt via vitepress-plugin-llms (ee28ec6)

1.10.0 (2026-04-07)

Features

  • add content-aware resize API route and registration (aa3cc5c)
  • add content-aware resize toggle to resize settings UI (4b4464f)
  • add seam carving AI bridge module (3c0f5b6)
  • add seam carving Python script with face protection (fb833e4)

1.9.0 (2026-04-07)

Features

  • add stitch API route handler (63ea0ba)
  • add stitch settings UI component (6abe893)
  • register stitch component in web tool registry (612f7d9)
  • register stitch route in API tool registry (a37d54f)
  • register stitch tool in shared constants and i18n (b881416)

1.8.1 (2026-04-07)

Bug Fixes

  • add variant diagnostics to health endpoint and lite mode banner (2c6e499)

1.8.0 (2026-04-06)

Bug Fixes

  • filter unsafe round-trip keys server-side in editMetadata (32bde85)

Features

  • add edit-metadata API route with inspect and edit endpoints (ff07b83)
  • add edit-metadata UI component with granular strip support (dcd600d)
  • add EditMetadataOptions type and exif-reader dep to image-engine (39bc5bc)
  • extract shared metadata parsing utilities into image-engine (c075849)
  • implement editMetadata operation in image-engine (f3be1ef)
  • register edit-metadata in shared constants and i18n (4a424d7)

1.7.7 (2026-04-06)

Bug Fixes

  • improve AI tool reliability for face detection and background removal (#25) (1963a80)

1.7.6 (2026-04-06)

Bug Fixes

  • batch SSE progress and non-AI processing UX (#24) (0ce42d1)

1.7.5 (2026-04-06)

Bug Fixes

  • add server-side logging to AI tool routes (#23) (3645de8)

1.7.4 (2026-04-06)

Bug Fixes

  • batch file ordering and format preservation for image tools (#20) (822a078), closes #13 #14

1.7.3 (2026-04-06)

Bug Fixes

  • docs: correct broken llms.txt links on REST API page (5e3a8b3)

1.7.2 (2026-04-05)

Bug Fixes

  • use torch.cuda for GPU detection instead of onnxruntime providers (7185bd5)

1.7.1 (2026-04-05)

Bug Fixes

  • prevent false GPU detection when CUDA image runs without GPU (1efb163)

1.7.0 (2026-04-05)

Bug Fixes

  • web: skip empty Authorization header for forward-auth proxy compatibility (636153f), closes #6

Features

  • add GPU/CUDA acceleration support (:cuda Docker tag) (a5f62f0)

1.6.0 (2026-04-04)

Features

  • lightweight Docker image without AI/ML tools (:lite tag) (3a0b988), closes #1

1.5.3 (2026-04-04)

Bug Fixes

  • use heif-convert for HEIC decoding on Linux (da15a1e)

1.5.2 (2026-04-04)

Bug Fixes

  • install HEVC codec plugins for CI HEIC tests (24e7591)

1.5.1 (2026-04-04)

Bug Fixes

  • install libheif-examples in CI for HEIC tests (d06092c)

1.5.0 (2026-04-04)

Features

  • add HEIC/HEIF format support for input and output (df1dc02)

1.4.0 (2026-04-04)

Features

  • add "Crop to Content" mode to smart crop tool (df479d3), closes #7

1.3.1 (2026-04-04)

Bug Fixes

  • default theme to light instead of following system preference (018fcce)

1.3.0 (2026-04-04)

Bug Fixes

  • add XHR timeout to prevent UI spinning forever (0abacb2)
  • disable worker pool to prevent Docker processing hang (e36cd0c)
  • log volume permission errors instead of swallowing them (a3e6927)
  • replace crypto.randomUUID with generateId in AI tool settings (ed91861)
  • replace crypto.randomUUID with generateId in pipeline/automation (bcbf86c)
  • replace crypto.randomUUID with generateId in use-tool-processor (07cc2d0)
  • replace navigator.clipboard with copyToClipboard utility (1857aeb)
  • resolve multiple API and e2e test bugs (00deafb)
  • restore navigator.clipboard and execCommand mocks in tests (57e71b7)

Features

  • add copyToClipboard() utility with execCommand fallback (8686131)
  • add generateId() utility for non-secure context compatibility (ee7741b)

1.2.1 (2026-04-03)

Bug Fixes

  • handle volume permission issues for bind-mounted /data directory (863a51c)

1.2.0 (2026-04-03)

Features

  • move theme toggle and GitHub button to top-right navbar (0ba9fa5)

1.1.0 (2026-04-03)

Features

  • add GitHub stars button to docs navbar and fix footer license (90030fc)

1.0.1 (2026-03-30)

Bug Fixes

  • allow SVG files in the convert tool (034281b)

1.0.0 (2026-03-30)

Bug Fixes

  • a11y: add aria-hidden to decorative GemLogo SVG (ae185ce)
  • add remove-background settings to pipeline step configurator (ae5ac81)
  • add SSE progress endpoint to public paths (18c3da0)
  • api: allow Scalar docs through auth and CSP (6023109)
  • api: resolve team name lookup and show server error messages (609fc8b)
  • api: use content instead of spec.content for Scalar v1.49 API (dfcb4d5)
  • apply continuous progress bar to erase-object and OCR (196c553)
  • blur-faces: switch from MediaPipe to OpenCV and auto-orient images (dc10f90)
  • bridge.ts ENOENT check for Python venv fallback (92442cd)
  • clear search when adding a step from the tool picker (ae2e63f)
  • continuous progress bar (no 100%→0% reset) (b4abefe)
  • crop: use percentCrop from onChange to fix inflated pixel values (f238820)
  • deduplicate react in Vite to prevent zustand hook errors in monorepo (b3d6947)
  • docker: add build layer caching for faster Docker rebuilds (03ba30d)
  • docker: skip husky prepare script in production install (fdfb0a0)
  • docs: clean up footer llms.txt links (e842cde)
  • docs: ignore localhost dead links in VitePress build (78269d4)
  • docs: remove hero logo from home page (64c0ec8)
  • handle migration race condition in concurrent test workers (d576ab1)
  • make port 1349 the UI port in all modes (20a2637)
  • move health diagnostics behind admin auth (ee9a20f)
  • ocr: update PaddleOCR for v3 API and add Tesseract fallback (e260a93)
  • pipeline only shows compatible tools and displays errors (fe021c1)
  • prevent pipeline step settings from resetting on collapse (d899ef1)
  • prevent stale closure in pipeline step callbacks (c67f002)
  • prevent useAuth infinite loop causing rate limit storms (9624dae)
  • Python bridge fallback only on missing venv, not script errors (79e4116)
  • reject HTML tags in settings API to prevent stored XSS (d5bd011)
  • remove explicit pnpm version from CI to avoid conflict with packageManager (c0f5dad)
  • remove Google Drive coming soon placeholder from files nav (e487fe0)
  • resolve 3 critical UX bugs - home upload, auth, and form submit (97267c7)
  • resolve pipeline step race condition and infinite re-render loop (e0177d4)
  • resolve test failures from shared DB race conditions (1a7116d)
  • resolve tsx not found in AI docs updater workflow (dfbef8d)
  • resolve TypeScript Uint8Array type error with fflate (c1b06b3)
  • restore APP_VERSION import used by health endpoint (2a74b60)
  • setError(null) was overriding setProcessing(true) (2be94b7)
  • show checkerboard behind transparent images in before/after slider (73741e6)
  • simplify public health to static response, add 403 test (9c05da6)
  • streamline CI/CD — remove broken AI docs updater, fix Docker publish (ad2c96d)
  • surface hidden errors and add batch rejection tests (2f8e2ce)
  • switch README Docker references from GHCR to Docker Hub (9e15679)
  • sync stepsRef during render, not useEffect (0c86744)
  • test: add missing PNG fixture files to repo (45c6b9d)
  • test: exclude e2e tests from vitest and fix CI test suite (9d28485)
  • tests: remove temp DB cleanup that races with other test files (498bfb3)
  • trigger browser password save prompt on password change (6b279ad)
  • ui: clean up settings, automate page, fullscreen logo, and README (b3c8ad4)
  • unify project on port 1349, improve strip-metadata and UI components (4912ee3)
  • upscale: auto-orient images before upscaling and improve UI (8a6e665)
  • use BiRefNet-Lite as default model and fix JSON parsing (c8159d3)
  • use two-pass validation in settings PUT to prevent partial writes (2dc39d3)
  • use U2-Net as default model (fast, 2s) with BiRefNet as opt-in (7ebed9a)
  • white screen crash when uploading photos with null GPS EXIF data (c913df9)

Features

  • accept clientJobId in batch endpoint for SSE progress correlation (8ed57f4)
  • add authentication with default admin user (2189628)
  • add automatic workspace file cleanup cron (5af7437)
  • add CSS transform props to ImageViewer for live rotate/flip preview (de3340f)
  • add CSS transform props to ImageViewer for live rotate/flip preview (7627853)
  • add Fastify API server with health check and env config (be73ce9)
  • add forced password change page on first login (e0900a8)
  • add format tools (SVG-to-raster, vectorize, GIF) and optimization (rename, favicon, image-to-PDF) (7b29b04)
  • add generic tool page template with settings panel and dropzone (0f32ba1)
  • add image-engine and ai stub packages (17ac7b8)
  • add layout tools (collage, splitting, border/frame) (e46dbf6)
  • add live preview callback to RotateSettings, rename button to Apply (17be50b)
  • add live preview callback to RotateSettings, rename button to Apply (06844ec)
  • add login page with split layout matching Stirling-PDF style (2b82f93)
  • add multi-stage Docker build with Python ML dependencies (8d70123)
  • add MultiImageViewer with arrow navigation and filmstrip (1fa8747)
  • add password generator and browser save prompt on change-password page (d56c644)
  • add Phase 4 AI tools with Python bridge and 6 new tools (21df50e)
  • add privacy policy page and fix CSP blocking API docs (3e314f0)
  • add processAllFiles batch method to tool processor hook (cd1e180)
  • add replace-color tool and update tool page routing (d5d09e4)
  • add semantic-release for automated versioning and help dialog (83a0272)
  • add shared package with types, tool definitions, and constants (96ed415)
  • add SideBySideComparison component for resize results (d037305)
  • add SideBySideComparison component for resize results (2d0ba5a)
  • add SQLite database with Drizzle ORM schema and migrations (88c41cf)
  • add Stirling-PDF-style layout with sidebar, tool panel, dropzone, and theme toggle (90f10f4)
  • add Swagger/OpenAPI documentation at /api/docs (0ef1a5a)
  • add theme system with dark/light/system support and persistence (e35d249)
  • add ThumbnailStrip filmstrip component (9caa613)
  • add utility tools (image info, compare, duplicates, color palette, QR, barcode) (e17992e)
  • add Vite + React SPA with Tailwind CSS and routing (9483ad7)
  • add watermark, text overlay, and image composition tools (b2543d9)
  • add worker threads, persistent Python sidecar, graceful shutdown, and architectural improvements (1274cc1)
  • adjustments: add real-time live preview for all color tools (b5c924e)
  • ai: add emit_progress() calls to all Python AI scripts (eb6f57d)
  • ai: add onProgress callback to all AI wrapper functions (021c9f1)
  • ai: rewrite bridge.ts to stream stderr progress via spawn (9d9c45a)
  • api,web: add batch processing with ZIP download and SSE progress (f8aa5f7)
  • api: add all remaining endpoints to OpenAPI spec (e7b38ba)
  • api: add all tool endpoints to OpenAPI spec (753ba3e)
  • api: add generic tool route factory for all image tools (43555c9)
  • api: add llms.txt and llms-full.txt endpoints (12ba52a)
  • api: add logo upload/serve/delete routes with tests (6063f4d)
  • api: add multipart file upload, workspace management, and download routes (415de2a)
  • api: add OpenAPI 3.1 spec skeleton with common schemas (b2189f5)
  • api: add persistent file management helpers to frontend api module (ecbfcce)
  • api: add pipeline execution, save, and list endpoints (d4f1148)
  • api: add resize, crop, rotate, convert, compress, metadata, and color tool routes (4874701)
  • api: add Scalar docs route and install dependency (6f2c319)
  • api: add SingleFileProgress type and SSE update function (12b85d4)
  • 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)
  • api: register docs route in server and test helper (bc6b389)
  • api: wire AI route handlers to SSE progress via clientJobId (a3f85da)
  • 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)
  • conditional result views — side-by-side for resize, live preview for rotate (f0d18be)
  • conditional result views — side-by-side for resize, live preview for rotate (6682649)
  • crop: add CropCanvas component with visual overlay, grid, and keyboard controls (018bbf4)
  • crop: add react-image-crop dependency (b7ecd41)
  • crop: redesign CropSettings with aspect presets, pixel inputs, and grid toggle (d75f458)
  • crop: wire CropCanvas and CropSettings into tool-page with bidirectional state (ea7fb46)
  • db: add teams table and migration (365783b)
  • db: add userFiles table and migration (a2fdbd5)
  • docs: add gem favicon to VitePress site (0918f93)
  • docs: add gem logo to GitHub Pages nav bar and home hero (f0b8162)
  • docs: add llms.txt and llms-full.txt to GitHub Pages (5f6959a)
  • docs: add llms.txt links to GitHub Pages footer (b874445)
  • env: add FILES_STORAGE_PATH config variable (3c737a6)
  • erase-object: replace mask upload with in-browser brush painting (40e3081)
  • extract auto-orient utility and expand test coverage (8622c4a)
  • 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)
  • harden auth, security headers, SVG sanitization, and pipeline ownership (beaad1d)
  • i18n: add translation keys for settings phase 1 (c5ff80a)
  • image-engine: add Sharp wrapper with 14 image operations (3e7f71c)
  • image-to-pdf: add live PDF page preview with margin visualization (cd666ea)
  • implement Files page with persistent storage and version tracking (f6183d2)
  • initialize Turborepo monorepo with pnpm workspaces (db31cf6)
  • integrate MultiImageViewer and multi-file UX into tool page (52aab1e)
  • make AI tools pipeline-compatible and add search to tool picker (2d46b09)
  • merge multi-image UX — batch processing, filmstrip navigation, resize/rotate redesign (9bfdb75)
  • multi-arch Docker support, security hardening, and test improvements (748d2b7)
  • multi-file metadata display with per-file caching (42b59f3)
  • pipeline: add inline settings configuration for automation steps (827eae8)
  • production Docker, Playwright tests, settings API, and bug fixes (027c515)
  • replace model dropdown with intuitive subject/quality selector in remove-bg (bc26d60)
  • rewrite file-store with FileEntry model for multi-image support (abbb3e4)
  • rewrite resize settings with tab-based UI (presets, custom, scale) (b9f3ac0)
  • rewrite resize settings with tab-based UI (presets, custom, scale) (3b39a8c)
  • rotate: add editable angle input and fine-tune +/- buttons (e1f04c2)
  • serve React SPA from Fastify in production mode (d4ae4d5)
  • 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)
  • upgrade to BiRefNet SOTA background removal model (f53937b)
  • web: add before/after image comparison slider component (64c8f90)
  • web: add fullscreen tool grid view (86b716b)
  • web: add i18n architecture with English translations (994cba7)
  • web: add keyboard shortcuts for tool navigation (e06e44c)
  • web: add mobile responsive layout with bottom navigation (ade6469)
  • web: add pipeline builder UI with saved automations and templates (39a7bf2)
  • web: add ProgressCard component (ed69488)
  • web: add ProgressCard to non-AI tool settings (Group A) (17035e9)
  • web: add settings dialog with general, security, API keys, and about sections (bca8e81)
  • web: add Stirling-PDF-style file preview, review panel, and tool chaining UX (e12fc57)
  • web: add tool settings UI for all core image tools (f9be6d6)
  • web: migrate AI tool settings to ProgressCard (eed4fc2)
  • web: redesign home page upload flow and add auth guard (915a8cc)
  • web: rewrite useToolProcessor with XHR upload progress and SSE (305f50b)
  • wire up batch processing across tool settings components (1d87091)

0.19.0 (2026-03-29)

Features

  • add privacy policy page and fix CSP blocking API docs (3e314f0)

0.18.0 (2026-03-29)

Features

  • add worker threads, persistent Python sidecar, graceful shutdown, and architectural improvements (1274cc1)

0.17.7 (2026-03-28)

Bug Fixes

  • move health diagnostics behind admin auth (ee9a20f)
  • reject HTML tags in settings API to prevent stored XSS (d5bd011)
  • simplify public health to static response, add 403 test (9c05da6)
  • switch README Docker references from GHCR to Docker Hub (9e15679)
  • use two-pass validation in settings PUT to prevent partial writes (2dc39d3)

0.17.6 (2026-03-28)

Bug Fixes

  • resolve pipeline step race condition and infinite re-render loop (e0177d4)
  • show checkerboard behind transparent images in before/after slider (73741e6)

0.17.5 (2026-03-28)

Bug Fixes

  • sync stepsRef during render, not useEffect (0c86744)

0.17.4 (2026-03-28)

Bug Fixes

  • prevent stale closure in pipeline step callbacks (c67f002)

0.17.3 (2026-03-28)

Bug Fixes

  • clear search when adding a step from the tool picker (ae2e63f)

0.17.2 (2026-03-28)

Bug Fixes

  • prevent pipeline step settings from resetting on collapse (d899ef1)

0.17.1 (2026-03-28)

Bug Fixes

  • add remove-background settings to pipeline step configurator (ae5ac81)

0.17.0 (2026-03-28)

Features

  • make AI tools pipeline-compatible and add search to tool picker (2d46b09)

0.16.4 (2026-03-28)

Bug Fixes

  • surface hidden errors and add batch rejection tests (2f8e2ce)

0.16.3 (2026-03-28)

Bug Fixes

  • remove Google Drive coming soon placeholder from files nav (e487fe0)

0.16.2 (2026-03-28)

Bug Fixes

  • pipeline only shows compatible tools and displays errors (fe021c1)

0.16.1 (2026-03-28)

Bug Fixes

  • trigger browser password save prompt on password change (6b279ad)

0.16.0 (2026-03-28)

Features

  • add password generator and browser save prompt on change-password page (d56c644)

0.15.0 (2026-03-28)

Features

  • add forced password change page on first login (e0900a8)

0.14.2 (2026-03-28)

Bug Fixes

  • tests: remove temp DB cleanup that races with other test files (498bfb3)

0.14.1 (2026-03-28)

Bug Fixes

  • handle migration race condition in concurrent test workers (d576ab1)

0.14.0 (2026-03-28)

Features

  • multi-arch Docker support, security hardening, and test improvements (748d2b7)

0.13.1 (2026-03-27)

Bug Fixes

  • docs: remove hero logo from home page (64c0ec8)

0.13.0 (2026-03-27)

Features

  • docs: add gem logo to GitHub Pages nav bar and home hero (f0b8162)

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
  • userFiles table for persistent file management
  • FILES_STORAGE_PATH config variable for controlling where uploaded files live
  • Tool results auto-save to persistent storage when a fileId is provided

Changed

  • Renamed Tool.alpha to Tool.experimental everywhere
  • Tightened TypeScript types in tool-factory registry (removed any casts)
  • Bumped login attempt limit from 5 to 10
  • Switched isNaN to Number.isNaN in cleanup interval parsing
  • Null-safe team lookup in auth registration

Removed

  • Internal planning docs (docs/superpowers/) and AI tool config 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_VERSION import used by the /health endpoint, fixing version reporting in production

0.5.1 - 2026-03-23

Fixed

  • Crop tool now uses percentCrop from onChange callback, 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 processAllFiles method
  • clientJobId correlation 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 fflate for batch result downloads
  • Per-file metadata display with caching

Fixed

  • White screen crash when uploading photos with null GPS EXIF data
  • TypeScript Uint8Array type incompatibility with fflate

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: tsx binary 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
  • ProgressCard component with determinate progress display for all tool types
  • useToolProcessor hook rewritten with XHR upload progress and SSE event streaming
  • onProgress callback 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 overrides setProcessing(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