Siddharth Kumar Sah
fbdbe0949a
fix(crop): use percentCrop from onChange to fix inflated pixel values
...
react-image-crop's onChange passes (pixelCrop, percentCrop) — we were
using the first arg (display pixels) but treating them as percentages,
causing values to exceed image dimensions.
2026-03-24 00:41:30 +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 ](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 ))
v0.5.0
2026-03-23 11:23:50 +00:00
Siddharth Kumar Sah
8a89bc1ec9
Merge branch 'main' of https://github.com/siddharthksah/Stirling-Image
2026-03-23 19:23:17 +08:00
Siddharth Kumar Sah
786a671c39
feat(crop): wire CropCanvas and CropSettings into tool-page with bidirectional state
2026-03-23 19:22:53 +08:00
Siddharth Kumar Sah
70c73d85c9
fix: white screen crash when uploading photos with null GPS EXIF data
...
Samsung Galaxy phones (and others) can have GPS EXIF tags with null
coordinate values when location is disabled. The server returned
_latitude: null, and the client guard used !== undefined which passed
for null, causing null.toFixed() to crash React with no ErrorBoundary.
- Server: validate GPS array values are actual numbers before computing
- Client: use != null guard (catches both null and undefined)
- App: add ErrorBoundary to prevent white screens from any future crash
2026-03-23 19:22:52 +08:00
Siddharth Kumar Sah
c2c256a180
feat(crop): redesign CropSettings with aspect presets, pixel inputs, and grid toggle
2026-03-23 19:19:56 +08:00
Siddharth Kumar Sah
1a076be9b2
feat(crop): add CropCanvas component with visual overlay, grid, and keyboard controls
2026-03-23 19:18:03 +08:00
Siddharth Kumar Sah
31d426ff6f
feat(crop): add react-image-crop dependency
2026-03-23 19:17:02 +08:00
Siddharth Kumar Sah
db8ac42d4d
docs: add interactive crop tool implementation plan
2026-03-23 19:13:43 +08:00
Siddharth Kumar Sah
b9de028fd8
docs: add interactive crop tool design spec
2026-03-23 19:08:14 +08:00
Siddharth Kumar Sah
80756d1591
feat: merge multi-image UX — batch processing, filmstrip navigation, resize/rotate redesign
...
Integrates feature/multi-image-ux branch with 20 commits including:
- Multi-image viewer with arrow navigation and filmstrip thumbnails
- Batch processing across all tool settings components
- File store rewrite with FileEntry model for multi-image support
- Resize settings redesigned with tab-based UI (presets, custom, scale)
- Side-by-side comparison for resize results
- Per-file metadata caching in strip-metadata
- Client-side ZIP extraction via fflate
- SSE progress correlation via clientJobId
2026-03-23 17:13:10 +08: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 ))
v0.4.1
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 ](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 ))
v0.4.0
2026-03-23 07:15:07 +00:00
Siddharth Kumar Sah
4f984c83ac
fix: streamline CI/CD — remove broken AI docs updater, fix Docker publish
...
- Delete ai-docs-updater.yml (never worked: missing ANTHROPIC_API_KEY, tsx not found)
- Delete standalone docker-publish.yml (GITHUB_TOKEN can't trigger cross-workflow)
- Merge Docker build/push into release.yml as dependent job using .release-version
- Add publishCmd to .releaserc.json to signal new releases to Docker job
- Fix deploy-docs.yml: upgrade pnpm@v3→v4, node 20→22, add --frozen-lockfile
- Fix ci.yml: rename job to "Typecheck" (no lint step existed)
2026-03-23 15:14:34 +08:00
Siddharth Kumar Sah
8971debcfc
chore: add .worktrees/ to gitignore
2026-03-23 15:14:34 +08:00
Siddharth Kumar Sah
989e8dc6e4
feat: conditional result views — side-by-side for resize, live preview for rotate
2026-03-23 15:14:34 +08:00
Siddharth Kumar Sah
31a943962d
feat: add live preview callback to RotateSettings, rename button to Apply
2026-03-23 15:14:34 +08:00
Siddharth Kumar Sah
fdaf5656b2
docs: add multi-image UX implementation plan
...
12-task plan covering file store rewrite, MultiImageViewer with filmstrip,
batch processing with fflate ZIP extraction, multi-file metadata display,
and Docker build verification.
2026-03-23 15:14:34 +08:00
Siddharth Kumar Sah
113bb75733
feat: add CSS transform props to ImageViewer for live rotate/flip preview
2026-03-23 15:14:34 +08:00
Siddharth Kumar Sah
02ef3e6468
feat: rewrite resize settings with tab-based UI (presets, custom, scale)
2026-03-23 15:14:34 +08:00
Siddharth Kumar Sah
28a8b10fa1
feat: add SideBySideComparison component for resize results
2026-03-23 15:14:34 +08:00
Siddharth Kumar Sah
888b9dd51d
docs: add resize & rotate/flip UX redesign implementation plan
2026-03-23 15:14:34 +08:00
Siddharth Kumar Sah
c8b1639a9e
docs: add multi-image UX redesign spec
...
Design spec for overhauling multi-image upload/preview/processing UX:
- Bottom filmstrip thumbnail strip with left/right navigation arrows
- Hybrid batch processing (apply-to-all with per-file preview)
- Individual + ZIP download options
- Multi-file aware strip-metadata with existing /inspect endpoint
- File store evolution to per-file tracking with FileEntry model
2026-03-23 15:14:34 +08:00
Siddharth Kumar Sah
fc01a2f536
docs: address spec review feedback for resize/rotate redesign
...
Adds: state architecture for rotate preview, dimension data source,
fit mode defaults, mobile layout notes, extensibility guidance.
2026-03-23 15:14:34 +08:00
Siddharth Kumar Sah
308e428a01
docs: add resize & rotate/flip UX redesign spec
2026-03-23 15:14:34 +08:00
Siddharth Kumar Sah
1d35db98bf
fix: resolve TypeScript Uint8Array type error with fflate
2026-03-23 14:14:00 +08:00
Siddharth Kumar Sah
474b4a941e
feat: multi-file metadata display with per-file caching
2026-03-23 14:11:49 +08:00
Siddharth Kumar Sah
9e2c28f191
feat: wire up batch processing across tool settings components
2026-03-23 14:11:08 +08:00
Siddharth Kumar Sah
846a51a9fd
feat: add processAllFiles batch method to tool processor hook
2026-03-23 14:09:09 +08:00
Siddharth Kumar Sah
3796533822
feat: integrate MultiImageViewer and multi-file UX into tool page
2026-03-23 14:07:28 +08:00
Siddharth Kumar Sah
815a8ed419
feat: add MultiImageViewer with arrow navigation and filmstrip
2026-03-23 14:03:59 +08:00
Siddharth Kumar Sah
2514078ea1
feat: accept clientJobId in batch endpoint for SSE progress correlation
2026-03-23 14:03:56 +08:00
Siddharth Kumar Sah
6521d70238
feat: add ThumbnailStrip filmstrip component
2026-03-23 14:03:55 +08:00
Siddharth Kumar Sah
8844b44fff
feat: rewrite file-store with FileEntry model for multi-image support
2026-03-23 14:02:33 +08:00
Siddharth Kumar Sah
890ed21617
chore: add fflate for client-side ZIP extraction
2026-03-23 12:55:10 +08:00
Siddharth Kumar Sah
af23939a71
chore: add .worktrees/ to gitignore
2026-03-23 12:53:34 +08:00
Siddharth Kumar Sah
59a57f3a00
feat: conditional result views — side-by-side for resize, live preview for rotate
2026-03-23 12:53:18 +08:00
Siddharth Kumar Sah
ec192e3d96
feat: add live preview callback to RotateSettings, rename button to Apply
2026-03-23 12:51:29 +08:00
Siddharth Kumar Sah
624c3643cb
docs: add multi-image UX implementation plan
...
12-task plan covering file store rewrite, MultiImageViewer with filmstrip,
batch processing with fflate ZIP extraction, multi-file metadata display,
and Docker build verification.
2026-03-23 12:51:19 +08:00
Siddharth Kumar Sah
267da78577
feat: add CSS transform props to ImageViewer for live rotate/flip preview
2026-03-23 12:50:19 +08:00
Siddharth Kumar Sah
bc105fd261
feat: rewrite resize settings with tab-based UI (presets, custom, scale)
2026-03-23 12:49:20 +08:00
Siddharth Kumar Sah
271cab647b
feat: add SideBySideComparison component for resize results
2026-03-23 12:47:06 +08:00
Siddharth Kumar Sah
97147ece9d
docs: add resize & rotate/flip UX redesign implementation plan
2026-03-23 12:44:47 +08:00
Siddharth Kumar Sah
c31144b628
docs: add multi-image UX redesign spec
...
Design spec for overhauling multi-image upload/preview/processing UX:
- Bottom filmstrip thumbnail strip with left/right navigation arrows
- Hybrid batch processing (apply-to-all with per-file preview)
- Individual + ZIP download options
- Multi-file aware strip-metadata with existing /inspect endpoint
- File store evolution to per-file tracking with FileEntry model
2026-03-23 12:44:34 +08:00
Siddharth Kumar Sah
790a870995
docs: address spec review feedback for resize/rotate redesign
...
Adds: state architecture for rotate preview, dimension data source,
fit mode defaults, mobile layout notes, extensibility guidance.
2026-03-23 12:38:17 +08:00
Siddharth Kumar Sah
88001a8410
docs: add resize & rotate/flip UX redesign spec
2026-03-23 12:35:19 +08: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 ))
v0.3.1
2026-03-23 04:10:54 +00:00
Siddharth Kumar Sah
b803b0e443
fix: resolve tsx not found in AI docs updater workflow
...
Use pnpm exec from apps/docs workspace where tsx is installed,
update pnpm/action-setup to v4, and align Node version to 22.
2026-03-23 12:10:33 +08: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 ))
v0.3.0
2026-03-23 04:03:22 +00:00