Commit Graph
71 Commits
Author SHA1 Message Date
semantic-release-bot 9f2dc00ec8 chore(release): 1.2.1 [skip ci]
## [1.2.1](https://github.com/stirling-image/stirling-image/compare/v1.2.0...v1.2.1) (2026-04-03)

### Bug Fixes

* handle volume permission issues for bind-mounted /data directory ([39afb2a](https://github.com/stirling-image/stirling-image/commit/39afb2a4032f64d49ef897da9b2616fe87668e0c))
2026-04-03 16:17:11 +00:00
semantic-release-bot 7827a374b2 chore(release): 1.2.0 [skip ci]
# [1.2.0](https://github.com/stirling-image/stirling-image/compare/v1.1.0...v1.2.0) (2026-04-03)

### Features

* move theme toggle and GitHub button to top-right navbar ([47e53dc](https://github.com/stirling-image/stirling-image/commit/47e53dc6cd173e5f8731e5bfa38dc12f586a16be))
2026-04-03 15:20:53 +00:00
semantic-release-bot c9f7cf27ec chore(release): 1.1.0 [skip ci]
# [1.1.0](https://github.com/stirling-image/stirling-image/compare/v1.0.1...v1.1.0) (2026-04-03)

### Features

* add GitHub stars button to docs navbar and fix footer license ([47adfde](https://github.com/stirling-image/stirling-image/commit/47adfde5cb450b00a5058354f70dcd633a60d219))
2026-04-03 15:15:03 +00:00
Siddharth Kumar Sah 70b0ceed1c chore: switch to AGPLv3 dual-license
Replace MIT with AGPLv3 + commercial dual-license. Add copyright header
and dual-license notice to LICENSE, add CLA to CONTRIBUTING.md, update
README license section, and update all package.json license fields.
2026-04-03 23:07:58 +08:00
semantic-release-bot acbe15def5 chore(release): 1.0.1 [skip ci]
## [1.0.1](https://github.com/stirling-image/stirling-image/compare/v1.0.0...v1.0.1) (2026-03-30)

### Bug Fixes

* allow SVG files in the convert tool ([4fa8dd0](https://github.com/stirling-image/stirling-image/commit/4fa8dd07804504d56aefb96856f47638dabffefb))
2026-03-30 03:37:53 +00:00
semantic-release-bot 8d875fe6dc chore(release): 1.0.0 [skip ci]
# 1.0.0 (2026-03-30)

### Bug Fixes

* **a11y:** add aria-hidden to decorative GemLogo SVG ([d47548a](https://github.com/stirling-image/stirling-image/commit/d47548a1d7d2de995c881465b79a463de20354df))
* add remove-background settings to pipeline step configurator ([017a715](https://github.com/stirling-image/stirling-image/commit/017a71562ad7b15d7d1abec6cee9f8ab73db2b34))
* add SSE progress endpoint to public paths ([b3f590c](https://github.com/stirling-image/stirling-image/commit/b3f590c8b35fb396cf298187f241e45827ea1db8))
* **api:** allow Scalar docs through auth and CSP ([a46d500](https://github.com/stirling-image/stirling-image/commit/a46d500012e1f0724038c695a17e7dafd9be0c40))
* **api:** resolve team name lookup and show server error messages ([620b8ad](https://github.com/stirling-image/stirling-image/commit/620b8ad038506a03633ab9baf738c6c316fa4336))
* **api:** use content instead of spec.content for Scalar v1.49 API ([05854fd](https://github.com/stirling-image/stirling-image/commit/05854fd61f90a1096e1682ad021d744d178d9b9b))
* apply continuous progress bar to erase-object and OCR ([8db84a7](https://github.com/stirling-image/stirling-image/commit/8db84a753cd8dbd522146aa25e85bb454b032490))
* **blur-faces:** switch from MediaPipe to OpenCV and auto-orient images ([f15102c](https://github.com/stirling-image/stirling-image/commit/f15102c632d3fcbc5d33b33fd9cfdea5e4689eb6))
* bridge.ts ENOENT check for Python venv fallback ([977b5f5](https://github.com/stirling-image/stirling-image/commit/977b5f5ec0fdc6600e88b57734d8616a89b7c446))
* clear search when adding a step from the tool picker ([7b1b019](https://github.com/stirling-image/stirling-image/commit/7b1b019b772a9e36d51e2d696cd5e15312ddc704))
* continuous progress bar (no 100%→0% reset) ([28cd950](https://github.com/stirling-image/stirling-image/commit/28cd950ede6d0fc03e0d7cca0a013d883ea00238))
* **crop:** use percentCrop from onChange to fix inflated pixel values ([fbdbe09](https://github.com/stirling-image/stirling-image/commit/fbdbe0949a64d072e4e86d08c7b39372592eaf04))
* deduplicate react in Vite to prevent zustand hook errors in monorepo ([e8dfd2e](https://github.com/stirling-image/stirling-image/commit/e8dfd2e628e80734a613b56c46830071e9dbeeac))
* **docker:** add build layer caching for faster Docker rebuilds ([14c630f](https://github.com/stirling-image/stirling-image/commit/14c630ff23d973aa9d512ed87ede049ebd4b600f))
* **docker:** skip husky prepare script in production install ([200e7d1](https://github.com/stirling-image/stirling-image/commit/200e7d10c1cbffeeeae95434b4ae8f2d6b69b8a0))
* **docs:** clean up footer llms.txt links ([a4d4d36](https://github.com/stirling-image/stirling-image/commit/a4d4d368286a80decf73563ca6d7e7cae119099a))
* **docs:** ignore localhost dead links in VitePress build ([5c4b2a5](https://github.com/stirling-image/stirling-image/commit/5c4b2a59d3a9f1fa2dd428fd626f2bbbb9e3fea6))
* **docs:** remove hero logo from home page ([d3f6bac](https://github.com/stirling-image/stirling-image/commit/d3f6bac62b7e01e3a39371a1a52d865909412117))
* handle migration race condition in concurrent test workers ([ce51065](https://github.com/stirling-image/stirling-image/commit/ce5106524333b9bc7ee214b699d76e4b52371519))
* make port 1349 the UI port in all modes ([80bb0e2](https://github.com/stirling-image/stirling-image/commit/80bb0e29a064ad8b4787eb83b11333f67ffbdc8a))
* move health diagnostics behind admin auth ([818e587](https://github.com/stirling-image/stirling-image/commit/818e5877a773e6af48f9530199c6fa52e207bd50))
* **ocr:** update PaddleOCR for v3 API and add Tesseract fallback ([f71c3c8](https://github.com/stirling-image/stirling-image/commit/f71c3c8c05bc7203d37a46743bebb62b79c8ac51))
* pipeline only shows compatible tools and displays errors ([0410bf3](https://github.com/stirling-image/stirling-image/commit/0410bf34610aa56391615ab3a95ea77a12668743))
* prevent pipeline step settings from resetting on collapse ([9acbedf](https://github.com/stirling-image/stirling-image/commit/9acbedf4b75c6314f659e94f9d0721a40595201d))
* prevent stale closure in pipeline step callbacks ([8b20fef](https://github.com/stirling-image/stirling-image/commit/8b20fef2d8123411faa2c2379693136af6b0f9ba))
* prevent useAuth infinite loop causing rate limit storms ([3b4f522](https://github.com/stirling-image/stirling-image/commit/3b4f522bf4d63109254edc22baca568fdfd7dd98))
* Python bridge fallback only on missing venv, not script errors ([818d2ac](https://github.com/stirling-image/stirling-image/commit/818d2acd9471295408198a37b6d40bd63795fe17))
* reject HTML tags in settings API to prevent stored XSS ([8a62093](https://github.com/stirling-image/stirling-image/commit/8a6209313052371c123c5996cb41b9e431251874))
* remove explicit pnpm version from CI to avoid conflict with packageManager ([8aa4c35](https://github.com/stirling-image/stirling-image/commit/8aa4c35db0d8fc5900acd496116e72b768c2e568))
* remove Google Drive coming soon placeholder from files nav ([658954e](https://github.com/stirling-image/stirling-image/commit/658954ea19e17d1af83d45229ec40397de376042))
* resolve 3 critical UX bugs - home upload, auth, and form submit ([de82900](https://github.com/stirling-image/stirling-image/commit/de829003add3758024962ca3cc9b7a111688ca1b))
* resolve pipeline step race condition and infinite re-render loop ([aa1f87f](https://github.com/stirling-image/stirling-image/commit/aa1f87fc91e0b5edd93c6720fcc54a839e51893a))
* resolve test failures from shared DB race conditions ([b474480](https://github.com/stirling-image/stirling-image/commit/b474480698695cda2eaf2c9ae642ac3ffd15d007))
* resolve tsx not found in AI docs updater workflow ([b803b0e](https://github.com/stirling-image/stirling-image/commit/b803b0e443b54bbca33cf88fe1ab38eeddd38baf))
* resolve TypeScript Uint8Array type error with fflate ([1d35db9](https://github.com/stirling-image/stirling-image/commit/1d35db98bf359c07779522c30b00d8c7a9d3cb89))
* restore APP_VERSION import used by health endpoint ([7dfa7a2](https://github.com/stirling-image/stirling-image/commit/7dfa7a295de407f45832b68a2ef64acf2f21205f))
* setError(null) was overriding setProcessing(true) ([b5cc452](https://github.com/stirling-image/stirling-image/commit/b5cc45207758c25867833fad961744a37df36fda))
* show checkerboard behind transparent images in before/after slider ([2e29501](https://github.com/stirling-image/stirling-image/commit/2e29501ae6f1652cc3d0e9193863aeddb18513af))
* simplify public health to static response, add 403 test ([4577d5c](https://github.com/stirling-image/stirling-image/commit/4577d5c30ea53c72b02490b78b6765295e55213a))
* streamline CI/CD — remove broken AI docs updater, fix Docker publish ([4f984c8](https://github.com/stirling-image/stirling-image/commit/4f984c83acc4bfaa5b9479d80e2bdda05f4a2ccc))
* surface hidden errors and add batch rejection tests ([4a50428](https://github.com/stirling-image/stirling-image/commit/4a504281a34561b47b60d00edaf8914f5a8e0197))
* switch README Docker references from GHCR to Docker Hub ([fb84f5c](https://github.com/stirling-image/stirling-image/commit/fb84f5ce8d175e568cce20caddcf79832d0bb973))
* sync stepsRef during render, not useEffect ([748ac60](https://github.com/stirling-image/stirling-image/commit/748ac607bc71892c588e6a1795d258d4fc7f3413))
* **test:** add missing PNG fixture files to repo ([8474b0e](https://github.com/stirling-image/stirling-image/commit/8474b0ee52fe803c55247a082becc4334e83186f))
* **test:** exclude e2e tests from vitest and fix CI test suite ([91acab9](https://github.com/stirling-image/stirling-image/commit/91acab9967e2b5dd7dbc7a98e667f785f3e7364e))
* **tests:** remove temp DB cleanup that races with other test files ([b08e006](https://github.com/stirling-image/stirling-image/commit/b08e006512744f13b893e92e9ac20ee6299ab41c))
* trigger browser password save prompt on password change ([565b480](https://github.com/stirling-image/stirling-image/commit/565b4805c7b32af66bb07543c6d3bae2865dbbdd))
* **ui:** clean up settings, automate page, fullscreen logo, and README ([e3a8558](https://github.com/stirling-image/stirling-image/commit/e3a85581349b6a992939b08ede932705613d915f))
* unify project on port 1349, improve strip-metadata and UI components ([0e7348a](https://github.com/stirling-image/stirling-image/commit/0e7348a0bedb6c47a8025c47b377849169aa7472))
* **upscale:** auto-orient images before upscaling and improve UI ([8ee4d7b](https://github.com/stirling-image/stirling-image/commit/8ee4d7b2fb3f88b2869ada8d6a6c5fb0df432e3b))
* use BiRefNet-Lite as default model and fix JSON parsing ([2bdc367](https://github.com/stirling-image/stirling-image/commit/2bdc367767300e414c69636e8fef3013c9096c28))
* use two-pass validation in settings PUT to prevent partial writes ([813fa6b](https://github.com/stirling-image/stirling-image/commit/813fa6b7e8d8e371959cff4d4a2a85ece4a636bb))
* use U2-Net as default model (fast, 2s) with BiRefNet as opt-in ([fb1d366](https://github.com/stirling-image/stirling-image/commit/fb1d366d5fa5cb9c054deceb597a2e4a30229c8c))
* white screen crash when uploading photos with null GPS EXIF data ([70c73d8](https://github.com/stirling-image/stirling-image/commit/70c73d85c992bc724c6b18a2d43789871b318e78))

### Features

* accept clientJobId in batch endpoint for SSE progress correlation ([2514078](https://github.com/stirling-image/stirling-image/commit/2514078ea1feb8e44296e226e37e8e379a20473a))
* add authentication with default admin user ([3cb7123](https://github.com/stirling-image/stirling-image/commit/3cb712307011f0992783d421c5ffc8b4957bd6f5))
* add automatic workspace file cleanup cron ([8bda220](https://github.com/stirling-image/stirling-image/commit/8bda22033f511cef7304725e8887e10faf5e0e9d))
* add CSS transform props to ImageViewer for live rotate/flip preview ([113bb75](https://github.com/stirling-image/stirling-image/commit/113bb757333e9ad809a401000f3b6b34fa1ef415))
* add CSS transform props to ImageViewer for live rotate/flip preview ([267da78](https://github.com/stirling-image/stirling-image/commit/267da7857743898e612ba5bb80e24985664bd311))
* add Fastify API server with health check and env config ([1e7fb11](https://github.com/stirling-image/stirling-image/commit/1e7fb11da0fac730ccd1dc6f8a1a99a3abeaf945))
* add forced password change page on first login ([01cd1d9](https://github.com/stirling-image/stirling-image/commit/01cd1d9f71427319284579b438ad08ede56517a6))
* add format tools (SVG-to-raster, vectorize, GIF) and optimization (rename, favicon, image-to-PDF) ([b88d0d0](https://github.com/stirling-image/stirling-image/commit/b88d0d0af8285ce6e802713897de7d262bcd8a8b))
* add generic tool page template with settings panel and dropzone ([de3d544](https://github.com/stirling-image/stirling-image/commit/de3d544ab6e199b3452fb24ba9a987dc9abc3648))
* add image-engine and ai stub packages ([19e4820](https://github.com/stirling-image/stirling-image/commit/19e48203bb14e4061a677fc9e760a15b01ac366f))
* add layout tools (collage, splitting, border/frame) ([b8aba17](https://github.com/stirling-image/stirling-image/commit/b8aba1719c4ca99fe4a26065dae796c1a4233155))
* add live preview callback to RotateSettings, rename button to Apply ([31a9439](https://github.com/stirling-image/stirling-image/commit/31a943962d46fab1eb1efd9f605fc5a0144ddd87))
* add live preview callback to RotateSettings, rename button to Apply ([ec192e3](https://github.com/stirling-image/stirling-image/commit/ec192e3d96d864e3ce47e991ba1c72d6a4ee7cea))
* add login page with split layout matching Stirling-PDF style ([b7900ed](https://github.com/stirling-image/stirling-image/commit/b7900ed4efb467a34dd3b71dc578416120f7746c))
* add multi-stage Docker build with Python ML dependencies ([5c7d1e1](https://github.com/stirling-image/stirling-image/commit/5c7d1e1f3d7e32642c9ba3053610138d73cb22d7))
* add MultiImageViewer with arrow navigation and filmstrip ([815a8ed](https://github.com/stirling-image/stirling-image/commit/815a8ed419b82aadec4e07ef4456e9e96b84b65f))
* add password generator and browser save prompt on change-password page ([7c76c2a](https://github.com/stirling-image/stirling-image/commit/7c76c2a2a0116de8418b0438a3859fc1add419e3))
* add Phase 4 AI tools with Python bridge and 6 new tools ([5524939](https://github.com/stirling-image/stirling-image/commit/5524939b6fae9471a615c2f689b2f3fa68190700))
* add privacy policy page and fix CSP blocking API docs ([7f17cb9](https://github.com/stirling-image/stirling-image/commit/7f17cb98ce4b6979f18c34e3a3a94b79fc462e82))
* add processAllFiles batch method to tool processor hook ([846a51a](https://github.com/stirling-image/stirling-image/commit/846a51a9fdf4e8fc4c1b9673f13acde646ae0ca9))
* add replace-color tool and update tool page routing ([9c55dd3](https://github.com/stirling-image/stirling-image/commit/9c55dd32c42e0f8f2f129a2ceccc9b7f6e823de8))
* add semantic-release for automated versioning and help dialog ([4807bd2](https://github.com/stirling-image/stirling-image/commit/4807bd27260aab512d8c71d1b635b71d644b6221))
* add shared package with types, tool definitions, and constants ([f210de1](https://github.com/stirling-image/stirling-image/commit/f210de1a130a6307ff3639c8ccf573950ce0e460))
* add SideBySideComparison component for resize results ([28a8b10](https://github.com/stirling-image/stirling-image/commit/28a8b10fa15fa216d7f53256bea9461650358fb1))
* add SideBySideComparison component for resize results ([271cab6](https://github.com/stirling-image/stirling-image/commit/271cab647bb41872c5e205d6236e35eb7fad0810))
* add SQLite database with Drizzle ORM schema and migrations ([a24c6dd](https://github.com/stirling-image/stirling-image/commit/a24c6dd014ebec2af1cf5d8f17c2b7a8a4e6715c))
* add Stirling-PDF-style layout with sidebar, tool panel, dropzone, and theme toggle ([e920021](https://github.com/stirling-image/stirling-image/commit/e920021da1cc6e5fdb4e479205fe0861567621c7))
* add Swagger/OpenAPI documentation at /api/docs ([4069f4d](https://github.com/stirling-image/stirling-image/commit/4069f4db42e6ed8700b705ff4da32c6dab8f0197))
* add theme system with dark/light/system support and persistence ([541e495](https://github.com/stirling-image/stirling-image/commit/541e49576ced03c8eafe5a8c2d6994da21606094))
* add ThumbnailStrip filmstrip component ([6521d70](https://github.com/stirling-image/stirling-image/commit/6521d702385f23a7cb9312c1661541943bfe2e03))
* add utility tools (image info, compare, duplicates, color palette, QR, barcode) ([0c3c64e](https://github.com/stirling-image/stirling-image/commit/0c3c64eeace536684345e1c9822481e282577796))
* add Vite + React SPA with Tailwind CSS and routing ([5fa012e](https://github.com/stirling-image/stirling-image/commit/5fa012e44b32984e9c163cafed04eb89d3dc6436))
* add watermark, text overlay, and image composition tools ([aeaf783](https://github.com/stirling-image/stirling-image/commit/aeaf783ee412acaa38c81b090445570769f4cec8))
* add worker threads, persistent Python sidecar, graceful shutdown, and architectural improvements ([1cbdfa1](https://github.com/stirling-image/stirling-image/commit/1cbdfa15900a58a5db23361167d3ed71d59bf189))
* **adjustments:** add real-time live preview for all color tools ([f357b18](https://github.com/stirling-image/stirling-image/commit/f357b18ced8757da0a6c34f18541bb8875c2199a))
* **ai:** add emit_progress() calls to all Python AI scripts ([7238429](https://github.com/stirling-image/stirling-image/commit/723842988b39a8d9ea4f5b0cdd97569ff0c65f68))
* **ai:** add onProgress callback to all AI wrapper functions ([acb230c](https://github.com/stirling-image/stirling-image/commit/acb230cc98193766fc978098c12dfedf08a0a339))
* **ai:** rewrite bridge.ts to stream stderr progress via spawn ([7d74ddd](https://github.com/stirling-image/stirling-image/commit/7d74ddd3a6a466f1863412b36501c663fd642194))
* **api,web:** add batch processing with ZIP download and SSE progress ([ce64116](https://github.com/stirling-image/stirling-image/commit/ce641168c1db26b184480d588184205373a3e397))
* **api:** add all remaining endpoints to OpenAPI spec ([9ed1090](https://github.com/stirling-image/stirling-image/commit/9ed109065189f20545eb24893c2c0b9332e40249))
* **api:** add all tool endpoints to OpenAPI spec ([2bf8689](https://github.com/stirling-image/stirling-image/commit/2bf86894d0005ff4c273334699c30de1fcb38ee6))
* **api:** add generic tool route factory for all image tools ([d53f673](https://github.com/stirling-image/stirling-image/commit/d53f6733b8b5d44754c9525eae57aaba928590b7))
* **api:** add llms.txt and llms-full.txt endpoints ([cff1930](https://github.com/stirling-image/stirling-image/commit/cff1930920c488fc853eab5aa36128fac19b3bf5))
* **api:** add logo upload/serve/delete routes with tests ([6a13065](https://github.com/stirling-image/stirling-image/commit/6a1306570660d4962f89e741dfb684d2ed0e7f6c))
* **api:** add multipart file upload, workspace management, and download routes ([ece341e](https://github.com/stirling-image/stirling-image/commit/ece341e8c49be8d1def42834c01b5a7725b55d9c))
* **api:** add OpenAPI 3.1 spec skeleton with common schemas ([9488201](https://github.com/stirling-image/stirling-image/commit/948820180663783d463a07f966dd4336c1a7c503))
* **api:** add persistent file management helpers to frontend api module ([8a3a731](https://github.com/stirling-image/stirling-image/commit/8a3a731267f4e3cd84a01a78d89975197ce2ebad))
* **api:** add pipeline execution, save, and list endpoints ([263447a](https://github.com/stirling-image/stirling-image/commit/263447a81e9db7ef3bc840e69b5c9b9ad0d88c86))
* **api:** add resize, crop, rotate, convert, compress, metadata, and color tool routes ([37112af](https://github.com/stirling-image/stirling-image/commit/37112af779d491e8f8d585d6ade9e5a8d4fafba0))
* **api:** add Scalar docs route and install dependency ([abb2916](https://github.com/stirling-image/stirling-image/commit/abb2916233de85e62675e609b9d497dcc0a01882))
* **api:** add SingleFileProgress type and SSE update function ([7eddac5](https://github.com/stirling-image/stirling-image/commit/7eddac5119d1db3cbf831c735c5b78f0c92728ef))
* **api:** add teams CRUD routes and update auth team references ([ab370a7](https://github.com/stirling-image/stirling-image/commit/ab370a74fefebc8735e337f9b42e48ab6625c5b4))
* **api:** add tool filtering and DB-backed cleanup settings ([acfff75](https://github.com/stirling-image/stirling-image/commit/acfff754b54b5f9be474c6db6eb39b3cbf91fc21))
* **api:** add user files CRUD routes at /api/v1/files/* ([4e2aa58](https://github.com/stirling-image/stirling-image/commit/4e2aa5876701ef56514957a30fe63c27c615cf05))
* **api:** register docs route in server and test helper ([849878e](https://github.com/stirling-image/stirling-image/commit/849878e72fc0e5cb3e775afeea802dac933c4e13))
* **api:** wire AI route handlers to SSE progress via clientJobId ([27600a4](https://github.com/stirling-image/stirling-image/commit/27600a431805d54b32875dbe5a58f05cfcdbe2a1))
* **branding:** add faceted gem SVG logo assets ([0214ac1](https://github.com/stirling-image/stirling-image/commit/0214ac11b1ba4142349c09fd2465a425b4e8dd6b))
* **branding:** add favicon and meta tags to index.html ([0364927](https://github.com/stirling-image/stirling-image/commit/036492725eea6cb6b4c0aff307edeee8516ec280))
* **branding:** add OG social preview image ([dcd926c](https://github.com/stirling-image/stirling-image/commit/dcd926c57e9877c2b47e70c494b679f0c00d93d6))
* **branding:** add PWA manifest and PNG logo assets ([26cc183](https://github.com/stirling-image/stirling-image/commit/26cc18342fb6d4027f2130b198090469e27ef797))
* **branding:** show gem icon in app header as default logo ([39dfb93](https://github.com/stirling-image/stirling-image/commit/39dfb93679765366253115240adcbc573e83b8e7))
* conditional result views — side-by-side for resize, live preview for rotate ([989e8dc](https://github.com/stirling-image/stirling-image/commit/989e8dc6e47fe123d6333dddf4431a01623e0437))
* conditional result views — side-by-side for resize, live preview for rotate ([59a57f3](https://github.com/stirling-image/stirling-image/commit/59a57f3a00bbd0c6331d1165594ad4266ce3b536))
* **crop:** add CropCanvas component with visual overlay, grid, and keyboard controls ([1a076be](https://github.com/stirling-image/stirling-image/commit/1a076be9b2cc5f434296f2739a395321368c2177))
* **crop:** add react-image-crop dependency ([31d426f](https://github.com/stirling-image/stirling-image/commit/31d426ff6f02965d20e75e85ff15a8cbc1d1df0b))
* **crop:** redesign CropSettings with aspect presets, pixel inputs, and grid toggle ([c2c256a](https://github.com/stirling-image/stirling-image/commit/c2c256a180640cf046bd1bc46b05065171a4c2dc))
* **crop:** wire CropCanvas and CropSettings into tool-page with bidirectional state ([786a671](https://github.com/stirling-image/stirling-image/commit/786a671c39859ae0bf1f8732c2ff4efe210d2466))
* **db:** add teams table and migration ([926b52d](https://github.com/stirling-image/stirling-image/commit/926b52d33045dc1f15192bb65d4f005f6c82ce00))
* **db:** add userFiles table and migration ([dda37e9](https://github.com/stirling-image/stirling-image/commit/dda37e90cc294140c236332563befae0a3b02852))
* **docs:** add gem favicon to VitePress site ([42ec0f2](https://github.com/stirling-image/stirling-image/commit/42ec0f2490267f2e3730764539bdd2920b7b3793))
* **docs:** add gem logo to GitHub Pages nav bar and home hero ([98478e2](https://github.com/stirling-image/stirling-image/commit/98478e271934c8b3deb1b3003d88fe1a165e75a0))
* **docs:** add llms.txt and llms-full.txt to GitHub Pages ([e6dc7b0](https://github.com/stirling-image/stirling-image/commit/e6dc7b0a18d3d022de4e2f0b971bf25678042b3a))
* **docs:** add llms.txt links to GitHub Pages footer ([c59e4a0](https://github.com/stirling-image/stirling-image/commit/c59e4a06686db62ad8ec134ec1c97080673fbcb3))
* **env:** add FILES_STORAGE_PATH config variable ([4927f57](https://github.com/stirling-image/stirling-image/commit/4927f574badda883ad72ba05c30a8d9fae973ee6))
* **erase-object:** replace mask upload with in-browser brush painting ([40656a0](https://github.com/stirling-image/stirling-image/commit/40656a0452109c1d6ea2441b2735b0ffaf4f3867))
* extract auto-orient utility and expand test coverage ([e5086ad](https://github.com/stirling-image/stirling-image/commit/e5086ada6e2f4402973f203b726578dd42da4a32))
* **files:** add Files page with nav, list, details, upload, and routing ([788b8c8](https://github.com/stirling-image/stirling-image/commit/788b8c8bad8cf6800137f4764f5a50ac80845f2f))
* **files:** add mobile layout for Files page ([c99f43f](https://github.com/stirling-image/stirling-image/commit/c99f43fe60aac2a7babeb7cea39e140281936009))
* **files:** wire serverFileId for version tracking ([20f153d](https://github.com/stirling-image/stirling-image/commit/20f153d611c9dec478ab89cd050c6c65b0e41287))
* harden auth, security headers, SVG sanitization, and pipeline ownership ([432cc92](https://github.com/stirling-image/stirling-image/commit/432cc92471b73b73ab9d1be4a82a71d3ed3a88ad))
* **i18n:** add translation keys for settings phase 1 ([ffb676d](https://github.com/stirling-image/stirling-image/commit/ffb676d648027804e653b868139f349b5a3c6c96))
* **image-engine:** add Sharp wrapper with 14 image operations ([ccac5b8](https://github.com/stirling-image/stirling-image/commit/ccac5b885c327656eb76241a74be7e510ca32903))
* **image-to-pdf:** add live PDF page preview with margin visualization ([ddde152](https://github.com/stirling-image/stirling-image/commit/ddde152545456770ec4a97418968c2ad309a88e0))
* implement Files page with persistent storage and version tracking ([62fbb54](https://github.com/stirling-image/stirling-image/commit/62fbb5484c669b74132b4ecd23576bf0ba5b50b2))
* initialize Turborepo monorepo with pnpm workspaces ([58fbb38](https://github.com/stirling-image/stirling-image/commit/58fbb38fd88973522ac894dc6237aeabd7849b64))
* integrate MultiImageViewer and multi-file UX into tool page ([3796533](https://github.com/stirling-image/stirling-image/commit/37965338228a2fca3623718a7db2f8757a464651))
* make AI tools pipeline-compatible and add search to tool picker ([c48bfba](https://github.com/stirling-image/stirling-image/commit/c48bfba879f55591e03a0918d9b8de9618cc8dc0))
* merge multi-image UX — batch processing, filmstrip navigation, resize/rotate redesign ([80756d1](https://github.com/stirling-image/stirling-image/commit/80756d15917a877b21a900d282bb6522ae76c2e2))
* multi-arch Docker support, security hardening, and test improvements ([6cfa3b0](https://github.com/stirling-image/stirling-image/commit/6cfa3b0c38d81a19b230e1bdbad750dce2783afb))
* multi-file metadata display with per-file caching ([474b4a9](https://github.com/stirling-image/stirling-image/commit/474b4a941e1be43887beac8d2ec57eb703cba260))
* **pipeline:** add inline settings configuration for automation steps ([adc7e1c](https://github.com/stirling-image/stirling-image/commit/adc7e1c0370df1687b0660bdff279c90ac9d0871))
* production Docker, Playwright tests, settings API, and bug fixes ([ce03aad](https://github.com/stirling-image/stirling-image/commit/ce03aad10f00f173a3b82a478288626ee8f00e32))
* replace model dropdown with intuitive subject/quality selector in remove-bg ([9aa0371](https://github.com/stirling-image/stirling-image/commit/9aa0371a1452540557aca9f2195032c5c16ce3fb))
* rewrite file-store with FileEntry model for multi-image support ([8844b44](https://github.com/stirling-image/stirling-image/commit/8844b44fff2abfbe3262a113dfc35d83367add05))
* rewrite resize settings with tab-based UI (presets, custom, scale) ([02ef3e6](https://github.com/stirling-image/stirling-image/commit/02ef3e6468b36303dfdbc61e18c14dc5eb68d957))
* rewrite resize settings with tab-based UI (presets, custom, scale) ([bc105fd](https://github.com/stirling-image/stirling-image/commit/bc105fd261de3c11b279557dba98aaad65214f42))
* **rotate:** add editable angle input and fine-tune +/- buttons ([bf62820](https://github.com/stirling-image/stirling-image/commit/bf6282006489a4cadcd849b476e97239e3624673))
* serve React SPA from Fastify in production mode ([1d8761a](https://github.com/stirling-image/stirling-image/commit/1d8761a976f2e1006526496e2fd67c27be757991))
* **storage:** add file storage helpers module ([fbca20d](https://github.com/stirling-image/stirling-image/commit/fbca20d78c213e0b7f00f6c59eae4af32123a587))
* **stores:** add Zustand store for Files page state management ([24644c1](https://github.com/stirling-image/stirling-image/commit/24644c1c1052146a2b581ffc3a791a9276fab6a1))
* **tool-factory:** auto-save results to persistent file store when fileId provided ([bf6c30c](https://github.com/stirling-image/stirling-image/commit/bf6c30c3c0d9beeaa24a7b7b998de9354ec7e353))
* **ui:** add teams, tools, feature flags, temp files, logo to settings dialog ([4b2621d](https://github.com/stirling-image/stirling-image/commit/4b2621d9f2c5fcc930baf9ed1a6b555de77f0b93))
* upgrade to BiRefNet SOTA background removal model ([77ee846](https://github.com/stirling-image/stirling-image/commit/77ee8469d89fa29f29fbba1360e139b2a502d70f))
* **web:** add before/after image comparison slider component ([1a22522](https://github.com/stirling-image/stirling-image/commit/1a22522349619b726630467b751f08775f16bd07))
* **web:** add fullscreen tool grid view ([6d67b10](https://github.com/stirling-image/stirling-image/commit/6d67b106ca5fd5a475c3d2cac4b6aecd23fc06cd))
* **web:** add i18n architecture with English translations ([cd020c2](https://github.com/stirling-image/stirling-image/commit/cd020c2342d430480a43a7f6469034ca6f9ef1ed))
* **web:** add keyboard shortcuts for tool navigation ([939bc2e](https://github.com/stirling-image/stirling-image/commit/939bc2e001a509044f96f9557434c255abb47adc))
* **web:** add mobile responsive layout with bottom navigation ([580208d](https://github.com/stirling-image/stirling-image/commit/580208de83349362b27b3a8a6db3370fc2770d0e))
* **web:** add pipeline builder UI with saved automations and templates ([60541c1](https://github.com/stirling-image/stirling-image/commit/60541c1765b3c31679d345dbde3c00a7085e8712))
* **web:** add ProgressCard component ([01d5d66](https://github.com/stirling-image/stirling-image/commit/01d5d66466a7bcf4a0c0f454f7b4d58f7e1e7801))
* **web:** add ProgressCard to non-AI tool settings (Group A) ([5c64b30](https://github.com/stirling-image/stirling-image/commit/5c64b306ead8b6214dee6d51e8dae25fb47ff7e8))
* **web:** add settings dialog with general, security, API keys, and about sections ([0cd3d71](https://github.com/stirling-image/stirling-image/commit/0cd3d71a631b3573cda24f4b0db5ff9d77b85abd))
* **web:** add Stirling-PDF-style file preview, review panel, and tool chaining UX ([ab0b034](https://github.com/stirling-image/stirling-image/commit/ab0b0344b964eb7481af0d2df0420db99aea6428))
* **web:** add tool settings UI for all core image tools ([8964bc5](https://github.com/stirling-image/stirling-image/commit/8964bc5cd89d6e08ed6ba408b1c64b7bed9fb3cb))
* **web:** migrate AI tool settings to ProgressCard ([dbd3bf7](https://github.com/stirling-image/stirling-image/commit/dbd3bf737e4692279ba5b7c3d860779193a21b5f))
* **web:** redesign home page upload flow and add auth guard ([06c5ee5](https://github.com/stirling-image/stirling-image/commit/06c5ee59962fb6a2e520b72f487061f8d58e8648))
* **web:** rewrite useToolProcessor with XHR upload progress and SSE ([60945fd](https://github.com/stirling-image/stirling-image/commit/60945fd3b3674d2026f3f717cd3d123951126933))
* wire up batch processing across tool settings components ([9e2c28f](https://github.com/stirling-image/stirling-image/commit/9e2c28f19124fca4bc4f55c0997e2314170ae478))
2026-03-30 00:28:23 +00:00
semantic-release-bot 8f98b745ff chore(release): 0.19.0 [skip ci]
# [0.19.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.18.0...v0.19.0) (2026-03-29)

### Features

* add privacy policy page and fix CSP blocking API docs ([7f17cb9](https://github.com/siddharthksah/Stirling-Image/commit/7f17cb98ce4b6979f18c34e3a3a94b79fc462e82))
2026-03-29 15:57:41 +00:00
semantic-release-bot d7a917b995 chore(release): 0.18.0 [skip ci]
# [0.18.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.17.7...v0.18.0) (2026-03-29)

### Features

* add worker threads, persistent Python sidecar, graceful shutdown, and architectural improvements ([1cbdfa1](https://github.com/siddharthksah/Stirling-Image/commit/1cbdfa15900a58a5db23361167d3ed71d59bf189))
2026-03-29 09:24:13 +00:00
Siddharth Kumar Sah 1cbdfa1590 feat: add worker threads, persistent Python sidecar, graceful shutdown, and architectural improvements
- Graceful shutdown: SIGTERM/SIGINT handlers drain HTTP, stop workers, close DB
- Thumbnail caching: disk-cached thumbnails with immutable Cache-Control headers
- Worker thread pool: Piscina offloads Sharp processing off the main event loop
- Persistent Python dispatcher: pre-imports ML libraries, eliminates cold-start latency
- Tool page registry: declarative tool-to-component mapping replaces 750-line switch
- File store cleanup: remove dead derived fields, stable files array reference
- Job persistence: progress written to SQLite jobs table, stale jobs recovered on startup
2026-03-29 17:23:41 +08:00
semantic-release-bot 7c71c7c483 chore(release): 0.17.7 [skip ci]
## [0.17.7](https://github.com/siddharthksah/Stirling-Image/compare/v0.17.6...v0.17.7) (2026-03-28)

### Bug Fixes

* move health diagnostics behind admin auth ([818e587](https://github.com/siddharthksah/Stirling-Image/commit/818e5877a773e6af48f9530199c6fa52e207bd50))
* reject HTML tags in settings API to prevent stored XSS ([8a62093](https://github.com/siddharthksah/Stirling-Image/commit/8a6209313052371c123c5996cb41b9e431251874))
* simplify public health to static response, add 403 test ([4577d5c](https://github.com/siddharthksah/Stirling-Image/commit/4577d5c30ea53c72b02490b78b6765295e55213a))
* switch README Docker references from GHCR to Docker Hub ([fb84f5c](https://github.com/siddharthksah/Stirling-Image/commit/fb84f5ce8d175e568cce20caddcf79832d0bb973))
* use two-pass validation in settings PUT to prevent partial writes ([813fa6b](https://github.com/siddharthksah/Stirling-Image/commit/813fa6b7e8d8e371959cff4d4a2a85ece4a636bb))
2026-03-28 11:08:45 +00:00
semantic-release-bot daf942ba89 chore(release): 0.17.6 [skip ci]
## [0.17.6](https://github.com/siddharthksah/Stirling-Image/compare/v0.17.5...v0.17.6) (2026-03-28)

### Bug Fixes

* resolve pipeline step race condition and infinite re-render loop ([aa1f87f](https://github.com/siddharthksah/Stirling-Image/commit/aa1f87fc91e0b5edd93c6720fcc54a839e51893a))
* show checkerboard behind transparent images in before/after slider ([2e29501](https://github.com/siddharthksah/Stirling-Image/commit/2e29501ae6f1652cc3d0e9193863aeddb18513af))
2026-03-28 10:35:02 +00:00
semantic-release-bot b4f0fed679 chore(release): 0.17.5 [skip ci]
## [0.17.5](https://github.com/siddharthksah/Stirling-Image/compare/v0.17.4...v0.17.5) (2026-03-28)

### Bug Fixes

* sync stepsRef during render, not useEffect ([748ac60](https://github.com/siddharthksah/Stirling-Image/commit/748ac607bc71892c588e6a1795d258d4fc7f3413))
2026-03-28 09:02:46 +00:00
semantic-release-bot 04d412873d chore(release): 0.17.4 [skip ci]
## [0.17.4](https://github.com/siddharthksah/Stirling-Image/compare/v0.17.3...v0.17.4) (2026-03-28)

### Bug Fixes

* prevent stale closure in pipeline step callbacks ([8b20fef](https://github.com/siddharthksah/Stirling-Image/commit/8b20fef2d8123411faa2c2379693136af6b0f9ba))
2026-03-28 08:43:23 +00:00
semantic-release-bot 6edaaba935 chore(release): 0.17.3 [skip ci]
## [0.17.3](https://github.com/siddharthksah/Stirling-Image/compare/v0.17.2...v0.17.3) (2026-03-28)

### Bug Fixes

* clear search when adding a step from the tool picker ([7b1b019](https://github.com/siddharthksah/Stirling-Image/commit/7b1b019b772a9e36d51e2d696cd5e15312ddc704))
2026-03-28 08:32:54 +00:00
Siddharth Kumar Sah 33cd575506 chore: standardize tool count to 30+ across all docs and UI 2026-03-28 16:32:28 +08:00
semantic-release-bot aea0974600 chore(release): 0.17.2 [skip ci]
## [0.17.2](https://github.com/siddharthksah/Stirling-Image/compare/v0.17.1...v0.17.2) (2026-03-28)

### Bug Fixes

* prevent pipeline step settings from resetting on collapse ([9acbedf](https://github.com/siddharthksah/Stirling-Image/commit/9acbedf4b75c6314f659e94f9d0721a40595201d))
2026-03-28 08:18:05 +00:00
semantic-release-bot e5238f5661 chore(release): 0.17.1 [skip ci]
## [0.17.1](https://github.com/siddharthksah/Stirling-Image/compare/v0.17.0...v0.17.1) (2026-03-28)

### Bug Fixes

* add remove-background settings to pipeline step configurator ([017a715](https://github.com/siddharthksah/Stirling-Image/commit/017a71562ad7b15d7d1abec6cee9f8ab73db2b34))
2026-03-28 07:32:56 +00:00
semantic-release-bot d5add549af chore(release): 0.17.0 [skip ci]
# [0.17.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.16.4...v0.17.0) (2026-03-28)

### Features

* make AI tools pipeline-compatible and add search to tool picker ([c48bfba](https://github.com/siddharthksah/Stirling-Image/commit/c48bfba879f55591e03a0918d9b8de9618cc8dc0))
2026-03-28 07:09:46 +00:00
semantic-release-bot 6d14e83dcb chore(release): 0.16.4 [skip ci]
## [0.16.4](https://github.com/siddharthksah/Stirling-Image/compare/v0.16.3...v0.16.4) (2026-03-28)

### Bug Fixes

* surface hidden errors and add batch rejection tests ([4a50428](https://github.com/siddharthksah/Stirling-Image/commit/4a504281a34561b47b60d00edaf8914f5a8e0197))
2026-03-28 06:45:35 +00:00
semantic-release-bot 2622ae7bdf chore(release): 0.16.3 [skip ci]
## [0.16.3](https://github.com/siddharthksah/Stirling-Image/compare/v0.16.2...v0.16.3) (2026-03-28)

### Bug Fixes

* remove Google Drive coming soon placeholder from files nav ([658954e](https://github.com/siddharthksah/Stirling-Image/commit/658954ea19e17d1af83d45229ec40397de376042))
2026-03-28 06:40:48 +00:00
semantic-release-bot 51684c0cd2 chore(release): 0.16.2 [skip ci]
## [0.16.2](https://github.com/siddharthksah/Stirling-Image/compare/v0.16.1...v0.16.2) (2026-03-28)

### Bug Fixes

* pipeline only shows compatible tools and displays errors ([0410bf3](https://github.com/siddharthksah/Stirling-Image/commit/0410bf34610aa56391615ab3a95ea77a12668743))
2026-03-28 06:39:17 +00:00
semantic-release-bot 1703dcbcfe chore(release): 0.16.1 [skip ci]
## [0.16.1](https://github.com/siddharthksah/Stirling-Image/compare/v0.16.0...v0.16.1) (2026-03-28)

### Bug Fixes

* trigger browser password save prompt on password change ([565b480](https://github.com/siddharthksah/Stirling-Image/commit/565b4805c7b32af66bb07543c6d3bae2865dbbdd))
2026-03-28 06:24:41 +00:00
semantic-release-bot 006b7c4509 chore(release): 0.16.0 [skip ci]
# [0.16.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.15.0...v0.16.0) (2026-03-28)

### Features

* add password generator and browser save prompt on change-password page ([7c76c2a](https://github.com/siddharthksah/Stirling-Image/commit/7c76c2a2a0116de8418b0438a3859fc1add419e3))
2026-03-28 06:13:13 +00:00
semantic-release-bot 21675623e7 chore(release): 0.15.0 [skip ci]
# [0.15.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.14.2...v0.15.0) (2026-03-28)

### Features

* add forced password change page on first login ([01cd1d9](https://github.com/siddharthksah/Stirling-Image/commit/01cd1d9f71427319284579b438ad08ede56517a6))
2026-03-28 06:02:41 +00:00
semantic-release-bot 1c8a6f10c8 chore(release): 0.14.2 [skip ci]
## [0.14.2](https://github.com/siddharthksah/Stirling-Image/compare/v0.14.1...v0.14.2) (2026-03-28)

### Bug Fixes

* **tests:** remove temp DB cleanup that races with other test files ([b08e006](https://github.com/siddharthksah/Stirling-Image/commit/b08e006512744f13b893e92e9ac20ee6299ab41c))
2026-03-28 04:49:54 +00:00
semantic-release-bot a0f68465ac chore(release): 0.14.1 [skip ci]
## [0.14.1](https://github.com/siddharthksah/Stirling-Image/compare/v0.14.0...v0.14.1) (2026-03-28)

### Bug Fixes

* handle migration race condition in concurrent test workers ([ce51065](https://github.com/siddharthksah/Stirling-Image/commit/ce5106524333b9bc7ee214b699d76e4b52371519))
2026-03-28 03:46:26 +00:00
semantic-release-bot fb7077cf16 chore(release): 0.14.0 [skip ci]
# [0.14.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.13.1...v0.14.0) (2026-03-28)

### Features

* multi-arch Docker support, security hardening, and test improvements ([6cfa3b0](https://github.com/siddharthksah/Stirling-Image/commit/6cfa3b0c38d81a19b230e1bdbad750dce2783afb))
2026-03-28 03:19:36 +00:00
semantic-release-bot 8f09c0678b chore(release): 0.13.1 [skip ci]
## [0.13.1](https://github.com/siddharthksah/Stirling-Image/compare/v0.13.0...v0.13.1) (2026-03-27)

### Bug Fixes

* **docs:** remove hero logo from home page ([d3f6bac](https://github.com/siddharthksah/Stirling-Image/commit/d3f6bac62b7e01e3a39371a1a52d865909412117))
2026-03-27 12:55:10 +00:00
semantic-release-bot 55df7dd768 chore(release): 0.13.0 [skip ci]
# [0.13.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.12.1...v0.13.0) (2026-03-27)

### Features

* **docs:** add gem logo to GitHub Pages nav bar and home hero ([98478e2](https://github.com/siddharthksah/Stirling-Image/commit/98478e271934c8b3deb1b3003d88fe1a165e75a0))
2026-03-27 12:52:29 +00:00
semantic-release-bot 10b15bf838 chore(release): 0.12.1 [skip ci]
## [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))
2026-03-27 09:11:21 +00:00
semantic-release-bot efc96f98c4 chore(release): 0.12.0 [skip ci]
# [0.12.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.11.1...v0.12.0) (2026-03-27)

### Bug Fixes

* **api:** resolve team name lookup and show server error messages ([620b8ad](https://github.com/siddharthksah/Stirling-Image/commit/620b8ad038506a03633ab9baf738c6c316fa4336))

### Features

* **docs:** add llms.txt links to GitHub Pages footer ([c59e4a0](https://github.com/siddharthksah/Stirling-Image/commit/c59e4a06686db62ad8ec134ec1c97080673fbcb3))
2026-03-27 08:42:16 +00:00
semantic-release-bot b5721d9854 chore(release): 0.11.1 [skip ci]
## [0.11.1](https://github.com/siddharthksah/Stirling-Image/compare/v0.11.0...v0.11.1) (2026-03-27)

### Bug Fixes

* **docs:** ignore localhost dead links in VitePress build ([5c4b2a5](https://github.com/siddharthksah/Stirling-Image/commit/5c4b2a59d3a9f1fa2dd428fd626f2bbbb9e3fea6))
2026-03-27 05:54:02 +00:00
semantic-release-bot 355022d374 chore(release): 0.11.0 [skip ci]
# [0.11.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.10.0...v0.11.0) (2026-03-27)

### Bug Fixes

* **a11y:** add aria-hidden to decorative GemLogo SVG ([d47548a](https://github.com/siddharthksah/Stirling-Image/commit/d47548a1d7d2de995c881465b79a463de20354df))
* **api:** allow Scalar docs through auth and CSP ([a46d500](https://github.com/siddharthksah/Stirling-Image/commit/a46d500012e1f0724038c695a17e7dafd9be0c40))
* **api:** use content instead of spec.content for Scalar v1.49 API ([05854fd](https://github.com/siddharthksah/Stirling-Image/commit/05854fd61f90a1096e1682ad021d744d178d9b9b))
* **ui:** clean up settings, automate page, fullscreen logo, and README ([e3a8558](https://github.com/siddharthksah/Stirling-Image/commit/e3a85581349b6a992939b08ede932705613d915f))

### Features

* **api:** add all remaining endpoints to OpenAPI spec ([9ed1090](https://github.com/siddharthksah/Stirling-Image/commit/9ed109065189f20545eb24893c2c0b9332e40249))
* **api:** add all tool endpoints to OpenAPI spec ([2bf8689](https://github.com/siddharthksah/Stirling-Image/commit/2bf86894d0005ff4c273334699c30de1fcb38ee6))
* **api:** add llms.txt and llms-full.txt endpoints ([cff1930](https://github.com/siddharthksah/Stirling-Image/commit/cff1930920c488fc853eab5aa36128fac19b3bf5))
* **api:** add OpenAPI 3.1 spec skeleton with common schemas ([9488201](https://github.com/siddharthksah/Stirling-Image/commit/948820180663783d463a07f966dd4336c1a7c503))
* **api:** add Scalar docs route and install dependency ([abb2916](https://github.com/siddharthksah/Stirling-Image/commit/abb2916233de85e62675e609b9d497dcc0a01882))
* **api:** register docs route in server and test helper ([849878e](https://github.com/siddharthksah/Stirling-Image/commit/849878e72fc0e5cb3e775afeea802dac933c4e13))
* **branding:** add faceted gem SVG logo assets ([0214ac1](https://github.com/siddharthksah/Stirling-Image/commit/0214ac11b1ba4142349c09fd2465a425b4e8dd6b))
* **branding:** add favicon and meta tags to index.html ([0364927](https://github.com/siddharthksah/Stirling-Image/commit/036492725eea6cb6b4c0aff307edeee8516ec280))
* **branding:** add OG social preview image ([dcd926c](https://github.com/siddharthksah/Stirling-Image/commit/dcd926c57e9877c2b47e70c494b679f0c00d93d6))
* **branding:** add PWA manifest and PNG logo assets ([26cc183](https://github.com/siddharthksah/Stirling-Image/commit/26cc18342fb6d4027f2130b198090469e27ef797))
* **branding:** show gem icon in app header as default logo ([39dfb93](https://github.com/siddharthksah/Stirling-Image/commit/39dfb93679765366253115240adcbc573e83b8e7))
* **docs:** add gem favicon to VitePress site ([42ec0f2](https://github.com/siddharthksah/Stirling-Image/commit/42ec0f2490267f2e3730764539bdd2920b7b3793))
* **docs:** add llms.txt and llms-full.txt to GitHub Pages ([e6dc7b0](https://github.com/siddharthksah/Stirling-Image/commit/e6dc7b0a18d3d022de4e2f0b971bf25678042b3a))
2026-03-27 05:51:30 +00:00
semantic-release-bot d4d4321b98 chore(release): 0.10.0 [skip ci]
# [0.10.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.9.0...v0.10.0) (2026-03-26)

### Bug Fixes

* **ocr:** update PaddleOCR for v3 API and add Tesseract fallback ([f71c3c8](https://github.com/siddharthksah/Stirling-Image/commit/f71c3c8c05bc7203d37a46743bebb62b79c8ac51))

### Features

* **erase-object:** replace mask upload with in-browser brush painting ([40656a0](https://github.com/siddharthksah/Stirling-Image/commit/40656a0452109c1d6ea2441b2735b0ffaf4f3867))
2026-03-26 09:34:20 +00:00
Siddharth Kumar Sah f71c3c8c05 fix(ocr): update PaddleOCR for v3 API and add Tesseract fallback
Fix PaddleOCR crash by removing deprecated parameters (use_angle_cls,
show_log, cls) that were removed in PaddleOCR v3. Add graceful
fallback to Tesseract when PaddleOCR fails at runtime, so users
always get OCR results without errors.
2026-03-26 17:33:42 +08:00
Siddharth Kumar Sah 40656a0452 feat(erase-object): replace mask upload with in-browser brush painting
Replace the external mask file upload workflow with an interactive
canvas-based brush tool. Users now paint directly on the image to
mark areas for erasure. Adds EraserCanvas component with adjustable
brush size, undo/clear, and mask export. Switch Python inpainting
from broken lama-cleaner to OpenCV cv2.inpaint (Telea algorithm).
Add before/after comparison slider after processing.
2026-03-26 17:33:17 +08:00
semantic-release-bot 563892774d chore(release): 0.9.0 [skip ci]
# [0.9.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.8.2...v0.9.0) (2026-03-26)

### Bug Fixes

* **blur-faces:** switch from MediaPipe to OpenCV and auto-orient images ([f15102c](https://github.com/siddharthksah/Stirling-Image/commit/f15102c632d3fcbc5d33b33fd9cfdea5e4689eb6))
* **docker:** add build layer caching for faster Docker rebuilds ([14c630f](https://github.com/siddharthksah/Stirling-Image/commit/14c630ff23d973aa9d512ed87ede049ebd4b600f))
* **upscale:** auto-orient images before upscaling and improve UI ([8ee4d7b](https://github.com/siddharthksah/Stirling-Image/commit/8ee4d7b2fb3f88b2869ada8d6a6c5fb0df432e3b))

### Features

* **adjustments:** add real-time live preview for all color tools ([f357b18](https://github.com/siddharthksah/Stirling-Image/commit/f357b18ced8757da0a6c34f18541bb8875c2199a))
* **image-to-pdf:** add live PDF page preview with margin visualization ([ddde152](https://github.com/siddharthksah/Stirling-Image/commit/ddde152545456770ec4a97418968c2ad309a88e0))
* **rotate:** add editable angle input and fine-tune +/- buttons ([bf62820](https://github.com/siddharthksah/Stirling-Image/commit/bf6282006489a4cadcd849b476e97239e3624673))
2026-03-26 08:02:46 +00:00
Siddharth Kumar Sah 0401900a69 chore(ui): remove technical jargon and update tool count
Remove approximate processing times from remove-bg quality options.
Update tool count from 37 to 33 across README, settings dialog, login
page, and i18n strings to reflect the accurate count.
2026-03-26 16:02:12 +08:00
Siddharth Kumar Sah f15102c632 fix(blur-faces): switch from MediaPipe to OpenCV and auto-orient images
Fix face detection failure caused by MediaPipe 0.10.33 removing the
mp.solutions API. Replace with OpenCV Haar cascade which works reliably
in headless Docker. Add autoOrient() call before detection to handle
EXIF-rotated phone photos. Remove technical jargon from UI.
2026-03-26 16:01:56 +08:00
semantic-release-bot 21e40f5bbf chore(release): 0.8.2 [skip ci]
## [0.8.2](https://github.com/siddharthksah/Stirling-Image/compare/v0.8.1...v0.8.2) (2026-03-25)

### Bug Fixes

* **test:** add missing PNG fixture files to repo ([8474b0e](https://github.com/siddharthksah/Stirling-Image/commit/8474b0ee52fe803c55247a082becc4334e83186f))
* **test:** exclude e2e tests from vitest and fix CI test suite ([91acab9](https://github.com/siddharthksah/Stirling-Image/commit/91acab9967e2b5dd7dbc7a98e667f785f3e7364e))
2026-03-25 17:33:09 +00:00
semantic-release-bot bf23e83ef4 chore(release): 0.8.1 [skip ci]
## [0.8.1](https://github.com/siddharthksah/Stirling-Image/compare/v0.8.0...v0.8.1) (2026-03-25)

### Bug Fixes

* resolve test failures from shared DB race conditions ([b474480](https://github.com/siddharthksah/Stirling-Image/commit/b474480698695cda2eaf2c9ae642ac3ffd15d007))
2026-03-25 17:21:05 +00:00
semantic-release-bot 170395ae40 chore(release): 0.8.0 [skip ci]
# [0.8.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.7.0...v0.8.0) (2026-03-25)

### Bug Fixes

* **docker:** skip husky prepare script in production install ([200e7d1](https://github.com/siddharthksah/Stirling-Image/commit/200e7d10c1cbffeeeae95434b4ae8f2d6b69b8a0))
* prevent useAuth infinite loop causing rate limit storms ([3b4f522](https://github.com/siddharthksah/Stirling-Image/commit/3b4f522bf4d63109254edc22baca568fdfd7dd98))

### Features

* **api:** add logo upload/serve/delete routes with tests ([6a13065](https://github.com/siddharthksah/Stirling-Image/commit/6a1306570660d4962f89e741dfb684d2ed0e7f6c))
* **api:** add persistent file management helpers to frontend api module ([8a3a731](https://github.com/siddharthksah/Stirling-Image/commit/8a3a731267f4e3cd84a01a78d89975197ce2ebad))
* **api:** add teams CRUD routes and update auth team references ([ab370a7](https://github.com/siddharthksah/Stirling-Image/commit/ab370a74fefebc8735e337f9b42e48ab6625c5b4))
* **api:** add tool filtering and DB-backed cleanup settings ([acfff75](https://github.com/siddharthksah/Stirling-Image/commit/acfff754b54b5f9be474c6db6eb39b3cbf91fc21))
* **api:** add user files CRUD routes at /api/v1/files/* ([4e2aa58](https://github.com/siddharthksah/Stirling-Image/commit/4e2aa5876701ef56514957a30fe63c27c615cf05))
* **db:** add teams table and migration ([926b52d](https://github.com/siddharthksah/Stirling-Image/commit/926b52d33045dc1f15192bb65d4f005f6c82ce00))
* **db:** add userFiles table and migration ([dda37e9](https://github.com/siddharthksah/Stirling-Image/commit/dda37e90cc294140c236332563befae0a3b02852))
* **env:** add FILES_STORAGE_PATH config variable ([4927f57](https://github.com/siddharthksah/Stirling-Image/commit/4927f574badda883ad72ba05c30a8d9fae973ee6))
* **files:** add Files page with nav, list, details, upload, and routing ([788b8c8](https://github.com/siddharthksah/Stirling-Image/commit/788b8c8bad8cf6800137f4764f5a50ac80845f2f))
* **files:** add mobile layout for Files page ([c99f43f](https://github.com/siddharthksah/Stirling-Image/commit/c99f43fe60aac2a7babeb7cea39e140281936009))
* **files:** wire serverFileId for version tracking ([20f153d](https://github.com/siddharthksah/Stirling-Image/commit/20f153d611c9dec478ab89cd050c6c65b0e41287))
* **i18n:** add translation keys for settings phase 1 ([ffb676d](https://github.com/siddharthksah/Stirling-Image/commit/ffb676d648027804e653b868139f349b5a3c6c96))
* implement Files page with persistent storage and version tracking ([62fbb54](https://github.com/siddharthksah/Stirling-Image/commit/62fbb5484c669b74132b4ecd23576bf0ba5b50b2))
* **storage:** add file storage helpers module ([fbca20d](https://github.com/siddharthksah/Stirling-Image/commit/fbca20d78c213e0b7f00f6c59eae4af32123a587))
* **stores:** add Zustand store for Files page state management ([24644c1](https://github.com/siddharthksah/Stirling-Image/commit/24644c1c1052146a2b581ffc3a791a9276fab6a1))
* **tool-factory:** auto-save results to persistent file store when fileId provided ([bf6c30c](https://github.com/siddharthksah/Stirling-Image/commit/bf6c30c3c0d9beeaa24a7b7b998de9354ec7e353))
* **ui:** add teams, tools, feature flags, temp files, logo to settings dialog ([4b2621d](https://github.com/siddharthksah/Stirling-Image/commit/4b2621d9f2c5fcc930baf9ed1a6b555de77f0b93))
2026-03-25 17:12:41 +00:00
Siddharth Kumar Sah ffb676d648 feat(i18n): add translation keys for settings phase 1 2026-03-26 01:10:51 +08:00
Siddharth Kumar Sah 585d66f0c9 refactor: rename Tool.alpha to Tool.experimental 2026-03-26 01:10:51 +08:00
semantic-release-bot 5d261398b1 chore(release): 0.7.0 [skip ci]
# [0.7.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.6.0...v0.7.0) (2026-03-24)

### Features

* harden auth, security headers, SVG sanitization, and pipeline ownership ([432cc92](https://github.com/siddharthksah/Stirling-Image/commit/432cc92471b73b73ab9d1be4a82a71d3ed3a88ad))
* **pipeline:** add inline settings configuration for automation steps ([adc7e1c](https://github.com/siddharthksah/Stirling-Image/commit/adc7e1c0370df1687b0660bdff279c90ac9d0871))
2026-03-24 13:38:48 +00:00
semantic-release-bot 75f38a9fe2 chore(release): 0.6.0 [skip ci]
# [0.6.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.5.2...v0.6.0) (2026-03-24)

### Features

* extract auto-orient utility and expand test coverage ([e5086ad](https://github.com/siddharthksah/Stirling-Image/commit/e5086ada6e2f4402973f203b726578dd42da4a32))
2026-03-24 12:37:44 +00:00
semantic-release-bot 06eabdd045 chore(release): 0.5.2 [skip ci]
## [0.5.2](https://github.com/siddharthksah/Stirling-Image/compare/v0.5.1...v0.5.2) (2026-03-23)

### Bug Fixes

* restore APP_VERSION import used by health endpoint ([7dfa7a2](https://github.com/siddharthksah/Stirling-Image/commit/7dfa7a295de407f45832b68a2ef64acf2f21205f))
2026-03-23 16:49:00 +00:00
semantic-release-bot 3735a749d6 chore(release): 0.5.1 [skip ci]
## [0.5.1](https://github.com/siddharthksah/Stirling-Image/compare/v0.5.0...v0.5.1) (2026-03-23)

### Bug Fixes

* **crop:** use percentCrop from onChange to fix inflated pixel values ([fbdbe09](https://github.com/siddharthksah/Stirling-Image/commit/fbdbe0949a64d072e4e86d08c7b39372592eaf04))
2026-03-23 16:42:37 +00:00
semantic-release-bot b4a372be3a chore(release): 0.5.0 [skip ci]
# [0.5.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.4.1...v0.5.0) (2026-03-23)

### Bug Fixes

* resolve TypeScript Uint8Array type error with fflate ([1d35db9](https://github.com/siddharthksah/Stirling-Image/commit/1d35db98bf359c07779522c30b00d8c7a9d3cb89))
* white screen crash when uploading photos with null GPS EXIF data ([70c73d8](https://github.com/siddharthksah/Stirling-Image/commit/70c73d85c992bc724c6b18a2d43789871b318e78))

### Features

* accept clientJobId in batch endpoint for SSE progress correlation ([2514078](https://github.com/siddharthksah/Stirling-Image/commit/2514078ea1feb8e44296e226e37e8e379a20473a))
* add CSS transform props to ImageViewer for live rotate/flip preview ([267da78](https://github.com/siddharthksah/Stirling-Image/commit/267da7857743898e612ba5bb80e24985664bd311))
* add live preview callback to RotateSettings, rename button to Apply ([ec192e3](https://github.com/siddharthksah/Stirling-Image/commit/ec192e3d96d864e3ce47e991ba1c72d6a4ee7cea))
* add MultiImageViewer with arrow navigation and filmstrip ([815a8ed](https://github.com/siddharthksah/Stirling-Image/commit/815a8ed419b82aadec4e07ef4456e9e96b84b65f))
* add processAllFiles batch method to tool processor hook ([846a51a](https://github.com/siddharthksah/Stirling-Image/commit/846a51a9fdf4e8fc4c1b9673f13acde646ae0ca9))
* add SideBySideComparison component for resize results ([271cab6](https://github.com/siddharthksah/Stirling-Image/commit/271cab647bb41872c5e205d6236e35eb7fad0810))
* add ThumbnailStrip filmstrip component ([6521d70](https://github.com/siddharthksah/Stirling-Image/commit/6521d702385f23a7cb9312c1661541943bfe2e03))
* conditional result views — side-by-side for resize, live preview for rotate ([59a57f3](https://github.com/siddharthksah/Stirling-Image/commit/59a57f3a00bbd0c6331d1165594ad4266ce3b536))
* **crop:** add CropCanvas component with visual overlay, grid, and keyboard controls ([1a076be](https://github.com/siddharthksah/Stirling-Image/commit/1a076be9b2cc5f434296f2739a395321368c2177))
* **crop:** add react-image-crop dependency ([31d426f](https://github.com/siddharthksah/Stirling-Image/commit/31d426ff6f02965d20e75e85ff15a8cbc1d1df0b))
* **crop:** redesign CropSettings with aspect presets, pixel inputs, and grid toggle ([c2c256a](https://github.com/siddharthksah/Stirling-Image/commit/c2c256a180640cf046bd1bc46b05065171a4c2dc))
* **crop:** wire CropCanvas and CropSettings into tool-page with bidirectional state ([786a671](https://github.com/siddharthksah/Stirling-Image/commit/786a671c39859ae0bf1f8732c2ff4efe210d2466))
* integrate MultiImageViewer and multi-file UX into tool page ([3796533](https://github.com/siddharthksah/Stirling-Image/commit/37965338228a2fca3623718a7db2f8757a464651))
* merge multi-image UX — batch processing, filmstrip navigation, resize/rotate redesign ([80756d1](https://github.com/siddharthksah/Stirling-Image/commit/80756d15917a877b21a900d282bb6522ae76c2e2))
* multi-file metadata display with per-file caching ([474b4a9](https://github.com/siddharthksah/Stirling-Image/commit/474b4a941e1be43887beac8d2ec57eb703cba260))
* rewrite file-store with FileEntry model for multi-image support ([8844b44](https://github.com/siddharthksah/Stirling-Image/commit/8844b44fff2abfbe3262a113dfc35d83367add05))
* rewrite resize settings with tab-based UI (presets, custom, scale) ([bc105fd](https://github.com/siddharthksah/Stirling-Image/commit/bc105fd261de3c11b279557dba98aaad65214f42))
* wire up batch processing across tool settings components ([9e2c28f](https://github.com/siddharthksah/Stirling-Image/commit/9e2c28f19124fca4bc4f55c0997e2314170ae478))
2026-03-23 11:23:50 +00:00
semantic-release-bot 8815fc883e chore(release): 0.4.1 [skip ci]
## [0.4.1](https://github.com/siddharthksah/Stirling-Image/compare/v0.4.0...v0.4.1) (2026-03-23)

### Bug Fixes

* unify project on port 1349, improve strip-metadata and UI components ([0e7348a](https://github.com/siddharthksah/Stirling-Image/commit/0e7348a0bedb6c47a8025c47b377849169aa7472))
2026-03-23 08:38:56 +00:00