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
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 ](https://github.com/siddharthksah/Stirling-Image/commit/4f984c83acc4bfaa5b9479d80e2bdda05f4a2ccc ))
### Features
* add CSS transform props to ImageViewer for live rotate/flip preview ([113bb75 ](https://github.com/siddharthksah/Stirling-Image/commit/113bb757333e9ad809a401000f3b6b34fa1ef415 ))
* add live preview callback to RotateSettings, rename button to Apply ([31a9439 ](https://github.com/siddharthksah/Stirling-Image/commit/31a943962d46fab1eb1efd9f605fc5a0144ddd87 ))
* add SideBySideComparison component for resize results ([28a8b10 ](https://github.com/siddharthksah/Stirling-Image/commit/28a8b10fa15fa216d7f53256bea9461650358fb1 ))
* conditional result views — side-by-side for resize, live preview for rotate ([989e8dc ](https://github.com/siddharthksah/Stirling-Image/commit/989e8dc6e47fe123d6333dddf4431a01623e0437 ))
* rewrite resize settings with tab-based UI (presets, custom, scale) ([02ef3e6 ](https://github.com/siddharthksah/Stirling-Image/commit/02ef3e6468b36303dfdbc61e18c14dc5eb68d957 ))
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 ](https://github.com/siddharthksah/Stirling-Image/commit/b803b0e443b54bbca33cf88fe1ab38eeddd38baf ))
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 ](https://github.com/siddharthksah/Stirling-Image/commit/b3f590c8b35fb396cf298187f241e45827ea1db8 ))
* apply continuous progress bar to erase-object and OCR ([8db84a7 ](https://github.com/siddharthksah/Stirling-Image/commit/8db84a753cd8dbd522146aa25e85bb454b032490 ))
* continuous progress bar (no 100%→0% reset) ([28cd950 ](https://github.com/siddharthksah/Stirling-Image/commit/28cd950ede6d0fc03e0d7cca0a013d883ea00238 ))
* setError(null) was overriding setProcessing(true) ([b5cc452 ](https://github.com/siddharthksah/Stirling-Image/commit/b5cc45207758c25867833fad961744a37df36fda ))
### Features
* **ai:** add emit_progress() calls to all Python AI scripts ([7238429 ](https://github.com/siddharthksah/Stirling-Image/commit/723842988b39a8d9ea4f5b0cdd97569ff0c65f68 ))
* **ai:** add onProgress callback to all AI wrapper functions ([acb230c ](https://github.com/siddharthksah/Stirling-Image/commit/acb230cc98193766fc978098c12dfedf08a0a339 ))
* **ai:** rewrite bridge.ts to stream stderr progress via spawn ([7d74ddd ](https://github.com/siddharthksah/Stirling-Image/commit/7d74ddd3a6a466f1863412b36501c663fd642194 ))
* **api:** add SingleFileProgress type and SSE update function ([7eddac5 ](https://github.com/siddharthksah/Stirling-Image/commit/7eddac5119d1db3cbf831c735c5b78f0c92728ef ))
* **api:** wire AI route handlers to SSE progress via clientJobId ([27600a4 ](https://github.com/siddharthksah/Stirling-Image/commit/27600a431805d54b32875dbe5a58f05cfcdbe2a1 ))
* replace model dropdown with intuitive subject/quality selector in remove-bg ([9aa0371 ](https://github.com/siddharthksah/Stirling-Image/commit/9aa0371a1452540557aca9f2195032c5c16ce3fb ))
* **web:** add ProgressCard component ([01d5d66 ](https://github.com/siddharthksah/Stirling-Image/commit/01d5d66466a7bcf4a0c0f454f7b4d58f7e1e7801 ))
* **web:** add ProgressCard to non-AI tool settings (Group A) ([5c64b30 ](https://github.com/siddharthksah/Stirling-Image/commit/5c64b306ead8b6214dee6d51e8dae25fb47ff7e8 ))
* **web:** migrate AI tool settings to ProgressCard ([dbd3bf7 ](https://github.com/siddharthksah/Stirling-Image/commit/dbd3bf737e4692279ba5b7c3d860779193a21b5f ))
* **web:** rewrite useToolProcessor with XHR upload progress and SSE ([60945fd ](https://github.com/siddharthksah/Stirling-Image/commit/60945fd3b3674d2026f3f717cd3d123951126933 ))
2026-03-23 04:03:22 +00:00
Siddharth Kumar Sah
80e536bcf8
chore: remove dead code, add test infrastructure, update docs
...
- Delete 3 dead files: use-batch-processor.ts, use-i18n.ts, smart-crop.ts (AI package)
- Remove dead getJobProgress function and unused runPythonScript wrapper
- Remove 6 unused imports across API and web apps
- Remove unused shared types (ImageFormat, AppConfig, ApiError, HealthResponse, JobProgress)
and constants (SUPPORTED_INPUT_FORMATS/OUTPUT_FORMATS, DEFAULT_OUTPUT_FORMAT)
- Remove unused store method (setOriginalBlobUrl) and clean AI package re-exports
- Add test infrastructure: vitest config, unit/integration/e2e tests, fixtures, screenshots
- Add Docker test infrastructure: Dockerfile.test, docker-compose.test.yml
- Add download_models.py for pre-baking AI model weights in Docker
- Add filename sanitization utility (apps/api/src/lib/filename.ts)
- Update .gitignore to exclude coverage/, *.tsbuildinfo, .superpowers/, test artifacts
- Update .dockerignore to exclude test/coverage/IDE artifacts from builds
- Update docs: remove smart crop from AI docs (uses Sharp directly), update bridge docs
2026-03-23 11:46:45 +08:00
Siddharth Kumar Sah
acb230cc98
feat(ai): add onProgress callback to all AI wrapper functions
2026-03-23 01:39:52 +08:00
Siddharth Kumar Sah
723842988b
feat(ai): add emit_progress() calls to all Python AI scripts
2026-03-23 01:38:19 +08:00
Siddharth Kumar Sah
7d74ddd3a6
feat(ai): rewrite bridge.ts to stream stderr progress via spawn
2026-03-23 01:37:12 +08: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
fb1d366d5f
fix: use U2-Net as default model (fast, 2s) with BiRefNet as opt-in
...
BiRefNet-Lite times out on first load (~60s+ for 973MB model).
U2-Net works in 2 seconds. Users can still select BiRefNet for
higher quality when they're willing to wait. Added timing hints
in model descriptions and increased timeout for BiRefNet models.
2026-03-22 21:08:37 +08:00
Siddharth Kumar Sah
977b5f5ec0
fix: bridge.ts ENOENT check for Python venv fallback
2026-03-22 20:52:51 +08:00
Siddharth Kumar Sah
818d2acd94
fix: Python bridge fallback only on missing venv, not script errors
...
The bridge.ts catch block was catching ALL errors from the venv Python
and falling back to system python3. This masked real script errors
(like rembg model loading failures) by reporting "rembg not installed"
from the system python3 fallback. Now only falls back on ENOENT (venv
binary not found).
2026-03-22 20:41:04 +08:00
Siddharth Kumar Sah
2bdc367767
fix: use BiRefNet-Lite as default model and fix JSON parsing
...
- Switch default from birefnet-general (973MB, 4min) to
birefnet-general-lite (faster, still SOTA quality)
- Fix Python script stdout pollution — progress messages now go to
stderr so the JSON result parser doesn't break
- Pre-download birefnet-general-lite in Docker build
2026-03-22 20:07:39 +08:00
Siddharth Kumar Sah
77ee8469d8
feat: upgrade to BiRefNet SOTA background removal model
...
- Switch default model from U2-Net to BiRefNet (state-of-the-art)
- Add 6 model options: BiRefNet, BiRefNet Lite, BiRefNet Portrait,
BRIA RMBG, IS-Net, U2-Net
- Add animated progress bar with stage indicators (loading model,
analyzing, removing, refining edges) and elapsed timer
- Add intuitive background color presets (Transparent, White, Black,
Red, Green, Blue) as clickable buttons + custom color picker
- Handle background color compositing in Python (PIL alpha composite)
- Add checkerboard pattern to before/after slider for transparency
- Pre-bake BiRefNet model (973MB) in Docker image for instant use
2026-03-22 19:51:35 +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
19e48203bb
feat: add image-engine and ai stub packages
2026-03-22 02:44:46 +08:00