Siddharth Kumar Sah
86ba69825a
feat: add permission checks and ownership scoping to user-files routes
...
Replace getAuthUser (optional auth) with requirePermission("files:own") on all
user-files routes, enforcing mandatory authentication and ownership checks.
Admin users with files:all permission bypass ownership restrictions. Returns 404
(not 403) for ownership failures to avoid leaking resource existence.
2026-04-10 21:25:30 +08:00
Siddharth Kumar Sah
d776680f2d
feat: add permission checks and admin override to API key routes
...
Replace requireAuth with requirePermission(apikeys:own). Admin users
with apikeys:all can see and delete any user's keys.
2026-04-10 21:25:30 +08:00
Siddharth Kumar Sah
af7f57d52f
feat: replace requireAdmin with requirePermission on all routes
...
Migrate settings, teams, branding, and user management routes to use
the new permission-based authorization system. Remove requireAdmin
function entirely.
2026-04-10 21:25:30 +08:00
Siddharth Kumar Sah
885ace54f0
feat: add tools:use permission check to tool, batch, pipeline, and upload routes
2026-04-10 21:25:30 +08:00
Siddharth Kumar Sah
49431772ec
feat: include permissions and teamName in login/session responses
2026-04-10 21:25:30 +08:00
Siddharth Kumar Sah
1a99571153
feat: add backend permission map and requirePermission middleware
...
Create the RBAC permission module that maps roles to permissions and
provides a requirePermission middleware to replace requireAdmin. Update
the test server to use requirePermission for the admin health check.
2026-04-10 21:25:30 +08:00
Siddharth Kumar Sah
2f594e9605
feat: add shared Permission and Role types
2026-04-10 21:25:29 +08:00
semantic-release-bot
e8bad0e67b
chore(release): 1.12.0 [skip ci]
...
# [1.12.0](https://github.com/stirling-image/stirling-image/compare/v1.11.0...v1.12.0 ) (2026-04-10)
### Bug Fixes
* **a11y:** add keyboard support to pdf-to-image upload dropzone ([1778f72 ](https://github.com/stirling-image/stirling-image/commit/1778f7266b9837a07b20f167e82e1e9b163086b7 ))
* use specific selector in pdf-to-image e2e test ([b2a2c89 ](https://github.com/stirling-image/stirling-image/commit/b2a2c890a1d25f60e392e6a2df23e1600cc3ad8d ))
### Features
* add pdf-to-image backend route with info and processing endpoints ([30155c1 ](https://github.com/stirling-image/stirling-image/commit/30155c1c7073c55290d4f662f7f93779cc4512b7 ))
* add pdf-to-image frontend settings component ([44bbfba ](https://github.com/stirling-image/stirling-image/commit/44bbfba80dfb3eb069c563e5ca691a0f8dce1eea ))
* register pdf-to-image in frontend tool registry ([5fd294c ](https://github.com/stirling-image/stirling-image/commit/5fd294c994e7df076c4de0016f62d952a161345b ))
* register pdf-to-image tool in shared constants and i18n ([43324c1 ](https://github.com/stirling-image/stirling-image/commit/43324c1f23e3f278c89fa301d5a0275b12f587e7 ))
* unified Docker image with GPU auto-detection ([#37 ](https://github.com/stirling-image/stirling-image/issues/37 )) ([b0083e2 ](https://github.com/stirling-image/stirling-image/commit/b0083e2b083d0bf52b6a576f7ef67fbff0cc8cbe ))
v1.12.0
2026-04-10 12:56:42 +00:00
Siddharth Kumar Sah
1778f7266b
fix(a11y): add keyboard support to pdf-to-image upload dropzone
2026-04-10 20:56:13 +08:00
Siddharth Kumar Sah
b2a2c890a1
fix: use specific selector in pdf-to-image e2e test
...
The getByText("3 pages") matched multiple elements including the
convert button. Scope the selector to the file info area.
2026-04-10 20:56:13 +08:00
Siddharth Kumar Sah
cab6772dab
test: add e2e test for pdf-to-image tool
2026-04-10 20:56:13 +08:00
Siddharth Kumar Sah
5fd294c994
feat: register pdf-to-image in frontend tool registry
2026-04-10 20:56:13 +08:00
Siddharth Kumar Sah
48cf919fb7
test: add integration tests for pdf-to-image endpoints
2026-04-10 20:56:13 +08:00
Siddharth Kumar Sah
44bbfba80d
feat: add pdf-to-image frontend settings component
2026-04-10 20:56:13 +08:00
Siddharth Kumar Sah
30155c1c70
feat: add pdf-to-image backend route with info and processing endpoints
2026-04-10 20:56:13 +08:00
Siddharth Kumar Sah
6b03cdb6d8
test: add unit tests for pdf-to-image page range parser
2026-04-10 20:56:13 +08:00
Siddharth Kumar Sah
43324c1f23
feat: register pdf-to-image tool in shared constants and i18n
2026-04-10 20:56:13 +08:00
Siddharth Kumar Sah
d650f301ca
chore: add mupdf dependency for PDF-to-image tool
2026-04-10 20:56:13 +08:00
semantic-release-bot
b20039eddf
chore(release): 1.12.0 [skip ci]
...
# [1.12.0](https://github.com/stirling-image/stirling-image/compare/v1.11.0...v1.12.0 ) (2026-04-10)
### Features
* unified Docker image with GPU auto-detection ([#37 ](https://github.com/stirling-image/stirling-image/issues/37 )) ([b0083e2 ](https://github.com/stirling-image/stirling-image/commit/b0083e2b083d0bf52b6a576f7ef67fbff0cc8cbe ))
2026-04-10 05:45:42 +00:00
stirling-image and GitHub
b0083e2b08
feat: unified Docker image with GPU auto-detection ( #37 )
...
Merge CPU, CUDA, and lite Docker images into a single unified image.
One tag (latest) works on all platforms: amd64 (NVIDIA CUDA) and arm64 (CPU).
GPU auto-detected at runtime. All ML models and packages baked in.
Key changes:
- Platform-conditional Dockerfile (nvidia/cuda on amd64, node on arm64)
- tini as PID 1 for proper signal handling
- Fix FILES_STORAGE_PATH data loss bug
- Fix RealESRGAN upscaler (was broken, always fell back to Lanczos)
- Fix PaddleOCR language codes and stdout corruption
- Simplified CI/CD (single build, single tag)
- Expanded model pre-download with verification
- Shutdown timeout, improved health endpoint
- Remove unused lama-cleaner
2026-04-10 13:21:06 +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