Siddharth Kumar Sah
4a504281a3
fix: surface hidden errors and add batch rejection tests
...
Fix empty catch blocks in settings dialog (logo upload/delete) and
automate page (pipeline save) that silently swallowed errors. Users
now see error messages when these operations fail.
Add 5 integration tests verifying batch endpoint returns 404 for
custom-route tools (remove-background, upscale, ocr, blur-faces,
erase-object), matching the pipeline rejection tests.
2026-03-28 14:45:14 +08: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 ](https://github.com/siddharthksah/Stirling-Image/commit/658954ea19e17d1af83d45229ec40397de376042 ))
2026-03-28 06:40:48 +00:00
Siddharth Kumar Sah
658954ea19
fix: remove Google Drive coming soon placeholder from files nav
2026-03-28 14:40:23 +08: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 ](https://github.com/siddharthksah/Stirling-Image/commit/0410bf34610aa56391615ab3a95ea77a12668743 ))
2026-03-28 06:39:17 +00:00
Siddharth Kumar Sah
0410bf3461
fix: pipeline only shows compatible tools and displays errors
...
The pipeline tool picker was showing all tools, but only tools
registered via createToolRoute() support pipeline execution. Tools
with custom routes (remove-background, upscale, ocr, etc.) would
silently fail with "Tool not found" and the empty catch block hid
the error from users.
Add GET /api/v1/pipeline/tools endpoint that returns the IDs of
pipeline-compatible tools. The frontend fetches this list and filters
the tool picker accordingly. Also surface pipeline execution errors
in the UI instead of swallowing them.
2026-03-28 14:38:48 +08: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 ](https://github.com/siddharthksah/Stirling-Image/commit/565b4805c7b32af66bb07543c6d3bae2865dbbdd ))
2026-03-28 06:24:41 +00:00
Siddharth Kumar Sah
565b4805c7
fix: trigger browser password save prompt on password change
...
Safari, Chrome, and Firefox only offer to save passwords when they see
a real form submission with page navigation, not fetch() + redirect.
After the change-password API call succeeds, dynamically create a form
with the username and new password (autocomplete=username + new-password),
POST it to "/" causing a real navigation. The browser detects the form
submission with credential fields and prompts to save.
Also make the username field visible (read-only) on the change-password
page since Safari ignores hidden inputs for password detection, and add
autocomplete attributes to the login page fields.
2026-03-28 14:24:13 +08: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 ](https://github.com/siddharthksah/Stirling-Image/commit/7c76c2a2a0116de8418b0438a3859fc1add419e3 ))
2026-03-28 06:13:13 +00:00
Siddharth Kumar Sah
7c76c2a2a0
feat: add password generator and browser save prompt on change-password page
...
Add a "Generate strong password" button that creates a random 16-char
password meeting all requirements (uppercase, lowercase, digit).
Generated passwords are shown in plain text so users can copy them.
Add autocomplete attributes (current-password, new-password, username)
so browsers prompt to save the new credentials after submission.
2026-03-28 14:12:46 +08: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 ](https://github.com/siddharthksah/Stirling-Image/commit/01cd1d9f71427319284579b438ad08ede56517a6 ))
2026-03-28 06:02:41 +00:00
Siddharth Kumar Sah
01cd1d9f71
feat: add forced password change page on first login
...
The backend sets mustChangePassword=true for all new accounts and
blocks API calls until the password is changed. The frontend was not
handling this flag - it logged the user in and redirected to the
dashboard where every API call silently failed with 403.
Add a /change-password page that is shown when mustChangePassword is
true. The login page now redirects there instead of home, and the
AuthGuard intercepts any direct navigation to force the change first.
2026-03-28 14:02:13 +08: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 ](https://github.com/siddharthksah/Stirling-Image/commit/b08e006512744f13b893e92e9ac20ee6299ab41c ))
2026-03-28 04:49:54 +00:00
Siddharth Kumar Sah
9f68960eda
docs: rewrite README, add CONTRIBUTING.md, developer and translation guides
...
Rewrite README to remove AI writing patterns (em dashes, promotional
language, vague claims). Make Quick Start section explicit about default
credentials and forced password change. Add Contributing section linking
to CONTRIBUTING.md, developer guide, and translation guide.
Create CONTRIBUTING.md with issue guidelines, PR workflow, commit
conventions, and development setup. Add developer guide (dev setup,
project structure, how to add a tool) and translation guide (how the
i18n system works, step-by-step for adding a language) to VitePress
docs. Register both new pages in the docs sidebar.
2026-03-28 12:14:24 +08: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 ](https://github.com/siddharthksah/Stirling-Image/commit/ce5106524333b9bc7ee214b699d76e4b52371519 ))
2026-03-28 03:46:26 +00:00
Siddharth Kumar Sah
ce51065243
fix: handle migration race condition in concurrent test workers
...
Drizzle's migrate() throws when multiple vitest workers race to apply
migrations on the same temp database. The DrizzleError wraps a
SqliteError ("table already exists") in its cause chain. Add a
same-process guard and a catch that checks both the outer message and
cause for "already exists" so the second worker continues safely.
2026-03-28 11:45:54 +08: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 ](https://github.com/siddharthksah/Stirling-Image/commit/6cfa3b0c38d81a19b230e1bdbad750dce2783afb ))
2026-03-28 03:19:36 +00:00
Siddharth Kumar Sah
6cfa3b0c38
feat: multi-arch Docker support, security hardening, and test improvements
...
Remove hardcoded --platform=linux/amd64 from Dockerfile so buildx produces
native arm64 images for Apple Silicon and Raspberry Pi. Add audit logging
for auth events, harden file storage with extension whitelists and
double-extension attack prevention, reject null-byte buffers in validation,
add data-testid attributes to all tool settings components, update
deployment docs with architecture notes and correct CI workflow references,
and fix unit test mock to match throwWithMessage error extraction.
2026-03-28 11:19:09 +08: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 ](https://github.com/siddharthksah/Stirling-Image/commit/d3f6bac62b7e01e3a39371a1a52d865909412117 ))
2026-03-27 12:55:10 +00:00
Siddharth Kumar Sah
d3f6bac62b
fix(docs): remove hero logo from home page
2026-03-27 20:54:46 +08: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 ](https://github.com/siddharthksah/Stirling-Image/commit/98478e271934c8b3deb1b3003d88fe1a165e75a0 ))
2026-03-27 12:52:29 +00:00
Siddharth Kumar Sah
98478e2719
feat(docs): add gem logo to GitHub Pages nav bar and home hero
2026-03-27 20:52:06 +08:00
Siddharth Kumar Sah
8ae1d8cec3
docs: slim down REST API page to quick-start guide
...
The full API reference now lives at /api/docs (Scalar). This page
becomes a getting-started guide covering auth, tool pattern, tool IDs,
batch, pipelines, and errors — pointing to the interactive docs for
per-endpoint details.
2026-03-27 17:36:58 +08:00
Siddharth Kumar Sah
0e938c9b7e
docs: add llms.txt info box to REST API page and fix Swagger reference
2026-03-27 17:32:11 +08: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 ](https://github.com/siddharthksah/Stirling-Image/commit/a4d4d368286a80decf73563ca6d7e7cae119099a ))
2026-03-27 09:11:21 +00:00
Siddharth Kumar Sah
a4d4d36828
fix(docs): clean up footer llms.txt links
2026-03-27 17:10:58 +08: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 ](https://github.com/siddharthksah/Stirling-Image/commit/620b8ad038506a03633ab9baf738c6c316fa4336 ))
### Features
* **docs:** add llms.txt links to GitHub Pages footer ([c59e4a0 ](https://github.com/siddharthksah/Stirling-Image/commit/c59e4a06686db62ad8ec134ec1c97080673fbcb3 ))
2026-03-27 08:42:16 +00:00
Siddharth Kumar Sah
c59e4a0668
feat(docs): add llms.txt links to GitHub Pages footer
...
Add llms.txt and llms-full.txt links in the footer with
"AI-friendly docs" label. Also add link rel="llms-txt" head tag
for automatic discovery by AI tools.
2026-03-27 16:41:44 +08:00
Siddharth Kumar Sah
620b8ad038
fix(api): resolve team name lookup and show server error messages
...
- Backend: look up teams by name first (frontend sends name, not ID)
- Frontend: parse response body on API errors instead of showing
generic "API error: 400" — now shows the actual server message
(e.g. "Password must be at least 8 characters...")
2026-03-27 16:41:44 +08: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 ](https://github.com/siddharthksah/Stirling-Image/commit/5c4b2a59d3a9f1fa2dd428fd626f2bbbb9e3fea6 ))
2026-03-27 05:54:02 +00:00
Siddharth Kumar Sah
5c4b2a59d3
fix(docs): ignore localhost dead links in VitePress build
...
The /api/docs tip box links to localhost which fails the dead link
check in CI.
2026-03-27 13:53:34 +08: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 ](https://github.com/siddharthksah/Stirling-Image/commit/d47548a1d7d2de995c881465b79a463de20354df ))
* **api:** allow Scalar docs through auth and CSP ([a46d500 ](https://github.com/siddharthksah/Stirling-Image/commit/a46d500012e1f0724038c695a17e7dafd9be0c40 ))
* **api:** use content instead of spec.content for Scalar v1.49 API ([05854fd ](https://github.com/siddharthksah/Stirling-Image/commit/05854fd61f90a1096e1682ad021d744d178d9b9b ))
* **ui:** clean up settings, automate page, fullscreen logo, and README ([e3a8558 ](https://github.com/siddharthksah/Stirling-Image/commit/e3a85581349b6a992939b08ede932705613d915f ))
### Features
* **api:** add all remaining endpoints to OpenAPI spec ([9ed1090 ](https://github.com/siddharthksah/Stirling-Image/commit/9ed109065189f20545eb24893c2c0b9332e40249 ))
* **api:** add all tool endpoints to OpenAPI spec ([2bf8689 ](https://github.com/siddharthksah/Stirling-Image/commit/2bf86894d0005ff4c273334699c30de1fcb38ee6 ))
* **api:** add llms.txt and llms-full.txt endpoints ([cff1930 ](https://github.com/siddharthksah/Stirling-Image/commit/cff1930920c488fc853eab5aa36128fac19b3bf5 ))
* **api:** add OpenAPI 3.1 spec skeleton with common schemas ([9488201 ](https://github.com/siddharthksah/Stirling-Image/commit/948820180663783d463a07f966dd4336c1a7c503 ))
* **api:** add Scalar docs route and install dependency ([abb2916 ](https://github.com/siddharthksah/Stirling-Image/commit/abb2916233de85e62675e609b9d497dcc0a01882 ))
* **api:** register docs route in server and test helper ([849878e ](https://github.com/siddharthksah/Stirling-Image/commit/849878e72fc0e5cb3e775afeea802dac933c4e13 ))
* **branding:** add faceted gem SVG logo assets ([0214ac1 ](https://github.com/siddharthksah/Stirling-Image/commit/0214ac11b1ba4142349c09fd2465a425b4e8dd6b ))
* **branding:** add favicon and meta tags to index.html ([0364927 ](https://github.com/siddharthksah/Stirling-Image/commit/036492725eea6cb6b4c0aff307edeee8516ec280 ))
* **branding:** add OG social preview image ([dcd926c ](https://github.com/siddharthksah/Stirling-Image/commit/dcd926c57e9877c2b47e70c494b679f0c00d93d6 ))
* **branding:** add PWA manifest and PNG logo assets ([26cc183 ](https://github.com/siddharthksah/Stirling-Image/commit/26cc18342fb6d4027f2130b198090469e27ef797 ))
* **branding:** show gem icon in app header as default logo ([39dfb93 ](https://github.com/siddharthksah/Stirling-Image/commit/39dfb93679765366253115240adcbc573e83b8e7 ))
* **docs:** add gem favicon to VitePress site ([42ec0f2 ](https://github.com/siddharthksah/Stirling-Image/commit/42ec0f2490267f2e3730764539bdd2920b7b3793 ))
* **docs:** add llms.txt and llms-full.txt to GitHub Pages ([e6dc7b0 ](https://github.com/siddharthksah/Stirling-Image/commit/e6dc7b0a18d3d022de4e2f0b971bf25678042b3a ))
2026-03-27 05:51:30 +00:00
Siddharth Kumar Sah
e3a8558134
fix(ui): clean up settings, automate page, fullscreen logo, and README
...
- README: simplify to match Stirling-PDF style, add dashboard screenshot
- Settings: remove unsupported languages from dropdown, remove unused
experimental tools toggle
- Automate: remove hardcoded template pipelines from sidebar
- Fullscreen: add GemLogo icon to header
2026-03-27 13:50:04 +08:00
Siddharth Kumar Sah
e6dc7b0a18
feat(docs): add llms.txt and llms-full.txt to GitHub Pages
...
Serve LLM-friendly documentation at the docs site root.
llms.txt is the index, llms-full.txt has all docs in one file.
2026-03-27 13:50:04 +08: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
655398e184
test(api): add integration tests for API docs endpoint
...
Also update GitHub Pages REST API doc to link to /api/docs.
2026-03-27 13:50:03 +08:00
Siddharth Kumar Sah
9ed1090651
feat(api): add all remaining endpoints to OpenAPI spec
...
Add batch, pipeline, file, auth, API key, settings, teams, branding, and
system endpoints — bringing the total from 38 to 67 documented paths.
2026-03-27 13:50:03 +08:00
Siddharth Kumar Sah
2bf86894d0
feat(api): add all tool endpoints to OpenAPI spec
2026-03-27 13:50:03 +08:00
Siddharth Kumar Sah
05854fd61f
fix(api): use content instead of spec.content for Scalar v1.49 API
2026-03-27 13:50:03 +08:00
Siddharth Kumar Sah
9488201806
feat(api): add OpenAPI 3.1 spec skeleton with common schemas
2026-03-27 13:50:03 +08:00
Siddharth Kumar Sah
849878e72f
feat(api): register docs route in server and test helper
2026-03-27 13:50:03 +08:00
Siddharth Kumar Sah
a46d500012
fix(api): allow Scalar docs through auth and CSP
2026-03-27 13:50:03 +08:00
Siddharth Kumar Sah
abb2916233
feat(api): add Scalar docs route and install dependency
2026-03-27 13:50:03 +08:00
Siddharth Kumar Sah
dcd926c57e
feat(branding): add OG social preview image
2026-03-27 13:50:03 +08:00
Siddharth Kumar Sah
fadf0a8a22
refactor(branding): extract GemLogo to shared component and add to About section
2026-03-27 13:50:03 +08:00
Siddharth Kumar Sah
26cc18342f
feat(branding): add PWA manifest and PNG logo assets
2026-03-27 13:50:02 +08:00
Siddharth Kumar Sah
42ec0f2490
feat(docs): add gem favicon to VitePress site
2026-03-27 13:50:02 +08:00
Siddharth Kumar Sah
d47548a1d7
fix(a11y): add aria-hidden to decorative GemLogo SVG
2026-03-27 13:50:02 +08:00
Siddharth Kumar Sah
39dfb93679
feat(branding): show gem icon in app header as default logo
2026-03-27 13:50:02 +08:00
Siddharth Kumar Sah
036492725e
feat(branding): add favicon and meta tags to index.html
2026-03-27 13:50:02 +08:00
Siddharth Kumar Sah
0214ac11b1
feat(branding): add faceted gem SVG logo assets
2026-03-27 13:50:02 +08:00