Files
SnapOtter/apps
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
..
2026-03-30 00:28:23 +00:00
2026-03-30 00:28:23 +00:00
2026-03-30 00:28:23 +00:00