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 ](1cbdfa1590 ))
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 ](818e5877a7 ))
* reject HTML tags in settings API to prevent stored XSS ([8a62093 ](8a62093130 ))
* simplify public health to static response, add 403 test ([4577d5c ](4577d5c30e ))
* switch README Docker references from GHCR to Docker Hub ([fb84f5c ](fb84f5ce8d ))
* use two-pass validation in settings PUT to prevent partial writes ([813fa6b ](813fa6b7e8 ))
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 ](aa1f87fc91 ))
* show checkerboard behind transparent images in before/after slider ([2e29501 ](2e29501ae6 ))
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 ](748ac607bc ))
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 ](8b20fef2d8 ))
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 ](7b1b019b77 ))
2026-03-28 08:32:54 +00: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 ](9acbedf4b7 ))
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 ](017a71562a ))
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 ](c48bfba879 ))
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 ](4a504281a3 ))
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 ](658954ea19 ))
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 ](0410bf3461 ))
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 ](565b4805c7 ))
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 ](7c76c2a2a0 ))
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 ](01cd1d9f71 ))
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 ](b08e006512 ))
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 ](ce51065243 ))
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 ](6cfa3b0c38 ))
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 ](d3f6bac62b ))
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 ](98478e2719 ))
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 ](a4d4d36828 ))
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 ](620b8ad038 ))
### Features
* **docs:** add llms.txt links to GitHub Pages footer ([c59e4a0 ](c59e4a0668 ))
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 ](5c4b2a59d3 ))
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 ](d47548a1d7 ))
* **api:** allow Scalar docs through auth and CSP ([a46d500 ](a46d500012 ))
* **api:** use content instead of spec.content for Scalar v1.49 API ([05854fd ](05854fd61f ))
* **ui:** clean up settings, automate page, fullscreen logo, and README ([e3a8558 ](e3a8558134 ))
### Features
* **api:** add all remaining endpoints to OpenAPI spec ([9ed1090 ](9ed1090651 ))
* **api:** add all tool endpoints to OpenAPI spec ([2bf8689 ](2bf86894d0 ))
* **api:** add llms.txt and llms-full.txt endpoints ([cff1930 ](cff1930920 ))
* **api:** add OpenAPI 3.1 spec skeleton with common schemas ([9488201 ](9488201806 ))
* **api:** add Scalar docs route and install dependency ([abb2916 ](abb2916233 ))
* **api:** register docs route in server and test helper ([849878e ](849878e72f ))
* **branding:** add faceted gem SVG logo assets ([0214ac1 ](0214ac11b1 ))
* **branding:** add favicon and meta tags to index.html ([0364927 ](036492725e ))
* **branding:** add OG social preview image ([dcd926c ](dcd926c57e ))
* **branding:** add PWA manifest and PNG logo assets ([26cc183 ](26cc18342f ))
* **branding:** show gem icon in app header as default logo ([39dfb93 ](39dfb93679 ))
* **docs:** add gem favicon to VitePress site ([42ec0f2 ](42ec0f2490 ))
* **docs:** add llms.txt and llms-full.txt to GitHub Pages ([e6dc7b0 ](e6dc7b0a18 ))
2026-03-27 05:51:30 +00:00
Siddharth Kumar Sah
cff1930920
feat(api): add llms.txt and llms-full.txt endpoints
...
Serve LLM-friendly documentation at /llms.txt (index) and
/llms-full.txt (full API docs as markdown). Generated from the
OpenAPI spec at startup.
2026-03-27 13:50:04 +08:00
Siddharth Kumar Sah
abb2916233
feat(api): add Scalar docs route and install dependency
2026-03-27 13:50:03 +08: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 ](f71c3c8c05 ))
### Features
* **erase-object:** replace mask upload with in-browser brush painting ([40656a0 ](40656a0452 ))
2026-03-26 09:34:20 +00: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 ](f15102c632 ))
* **docker:** add build layer caching for faster Docker rebuilds ([14c630f ](14c630ff23 ))
* **upscale:** auto-orient images before upscaling and improve UI ([8ee4d7b ](8ee4d7b2fb ))
### Features
* **adjustments:** add real-time live preview for all color tools ([f357b18 ](f357b18ced ))
* **image-to-pdf:** add live PDF page preview with margin visualization ([ddde152 ](ddde152545 ))
* **rotate:** add editable angle input and fine-tune +/- buttons ([bf62820 ](bf62820064 ))
2026-03-26 08:02:46 +00: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 ](8474b0ee52 ))
* **test:** exclude e2e tests from vitest and fix CI test suite ([91acab9 ](91acab9967 ))
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 ](b474480698 ))
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 ](200e7d10c1 ))
* prevent useAuth infinite loop causing rate limit storms ([3b4f522 ](3b4f522bf4 ))
### Features
* **api:** add logo upload/serve/delete routes with tests ([6a13065 ](6a13065706 ))
* **api:** add persistent file management helpers to frontend api module ([8a3a731 ](8a3a731267 ))
* **api:** add teams CRUD routes and update auth team references ([ab370a7 ](ab370a74fe ))
* **api:** add tool filtering and DB-backed cleanup settings ([acfff75 ](acfff754b5 ))
* **api:** add user files CRUD routes at /api/v1/files/* ([4e2aa58 ](4e2aa58767 ))
* **db:** add teams table and migration ([926b52d ](926b52d330 ))
* **db:** add userFiles table and migration ([dda37e9 ](dda37e90cc ))
* **env:** add FILES_STORAGE_PATH config variable ([4927f57 ](4927f574ba ))
* **files:** add Files page with nav, list, details, upload, and routing ([788b8c8 ](788b8c8bad ))
* **files:** add mobile layout for Files page ([c99f43f ](c99f43fe60 ))
* **files:** wire serverFileId for version tracking ([20f153d ](20f153d611 ))
* **i18n:** add translation keys for settings phase 1 ([ffb676d ](ffb676d648 ))
* implement Files page with persistent storage and version tracking ([62fbb54 ](62fbb5484c ))
* **storage:** add file storage helpers module ([fbca20d ](fbca20d78c ))
* **stores:** add Zustand store for Files page state management ([24644c1 ](24644c1c10 ))
* **tool-factory:** auto-save results to persistent file store when fileId provided ([bf6c30c ](bf6c30c3c0 ))
* **ui:** add teams, tools, feature flags, temp files, logo to settings dialog ([4b2621d ](4b2621d9f2 ))
2026-03-25 17:12:41 +00: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 ](432cc92471 ))
* **pipeline:** add inline settings configuration for automation steps ([adc7e1c ](adc7e1c037 ))
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 ](e5086ada6e ))
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 ](7dfa7a295d ))
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 ](fbdbe0949a ))
2026-03-23 16:42:37 +00:00
Siddharth Kumar Sah
0aa2a5e5de
chore: remove swagger deps, parallelize CI jobs
...
- Remove @fastify/swagger and @fastify/swagger-ui (API docs live on GitHub Pages)
- Run typecheck, build, and docker CI jobs in parallel instead of sequentially
2026-03-24 00:41:54 +08: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 ](1d35db98bf ))
* white screen crash when uploading photos with null GPS EXIF data ([70c73d8 ](70c73d85c9 ))
### Features
* accept clientJobId in batch endpoint for SSE progress correlation ([2514078 ](2514078ea1 ))
* add CSS transform props to ImageViewer for live rotate/flip preview ([267da78 ](267da78577 ))
* add live preview callback to RotateSettings, rename button to Apply ([ec192e3 ](ec192e3d96 ))
* add MultiImageViewer with arrow navigation and filmstrip ([815a8ed ](815a8ed419 ))
* add processAllFiles batch method to tool processor hook ([846a51a ](846a51a9fd ))
* add SideBySideComparison component for resize results ([271cab6 ](271cab647b ))
* add ThumbnailStrip filmstrip component ([6521d70 ](6521d70238 ))
* conditional result views — side-by-side for resize, live preview for rotate ([59a57f3 ](59a57f3a00 ))
* **crop:** add CropCanvas component with visual overlay, grid, and keyboard controls ([1a076be ](1a076be9b2 ))
* **crop:** add react-image-crop dependency ([31d426f ](31d426ff6f ))
* **crop:** redesign CropSettings with aspect presets, pixel inputs, and grid toggle ([c2c256a ](c2c256a180 ))
* **crop:** wire CropCanvas and CropSettings into tool-page with bidirectional state ([786a671 ](786a671c39 ))
* integrate MultiImageViewer and multi-file UX into tool page ([3796533 ](3796533822 ))
* merge multi-image UX — batch processing, filmstrip navigation, resize/rotate redesign ([80756d1 ](80756d1591 ))
* multi-file metadata display with per-file caching ([474b4a9 ](474b4a941e ))
* rewrite file-store with FileEntry model for multi-image support ([8844b44 ](8844b44fff ))
* rewrite resize settings with tab-based UI (presets, custom, scale) ([bc105fd ](bc105fd261 ))
* wire up batch processing across tool settings components ([9e2c28f ](9e2c28f191 ))
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 ](0e7348a0be ))
2026-03-23 08:38:56 +00:00
Siddharth Kumar Sah
0e7348a0be
fix: unify project on port 1349, improve strip-metadata and UI components
...
Consolidate all access to localhost:1349 — Vite dev server serves on 1349
and proxies API calls to an internal dev port (13490). Production API
defaults to 1349. Also includes strip-metadata improvements, UI component
updates, and compress operation fixes.
2026-03-23 16:38:27 +08:00
semantic-release-bot
8841dbb677
chore(release): 0.4.0 [skip ci]
...
# [0.4.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.3.1...v0.4.0 ) (2026-03-23)
### Bug Fixes
* streamline CI/CD — remove broken AI docs updater, fix Docker publish ([4f984c8 ](4f984c83ac ))
### Features
* add CSS transform props to ImageViewer for live rotate/flip preview ([113bb75 ](113bb75733 ))
* add live preview callback to RotateSettings, rename button to Apply ([31a9439 ](31a943962d ))
* add SideBySideComparison component for resize results ([28a8b10 ](28a8b10fa1 ))
* conditional result views — side-by-side for resize, live preview for rotate ([989e8dc ](989e8dc6e4 ))
* rewrite resize settings with tab-based UI (presets, custom, scale) ([02ef3e6 ](02ef3e6468 ))
2026-03-23 07:15:07 +00:00
semantic-release-bot
ddd30f77b0
chore(release): 0.3.1 [skip ci]
...
## [0.3.1](https://github.com/siddharthksah/Stirling-Image/compare/v0.3.0...v0.3.1 ) (2026-03-23)
### Bug Fixes
* resolve tsx not found in AI docs updater workflow ([b803b0e ](b803b0e443 ))
2026-03-23 04:10:54 +00:00
semantic-release-bot
acf48432be
chore(release): 0.3.0 [skip ci]
...
# [0.3.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.2.1...v0.3.0 ) (2026-03-23)
### Bug Fixes
* add SSE progress endpoint to public paths ([b3f590c ](b3f590c8b3 ))
* apply continuous progress bar to erase-object and OCR ([8db84a7 ](8db84a753c ))
* continuous progress bar (no 100%→0% reset) ([28cd950 ](28cd950ede ))
* setError(null) was overriding setProcessing(true) ([b5cc452 ](b5cc452077 ))
### Features
* **ai:** add emit_progress() calls to all Python AI scripts ([7238429 ](723842988b ))
* **ai:** add onProgress callback to all AI wrapper functions ([acb230c ](acb230cc98 ))
* **ai:** rewrite bridge.ts to stream stderr progress via spawn ([7d74ddd ](7d74ddd3a6 ))
* **api:** add SingleFileProgress type and SSE update function ([7eddac5 ](7eddac5119 ))
* **api:** wire AI route handlers to SSE progress via clientJobId ([27600a4 ](27600a4318 ))
* replace model dropdown with intuitive subject/quality selector in remove-bg ([9aa0371 ](9aa0371a14 ))
* **web:** add ProgressCard component ([01d5d66 ](01d5d66466 ))
* **web:** add ProgressCard to non-AI tool settings (Group A) ([5c64b30 ](5c64b306ea ))
* **web:** migrate AI tool settings to ProgressCard ([dbd3bf7 ](dbd3bf737e ))
* **web:** rewrite useToolProcessor with XHR upload progress and SSE ([60945fd ](60945fd3b3 ))
2026-03-23 04:03:22 +00:00
Siddharth Kumar Sah
4807bd2726
feat: add semantic-release for automated versioning and help dialog
...
- Set up semantic-release with zero-touch CI pipeline on push to main
- Add version sync script to keep all package.json files and APP_VERSION
constant in sync automatically
- Consolidate Docker publishing into single tag-triggered workflow that
pushes to both Docker Hub and ghcr.io with semver tags
- Add help dialog with keyboard shortcuts, getting started guide, and
resource links
- Sync all versions to 0.2.1 to match Docker Hub latest
2026-03-22 21:25:14 +08:00
Siddharth Kumar Sah
ce03aad10f
feat: production Docker, Playwright tests, settings API, and bug fixes
...
- Add user management endpoints (register, list, delete, change password)
- Add API key management (create, list, delete)
- Add settings persistence endpoints (get, put)
- Wire settings dialog to real backend (People, API Keys, System, Security)
- Fix login auth flow (window.location.href for full reload)
- Fix download URLs returning 401 (make public since UUIDs are unguessable)
- Fix border tool shadowColor validation (accept 6-8 hex digits)
- Fix remove-bg alpha matting fallback (retry without on failure)
- Fix AI tool silent fallbacks (report errors instead of no-ops)
- Add checkerboard background to before/after slider for transparency
- Add progress bars to all AI tool components
- Add Playwright E2E test suite (131 tests across 9 test files)
- Rewrite Dockerfile for production (tsx runtime, pre-baked AI models)
- Add .dockerignore for faster builds
- Add proper accessible labels to login form
2026-03-22 19:28:57 +08:00
Siddharth Kumar Sah
5524939b6f
feat: add Phase 4 AI tools with Python bridge and 6 new tools
...
Add Python bridge (packages/ai/src/bridge.ts) that calls Python scripts
via child_process with venv-first fallback to system python3. Implements
6 AI-powered tools:
- Remove Background: rembg-based with U2-Net/IS-Net models
- Image Upscaling: Real-ESRGAN with Lanczos fallback
- OCR/Text Extraction: Tesseract + PaddleOCR engines
- Face/PII Blur: MediaPipe face detection with configurable blur
- Object Eraser: LaMa inpainting with mask-based input
- Smart Crop: Sharp attention-based entropy cropping (no Python needed)
Each tool includes: Python script, TypeScript wrapper, API route,
and React settings component. All Python scripts handle ImportError
gracefully with clear installation messages.
2026-03-22 04:31:49 +08:00
Siddharth Kumar Sah
9c55dd32c4
feat: add replace-color tool and update tool page routing
...
- Add replace-color tool with pixel-level color replacement and tolerance
- Register all 19 new Phase 3 tools in routes/tools/index.ts
- Map all new tool IDs to settings components in tool-page.tsx
- Add PDF, ZIP, ICO, JSON content types to download route
- Install qrcode, jsqr, potrace, pdfkit dependencies
2026-03-22 04:21:10 +08:00
Siddharth Kumar Sah
ce641168c1
feat(api,web): add batch processing with ZIP download and SSE progress
...
Backend: POST /api/v1/tools/:toolId/batch accepts multiple files +
settings, processes via p-queue with CONCURRENT_JOBS concurrency limit,
streams ZIP response using archiver. Tool registry in tool-factory
enables batch to reuse any registered tool's process function. SSE
endpoint at GET /api/v1/jobs/:jobId/progress provides real-time updates.
Handles partial failures gracefully, preserves filenames, deduplicates
collisions. Frontend: use-batch-processor hook handles upload, SSE
progress tracking, and automatic ZIP download.
2026-03-22 04:03:38 +08:00
Siddharth Kumar Sah
ece341e8c4
feat(api): add multipart file upload, workspace management, and download routes
...
- Register @fastify/multipart plugin with size limits from env config
- Workspace manager: createWorkspace, getWorkspacePath, cleanupWorkspace
- File validation: magic byte detection, format check, megapixel limit
- POST /api/v1/upload: multipart upload with validation, returns jobId + file metadata
- GET /api/v1/download/:jobId/:filename: serve files with Content-Disposition
- Path traversal guards on all file-serving endpoints
- Add @stirling-image/image-engine and sharp as API dependencies
- Add apiUpload, getDownloadUrl, apiDownloadBlob to web client
2026-03-22 03:47:54 +08:00