Siddharth Kumar Sah
b575243e9a
fix: add FILES_STORAGE_PATH to Dockerfile ENV to prevent data loss
...
User-uploaded files were stored in /app/data/files (container writable layer)
instead of /data/files (persistent volume) because the env var was not set in
the Dockerfile. Files were lost on container recreation.
2026-04-10 00:17:42 +08:00
semantic-release-bot
7bc979f677
chore(release): 1.11.0 [skip ci]
...
# [1.11.0](https://github.com/stirling-image/stirling-image/compare/v1.10.0...v1.11.0 ) (2026-04-07)
### Features
* **docs:** auto-generate llms.txt via vitepress-plugin-llms ([6a362d6 ](https://github.com/stirling-image/stirling-image/commit/6a362d6443cd85ac58a46f5b5cf29f9b6ff3020c ))
v1.11.0
2026-04-07 16:53:54 +00:00
Siddharth Kumar Sah
6a362d6443
feat(docs): auto-generate llms.txt via vitepress-plugin-llms
...
Replace static llms.txt and llms-full.txt with auto-generated versions
that stay in sync with docs on every build. The plugin also generates
per-page .md files for individual page fetching by LLMs.
2026-04-08 00:53:26 +08:00
Siddharth Kumar Sah
e8c6a26cb9
chore: add __pycache__ and .pyc to gitignore
2026-04-08 00:19:58 +08:00
semantic-release-bot
d4d421d3ff
chore(release): 1.10.0 [skip ci]
...
# [1.10.0](https://github.com/stirling-image/stirling-image/compare/v1.9.0...v1.10.0 ) (2026-04-07)
### Features
* add content-aware resize API route and registration ([d464942 ](https://github.com/stirling-image/stirling-image/commit/d464942cd9a7c1fecc837a14211e3fc5030d5cee ))
* add content-aware resize toggle to resize settings UI ([aace4ca ](https://github.com/stirling-image/stirling-image/commit/aace4caf0c5b10059a31e9dff5476d11b34b4323 ))
* add seam carving AI bridge module ([d3b6462 ](https://github.com/stirling-image/stirling-image/commit/d3b646207d3312aea9e12cc9435649b039bc4ac8 ))
* add seam carving Python script with face protection ([1460ab7 ](https://github.com/stirling-image/stirling-image/commit/1460ab7a4ad8235714ebd72ab1f8092baa456032 ))
v1.10.0
2026-04-07 16:11:15 +00:00
stirling-image and GitHub
28d0dfb45d
Merge pull request #28 from stirling-image/feat/content-aware-resize
...
feat: add content-aware resize (seam carving) to resize tool
2026-04-08 00:10:50 +08:00
Siddharth Kumar Sah
4435559d5f
chore: add seam-carving to Docker Python dependencies
2026-04-07 23:37:55 +08:00
Siddharth Kumar Sah
fc7d355d08
test: add integration tests for content-aware resize endpoint
2026-04-07 23:36:51 +08:00
Siddharth Kumar Sah
aace4caf0c
feat: add content-aware resize toggle to resize settings UI
2026-04-07 23:33:34 +08:00
Siddharth Kumar Sah
d464942cd9
feat: add content-aware resize API route and registration
2026-04-07 23:29:21 +08:00
Siddharth Kumar Sah
d3b646207d
feat: add seam carving AI bridge module
2026-04-07 23:26:47 +08:00
Siddharth Kumar Sah
18119166f0
refactor: align seam_carve.py with sidecar script conventions
2026-04-07 23:25:40 +08:00
Siddharth Kumar Sah
1460ab7a4a
feat: add seam carving Python script with face protection
2026-04-07 23:21:14 +08:00
semantic-release-bot
14deda12b8
chore(release): 1.9.0 [skip ci]
...
# [1.9.0](https://github.com/stirling-image/stirling-image/compare/v1.8.1...v1.9.0 ) (2026-04-07)
### Features
* add stitch API route handler ([1716468 ](https://github.com/stirling-image/stirling-image/commit/171646886f678b0f98140d378e675443bc7c737f ))
* add stitch settings UI component ([330bfcf ](https://github.com/stirling-image/stirling-image/commit/330bfcf162deeb30fb573702b554d304500eebde ))
* register stitch component in web tool registry ([7ec5d86 ](https://github.com/stirling-image/stirling-image/commit/7ec5d86d9123696e84ebeae603ec09ce4c1477d3 ))
* register stitch route in API tool registry ([66520cd ](https://github.com/stirling-image/stirling-image/commit/66520cdd0ee49bbecffdb3e248c03d2763aa5d08 ))
* register stitch tool in shared constants and i18n ([fbbbe70 ](https://github.com/stirling-image/stirling-image/commit/fbbbe70a35a6cd3cbc389503cff3333b85392871 ))
v1.9.0
2026-04-07 14:21:16 +00:00
stirling-image and GitHub
8b251df518
Merge pull request #27 from stirling-image/feat/stitch-tool
...
feat: add Stitch tool for joining images
2026-04-07 22:20:52 +08:00
Siddharth Kumar Sah
7ec5d86d91
feat: register stitch component in web tool registry
2026-04-07 21:55:49 +08:00
Siddharth Kumar Sah
330bfcf162
feat: add stitch settings UI component
2026-04-07 21:54:55 +08:00
Siddharth Kumar Sah
eda151faf3
test: add integration tests for stitch API endpoint
2026-04-07 21:53:42 +08:00
Siddharth Kumar Sah
66520cdd0e
feat: register stitch route in API tool registry
2026-04-07 21:52:28 +08:00
Siddharth Kumar Sah
171646886f
feat: add stitch API route handler
2026-04-07 21:51:24 +08:00
Siddharth Kumar Sah
fbbbe70a35
feat: register stitch tool in shared constants and i18n
2026-04-07 21:49:46 +08:00
Siddharth Kumar Sah
625e16c7b6
chore: remove all docs/superpowers from git tracking
...
These are local planning artifacts that should not be in the
repository. The directory is already gitignored.
2026-04-07 21:48:20 +08:00
Siddharth Kumar Sah
44dd66283f
chore: remove docs/superpowers spec from git tracking
2026-04-07 21:48:20 +08:00
Siddharth Kumar Sah
3c42d6625a
docs: add stitch tool design spec
...
New tool for joining images horizontally or vertically,
distinct from the grid-based collage tool. Preserves aspect
ratios with fit/original resize modes, optional gap, and
multi-format output.
2026-04-07 21:48:20 +08:00
semantic-release-bot
c598230331
chore(release): 1.8.1 [skip ci]
...
## [1.8.1](https://github.com/stirling-image/stirling-image/compare/v1.8.0...v1.8.1 ) (2026-04-07)
### Bug Fixes
* add variant diagnostics to health endpoint and lite mode banner ([3be388e ](https://github.com/stirling-image/stirling-image/commit/3be388e12f8bc6a35d30b1b94e2772f9e005bccd ))
v1.8.1
2026-04-07 10:35:05 +00:00
stirling-image and GitHub
463f7ff524
Merge pull request #26 from stirling-image/fix/lite-variant-diagnostics
...
fix: add variant diagnostics to health endpoint and lite mode banner
2026-04-07 18:34:41 +08:00
Siddharth Kumar Sah
3be388e12f
fix: add variant diagnostics to health endpoint and lite mode banner
...
Users running lite mode had no way to tell why AI tools were greyed out.
Now the public health endpoint reports the variant, and a visible banner
appears in the tool panel when running in lite mode.
2026-04-07 18:34:00 +08:00
semantic-release-bot
cd2db4afdd
chore(release): 1.8.0 [skip ci]
...
# [1.8.0](https://github.com/stirling-image/stirling-image/compare/v1.7.7...v1.8.0 ) (2026-04-06)
### Bug Fixes
* filter unsafe round-trip keys server-side in editMetadata ([a430e91 ](https://github.com/stirling-image/stirling-image/commit/a430e913245f6c83194cc1e47c34a327d80840d5 ))
### Features
* add edit-metadata API route with inspect and edit endpoints ([5284d5e ](https://github.com/stirling-image/stirling-image/commit/5284d5ece5dd393bf346f29d4d95b506f0c87c94 ))
* add edit-metadata UI component with granular strip support ([492eeb0 ](https://github.com/stirling-image/stirling-image/commit/492eeb0f962b50db598b5ac50cc9c2ceea9ce605 ))
* add EditMetadataOptions type and exif-reader dep to image-engine ([723c794 ](https://github.com/stirling-image/stirling-image/commit/723c79491ecbfc9795ba6bbdacc8e47caa903719 ))
* extract shared metadata parsing utilities into image-engine ([7fba05e ](https://github.com/stirling-image/stirling-image/commit/7fba05e1dccb4fd370848bf6b20276a9edffbd86 ))
* implement editMetadata operation in image-engine ([939bb04 ](https://github.com/stirling-image/stirling-image/commit/939bb049413202a4df37d1affa3765cd9a41e9e2 ))
* register edit-metadata in shared constants and i18n ([6ac366b ](https://github.com/stirling-image/stirling-image/commit/6ac366b1556b285c6764927267fcb3b885b90fe9 ))
v1.8.0
2026-04-06 14:09:07 +00:00
stirling-image and GitHub
b748b8e3b5
Merge pull request #22 from stirling-image/feat/edit-metadata
...
feat: add Edit Metadata tool
2026-04-06 22:08:43 +08:00
semantic-release-bot
b387d2d17a
chore(release): 1.7.7 [skip ci]
...
## [1.7.7](https://github.com/stirling-image/stirling-image/compare/v1.7.6...v1.7.7 ) (2026-04-06)
### Bug Fixes
* improve AI tool reliability for face detection and background removal ([#25 ](https://github.com/stirling-image/stirling-image/issues/25 )) ([2eb77fe ](https://github.com/stirling-image/stirling-image/commit/2eb77fe0f2a2340e69cb927ef7abd32eaa0400be ))
v1.7.7
2026-04-06 14:01:20 +00:00
2eb77fe0f2
fix: improve AI tool reliability for face detection and background removal ( #25 )
...
- Replace OpenCV Haar Cascades with MediaPipe for face detection, using
short-range model first with full-range fallback for better accuracy
- Add auto-orient to remove-background route for EXIF-rotated photos
- Change default background removal model from u2net to birefnet-general-lite
- Fix flaky test by setting SQLite busy_timeout before journal_mode pragma
Co-authored-by: Siddharth Kumar Sah <siddharth123sk@gmail.com >
2026-04-06 22:00:48 +08:00
semantic-release-bot
3c4562c9ce
chore(release): 1.7.6 [skip ci]
...
## [1.7.6](https://github.com/stirling-image/stirling-image/compare/v1.7.5...v1.7.6 ) (2026-04-06)
### Bug Fixes
* batch SSE progress and non-AI processing UX ([#24 ](https://github.com/stirling-image/stirling-image/issues/24 )) ([dc70cdb ](https://github.com/stirling-image/stirling-image/commit/dc70cdbdd589601446c2794fe85019c5e8252714 ))
v1.7.6
2026-04-06 13:25:24 +00:00
dc70cdbdd5
fix: batch SSE progress and non-AI processing UX ( #24 )
...
Batch progress was broken because JobProgress events lacked a `type`
field. The frontend checks `data.type === "batch"` to distinguish batch
from single-file SSE events, so batch progress was silently discarded
and multi-file processing appeared stuck at 15%.
Also improves the processing UX for non-AI (Sharp-based) tools: the
progress bar now pulses during the server processing phase and shows
a "This may take a moment" hint after 10 seconds.
Co-authored-by: Siddharth Kumar Sah <siddharth123sk@gmail.com >
2026-04-06 21:25:00 +08:00
semantic-release-bot
3018137548
chore(release): 1.7.5 [skip ci]
...
## [1.7.5](https://github.com/stirling-image/stirling-image/compare/v1.7.4...v1.7.5 ) (2026-04-06)
### Bug Fixes
* add server-side logging to AI tool routes ([#23 ](https://github.com/stirling-image/stirling-image/issues/23 )) ([75c7f13 ](https://github.com/stirling-image/stirling-image/commit/75c7f135feda6af190f1dd1f92dcf27d17229c31 ))
v1.7.5
2026-04-06 13:00:53 +00:00
75c7f135fe
fix: add server-side logging to AI tool routes ( #23 )
...
AI routes (remove-background, erase-object, ocr, blur-faces, upscale)
were silently swallowing errors - failures returned HTTP 422 to the
client but never appeared in server logs. This made it impossible for
self-hosters to diagnose issues like 504 timeouts from reverse proxies.
Adds request.log.info() at processing start (tool name, image size, key
settings) and request.log.error() in catch blocks, matching the existing
tool-factory pattern.
Co-authored-by: Siddharth Kumar Sah <siddharth123sk@gmail.com >
2026-04-06 21:00:29 +08:00
Siddharth Kumar Sah
a430e91324
fix: filter unsafe round-trip keys server-side in editMetadata
...
Prevent silent data corruption when the API is called directly
(bypassing UI guards). Binary/complex EXIF fields like MakerNote
are now filtered from fieldsToRemove in the image-engine operation.
2026-04-06 19:40:15 +08:00
Siddharth Kumar Sah
7962887387
test: add e2e tests for edit-metadata tool
2026-04-06 19:35:25 +08:00
Siddharth Kumar Sah
492eeb0f96
feat: add edit-metadata UI component with granular strip support
2026-04-06 19:34:00 +08:00
Siddharth Kumar Sah
d8bb2f1d61
refactor: extract shared metadata UI components from strip-metadata
2026-04-06 19:30:47 +08:00
Siddharth Kumar Sah
5284d5ece5
feat: add edit-metadata API route with inspect and edit endpoints
2026-04-06 19:27:33 +08:00
Siddharth Kumar Sah
1312858cf1
refactor: use shared metadata parsing in strip-metadata route
2026-04-06 19:24:05 +08:00
Siddharth Kumar Sah
6ac366b155
feat: register edit-metadata in shared constants and i18n
2026-04-06 19:23:18 +08:00
Siddharth Kumar Sah
939bb04941
feat: implement editMetadata operation in image-engine
2026-04-06 19:21:15 +08:00
Siddharth Kumar Sah
7fba05e1dc
feat: extract shared metadata parsing utilities into image-engine
...
Move sanitizeValue, parseExif, parseGps, parseXmp into the shared
image-engine package so both strip-metadata and edit-metadata can
reuse them. Includes 13 unit tests covering all four functions.
2026-04-06 19:12:56 +08:00
Siddharth Kumar Sah
723c79491e
feat: add EditMetadataOptions type and exif-reader dep to image-engine
2026-04-06 19:09:18 +08:00
Siddharth Kumar Sah
ec2010fa7b
test: add JPEG fixture with known EXIF data for edit-metadata tests
2026-04-06 19:08:18 +08:00
Siddharth Kumar Sah
9afea7b985
docs: add implementation plan for edit metadata tool
...
12-task plan covering: test fixture, image-engine types + parsing + operation,
strip-metadata refactor, API route, shared constants/i18n, shared UI
extraction, edit-metadata component, e2e tests, and Docker verification.
2026-04-06 19:05:13 +08:00
Siddharth Kumar Sah
b133a713a7
docs: add design spec for edit metadata tool
...
Design spec for new edit-metadata tool (issue #15 ). Covers common EXIF
field editing, GPS clearing, granular per-field stripping, and shared
metadata infrastructure extracted from strip-metadata.
2026-04-06 18:55:25 +08:00
stirling-image and GitHub
9e9a22cdd1
Update README.md
2026-04-06 15:24:42 +08:00
semantic-release-bot
48c803acfa
chore(release): 1.7.4 [skip ci]
...
## [1.7.4](https://github.com/stirling-image/stirling-image/compare/v1.7.3...v1.7.4 ) (2026-04-06)
### Bug Fixes
* batch file ordering and format preservation for image tools ([#20 ](https://github.com/stirling-image/stirling-image/issues/20 )) ([5d85562 ](https://github.com/stirling-image/stirling-image/commit/5d8556254f0684de7c3a1a177a28f8d1e0818cd3 )), closes [#13 ](https://github.com/stirling-image/stirling-image/issues/13 ) [#14 ](https://github.com/stirling-image/stirling-image/issues/14 )
v1.7.4
2026-04-06 04:54:19 +00:00