From 85b1cfc10acd9fbe92198757b0c9d337bfa34c38 Mon Sep 17 00:00:00 2001 From: Siddharth Kumar Sah Date: Tue, 14 Apr 2026 20:55:42 +0800 Subject: [PATCH] chore: rename Stirling-Image to ashim across entire codebase MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Complete rebrand from Stirling-Image to ashim following the project move to https://github.com/ashim-hq/ashim. Changes across 117 files: - Package scope: @stirling-image/* → @ashim/* - GitHub URLs: stirling-image/stirling-image → ashim-hq/ashim - Docker Hub: stirlingimage/stirling-image → ashimhq/ashim - GitHub Pages: stirling-image.github.io → ashim-hq.github.io - All branding text: "Stirling Image" → "ashim" - Docker service/volumes/user: stirling → ashim - Database: stirling.db → ashim.db - localStorage keys: stirling-token → ashim-token - Environment variables: STIRLING_GPU → ASHIM_GPU - Python cache dirs: .cache/stirling-image → .cache/ashim - SVG filter IDs, test prefixes, and all other references --- .env.example | 4 +- .github/FUNDING.yml | 4 +- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- .github/ISSUE_TEMPLATE/config.yml | 4 +- .github/pull_request_template.md | 6 +- .github/workflows/ci.yml | 2 +- .github/workflows/deploy-docs.yml | 2 +- .github/workflows/release.yml | 10 +- CHANGELOG.md | 812 +++++++++--------- CONTRIBUTING.md | 10 +- LICENSE | 2 +- README.md | 45 +- apps/api/drizzle.config.ts | 2 +- apps/api/package.json | 8 +- apps/api/src/index.ts | 8 +- apps/api/src/lib/env.ts | 4 +- apps/api/src/openapi.yaml | 6 +- apps/api/src/permissions.ts | 2 +- apps/api/src/routes/tools/blur-faces.ts | 2 +- .../api/src/routes/tools/color-adjustments.ts | 2 +- apps/api/src/routes/tools/colorize.ts | 2 +- apps/api/src/routes/tools/compress.ts | 2 +- .../src/routes/tools/content-aware-resize.ts | 2 +- apps/api/src/routes/tools/convert.ts | 2 +- apps/api/src/routes/tools/crop.ts | 2 +- apps/api/src/routes/tools/enhance-faces.ts | 2 +- apps/api/src/routes/tools/erase-object.ts | 2 +- .../api/src/routes/tools/image-enhancement.ts | 2 +- apps/api/src/routes/tools/index.ts | 2 +- apps/api/src/routes/tools/noise-removal.ts | 2 +- apps/api/src/routes/tools/ocr.ts | 2 +- apps/api/src/routes/tools/optimize-for-web.ts | 2 +- apps/api/src/routes/tools/passport-photo.ts | 4 +- apps/api/src/routes/tools/red-eye-removal.ts | 2 +- .../api/src/routes/tools/remove-background.ts | 2 +- apps/api/src/routes/tools/resize.ts | 2 +- apps/api/src/routes/tools/restore-photo.ts | 2 +- apps/api/src/routes/tools/rotate.ts | 2 +- apps/api/src/routes/tools/sharpening.ts | 2 +- apps/api/src/routes/tools/smart-crop.ts | 4 +- apps/api/src/routes/tools/strip-metadata.ts | 2 +- apps/api/src/routes/tools/upscale.ts | 2 +- apps/docs/.vitepress/config.mts | 20 +- apps/docs/.vitepress/theme/GitHubStars.vue | 4 +- apps/docs/api/ai.md | 2 +- apps/docs/api/image-engine.md | 2 +- apps/docs/api/rest.md | 2 +- apps/docs/guide/architecture.md | 10 +- apps/docs/guide/configuration.md | 14 +- apps/docs/guide/database.md | 6 +- apps/docs/guide/deployment.md | 22 +- apps/docs/guide/developer.md | 12 +- apps/docs/guide/docker-tags.md | 30 +- apps/docs/guide/getting-started.md | 30 +- apps/docs/guide/translations.md | 2 +- apps/docs/index.md | 2 +- apps/docs/package.json | 2 +- apps/web/index.html | 4 +- apps/web/package.json | 4 +- apps/web/public/logo.svg | 3 +- apps/web/public/manifest.json | 4 +- apps/web/src/components/common/dropzone.tsx | 2 +- .../src/components/common/review-panel.tsx | 2 +- apps/web/src/components/common/tool-card.tsx | 2 +- .../web/src/components/files/file-details.tsx | 2 +- .../src/components/files/file-list-item.tsx | 2 +- apps/web/src/components/help/help-dialog.tsx | 10 +- apps/web/src/components/layout/app-layout.tsx | 4 +- apps/web/src/components/layout/tool-panel.tsx | 2 +- .../components/settings/settings-dialog.tsx | 18 +- .../src/components/tools/collage-preview.tsx | 2 +- .../src/components/tools/color-settings.tsx | 12 +- .../tools/image-enhancement-settings.tsx | 8 +- .../tools/passport-photo-settings.tsx | 2 +- .../src/components/tools/pipeline-builder.tsx | 2 +- .../src/components/tools/resize-settings.tsx | 2 +- .../components/tools/smart-crop-settings.tsx | 2 +- apps/web/src/hooks/use-auth.ts | 4 +- apps/web/src/hooks/use-tool-processor.ts | 2 +- apps/web/src/lib/api.ts | 6 +- apps/web/src/pages/change-password-page.tsx | 6 +- apps/web/src/pages/fullscreen-grid-page.tsx | 6 +- apps/web/src/pages/home-page.tsx | 2 +- apps/web/src/pages/login-page.tsx | 4 +- apps/web/src/pages/privacy-policy-page.tsx | 14 +- apps/web/src/pages/tool-page.tsx | 2 +- apps/web/src/stores/theme-store.ts | 2 +- docker/Dockerfile | 14 +- docker/Dockerfile.test | 4 +- docker/docker-compose.test.yml | 8 +- docker/docker-compose.yml | 14 +- docker/download_models.py | 2 +- docker/entrypoint.sh | 10 +- package.json | 4 +- packages/ai/package.json | 4 +- packages/ai/python/enhance_faces.py | 2 +- packages/ai/python/gpu.py | 2 +- packages/ai/python/inpaint.py | 2 +- packages/ai/python/noise_removal.py | 2 +- packages/ai/python/restore.py | 4 +- packages/image-engine/package.json | 4 +- packages/shared/package.json | 2 +- packages/shared/src/i18n/en.ts | 2 +- playwright.config.ts | 4 +- pnpm-lock.yaml | 12 +- tests/e2e/home-page.spec.ts | 5 +- tests/e2e/rbac.spec.ts | 2 +- tests/e2e/settings.spec.ts | 2 +- tests/integration/api.test.ts | 2 +- tests/integration/docs.test.ts | 2 +- tests/integration/test-server.ts | 2 +- tests/unit/api/permissions.test.ts | 2 +- tests/unit/api/utilities.test.ts | 2 +- tests/unit/auto-enhance.test.ts | 2 +- tests/unit/image-engine/operations.test.ts | 6 +- tests/unit/web/stores.test.ts | 12 +- vitest.config.ts | 6 +- 117 files changed, 710 insertions(+), 713 deletions(-) diff --git a/.env.example b/.env.example index 6c3d400a..fb69e6d2 100644 --- a/.env.example +++ b/.env.example @@ -14,9 +14,9 @@ MAX_MEGAPIXELS=100 RATE_LIMIT_PER_MIN=100 # Set to true in CI/dev to skip the forced password-change on the default admin # SKIP_MUST_CHANGE_PASSWORD=false -DB_PATH=./data/stirling.db +DB_PATH=./data/ashim.db WORKSPACE_PATH=./tmp/workspace FILES_STORAGE_PATH=./data/files DEFAULT_THEME=light DEFAULT_LOCALE=en -APP_NAME=Stirling Image +APP_NAME=ashim diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index a7719d12..d2d44f2a 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,2 @@ -github: stirling-image -ko_fi: stirling-image +github: ashim-hq +ko_fi: ashim-hq diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 452293b6..3319630e 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -9,7 +9,7 @@ body: options: - label: I searched existing issues and didn't find a duplicate required: true - - label: I'm running the latest version of Stirling Image + - label: I'm running the latest version of ashim required: true - type: textarea diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 8460e358..3a505367 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,8 +1,8 @@ blank_issues_enabled: false contact_links: - name: Documentation - url: https://stirling-image.github.io/stirling-image/ + url: https://ashim-hq.github.io/ashim/ about: Check the docs for setup guides, configuration, and API reference. - name: Security vulnerability - url: https://github.com/stirling-image/stirling-image/security/advisories/new + url: https://github.com/ashim-hq/ashim/security/advisories/new about: Report security issues privately through GitHub Security Advisories. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 8fb25df1..6aaa3c36 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,12 +1,12 @@ -**This project does not accept pull requests.** Please close this PR and [open an issue](https://github.com/stirling-image/stirling-image/issues/new/choose) instead. See [CONTRIBUTING.md](CONTRIBUTING.md) for details. +**This project does not accept pull requests.** Please close this PR and [open an issue](https://github.com/ashim-hq/ashim/issues/new/choose) instead. See [CONTRIBUTING.md](CONTRIBUTING.md) for details. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0d0e784c..ae1e3422 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -92,6 +92,6 @@ jobs: context: . file: docker/Dockerfile push: false - tags: stirling-image:ci + tags: ashim:ci cache-from: type=gha,scope=unified cache-to: type=gha,mode=max,scope=unified diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 33600adc..aefd4bff 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -35,7 +35,7 @@ jobs: - name: Install dependencies run: pnpm install --frozen-lockfile - name: Build Docs - run: pnpm --filter @stirling-image/docs docs:build + run: pnpm --filter @ashim/docs docs:build - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ca7c60ad..e155c0a7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -100,7 +100,7 @@ jobs: uses: docker/metadata-action@v5 with: images: | - stirlingimage/stirling-image + ashimhq/ashim ghcr.io/${{ github.repository }} - name: Build and push by digest @@ -111,7 +111,7 @@ jobs: file: docker/Dockerfile platforms: ${{ matrix.platform }} labels: ${{ steps.meta.outputs.labels }} - outputs: type=image,"name=stirlingimage/stirling-image,ghcr.io/${{ github.repository }}",push-by-digest=true,name-canonical=true,push=true + outputs: type=image,"name=ashimhq/ashim,ghcr.io/${{ github.repository }}",push-by-digest=true,name-canonical=true,push=true cache-from: type=gha,scope=${{ env.PLATFORM_PAIR }} cache-to: type=gha,mode=max,scope=${{ env.PLATFORM_PAIR }} @@ -159,7 +159,7 @@ jobs: uses: docker/metadata-action@v5 with: images: | - stirlingimage/stirling-image + ashimhq/ashim ghcr.io/${{ github.repository }} tags: | type=semver,pattern={{version}},value=v${{ needs.release.outputs.new_version }} @@ -171,8 +171,8 @@ jobs: working-directory: /tmp/digests run: | docker buildx imagetools create \ - $(jq -cr '.tags | map(select(startswith("stirlingimage/")) | "-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ - $(printf 'stirlingimage/stirling-image@sha256:%s ' *) + $(jq -cr '.tags | map(select(startswith("ashimhq/")) | "-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ + $(printf 'ashimhq/ashim@sha256:%s ' *) - name: Create GHCR manifest working-directory: /tmp/digests diff --git a/CHANGELOG.md b/CHANGELOG.md index 05bf3a8d..831a147d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,746 +1,746 @@ -# [1.14.0](https://github.com/stirling-image/stirling-image/compare/v1.13.0...v1.14.0) (2026-04-10) +# [1.14.0](https://github.com/ashim-hq/ashim/compare/v1.13.0...v1.14.0) (2026-04-10) ### Bug Fixes -* add FILES_STORAGE_PATH to Dockerfile ENV to prevent data loss ([b575243](https://github.com/stirling-image/stirling-image/commit/b575243e9a0cb2ac4567d785a74e57dea912e9e2)) -* add shutdown timeout and improve health endpoint ([986ad37](https://github.com/stirling-image/stirling-image/commit/986ad37bb5e6644dd93521018a1bcd2d6243f502)) -* address code review findings before merge ([caf65bc](https://github.com/stirling-image/stirling-image/commit/caf65bc4697ddfea27674b56fd2e8de847edc734)) -* correct PaddleOCR language codes for model download and OCR ([e1ee571](https://github.com/stirling-image/stirling-image/commit/e1ee57103c201f104b737c2719d0014d4912d4b2)) -* force CPU mode in download_models.py for build-time compatibility ([b4b59a7](https://github.com/stirling-image/stirling-image/commit/b4b59a7500375bc2e65cb0050e5308b07610d2cf)) -* handle paddlepaddle-gpu CUDA import at build time gracefully ([0083a74](https://github.com/stirling-image/stirling-image/commit/0083a741a9a3924ccc37c4e622c2980a8a41f1a3)) -* install cuda-compat stubs for build-time PaddlePaddle import ([d31d665](https://github.com/stirling-image/stirling-image/commit/d31d66556ef0aa7c20a73a94f5d95b54b99fbb8a)) -* load RealESRGAN pretrained weights for actual AI upscaling ([fa9569c](https://github.com/stirling-image/stirling-image/commit/fa9569c920d6bdac094dcd661fc5cf3b4be3f17a)) -* revert to npx tsx in CMD for pnpm compatibility ([e55253d](https://github.com/stirling-image/stirling-image/commit/e55253dee03f9e93187d50e0ffb66b423a1230c0)) -* simplify smoke test to CPU-only imports for build-time compat ([3481663](https://github.com/stirling-image/stirling-image/commit/34816639609cbccab91a5cad5760fea769c4b565)) -* skip RealESRGAN import check on arm64 in smoke test ([1e2ef52](https://github.com/stirling-image/stirling-image/commit/1e2ef5284686253ae33e05411a515369b7f41a3e)) -* split paddlepaddle-gpu and paddleocr installs, use --extra-index-url ([74183e8](https://github.com/stirling-image/stirling-image/commit/74183e8dc1e3d8f90cff4484f5526c3c3dfba9a6)) -* suppress ML library stdout noise in ocr.py and upscale.py ([c0b419d](https://github.com/stirling-image/stirling-image/commit/c0b419de21acb92b243ef78191dff6a2153c5961)) -* use PaddlePaddle GPU package index for CUDA wheels ([dd9528f](https://github.com/stirling-image/stirling-image/commit/dd9528f53c9bcf148842ab94f14a4ebd5ae223ec)) -* use platform-specific mediapipe version for arm64 compatibility ([7face19](https://github.com/stirling-image/stirling-image/commit/7face19238f54cfea02d453b697e34b50ccd9d21)) +* add FILES_STORAGE_PATH to Dockerfile ENV to prevent data loss ([b575243](https://github.com/ashim-hq/ashim/commit/b575243e9a0cb2ac4567d785a74e57dea912e9e2)) +* add shutdown timeout and improve health endpoint ([986ad37](https://github.com/ashim-hq/ashim/commit/986ad37bb5e6644dd93521018a1bcd2d6243f502)) +* address code review findings before merge ([caf65bc](https://github.com/ashim-hq/ashim/commit/caf65bc4697ddfea27674b56fd2e8de847edc734)) +* correct PaddleOCR language codes for model download and OCR ([e1ee571](https://github.com/ashim-hq/ashim/commit/e1ee57103c201f104b737c2719d0014d4912d4b2)) +* force CPU mode in download_models.py for build-time compatibility ([b4b59a7](https://github.com/ashim-hq/ashim/commit/b4b59a7500375bc2e65cb0050e5308b07610d2cf)) +* handle paddlepaddle-gpu CUDA import at build time gracefully ([0083a74](https://github.com/ashim-hq/ashim/commit/0083a741a9a3924ccc37c4e622c2980a8a41f1a3)) +* install cuda-compat stubs for build-time PaddlePaddle import ([d31d665](https://github.com/ashim-hq/ashim/commit/d31d66556ef0aa7c20a73a94f5d95b54b99fbb8a)) +* load RealESRGAN pretrained weights for actual AI upscaling ([fa9569c](https://github.com/ashim-hq/ashim/commit/fa9569c920d6bdac094dcd661fc5cf3b4be3f17a)) +* revert to npx tsx in CMD for pnpm compatibility ([e55253d](https://github.com/ashim-hq/ashim/commit/e55253dee03f9e93187d50e0ffb66b423a1230c0)) +* simplify smoke test to CPU-only imports for build-time compat ([3481663](https://github.com/ashim-hq/ashim/commit/34816639609cbccab91a5cad5760fea769c4b565)) +* skip RealESRGAN import check on arm64 in smoke test ([1e2ef52](https://github.com/ashim-hq/ashim/commit/1e2ef5284686253ae33e05411a515369b7f41a3e)) +* split paddlepaddle-gpu and paddleocr installs, use --extra-index-url ([74183e8](https://github.com/ashim-hq/ashim/commit/74183e8dc1e3d8f90cff4484f5526c3c3dfba9a6)) +* suppress ML library stdout noise in ocr.py and upscale.py ([c0b419d](https://github.com/ashim-hq/ashim/commit/c0b419de21acb92b243ef78191dff6a2153c5961)) +* use PaddlePaddle GPU package index for CUDA wheels ([dd9528f](https://github.com/ashim-hq/ashim/commit/dd9528f53c9bcf148842ab94f14a4ebd5ae223ec)) +* use platform-specific mediapipe version for arm64 compatibility ([7face19](https://github.com/ashim-hq/ashim/commit/7face19238f54cfea02d453b697e34b50ccd9d21)) ### Features -* expand model pre-download with verification and smoke test ([a9e3b96](https://github.com/stirling-image/stirling-image/commit/a9e3b9688776a51efd2f42cae810de425cf1d9cf)) -* simplify CI to single unified Docker build ([b385a2e](https://github.com/stirling-image/stirling-image/commit/b385a2eabb255f7a8fe2d3720a358ff5bf254310)) -* simplify compose to single file, add log rotation ([84f7057](https://github.com/stirling-image/stirling-image/commit/84f7057a49850b7a47440099ec2caad8d3b87efe)) -* unified Docker image with GPU auto-detection ([6c3eb3b](https://github.com/stirling-image/stirling-image/commit/6c3eb3b876cee0301d5fb3ed8324a3c8e92b1307)) +* expand model pre-download with verification and smoke test ([a9e3b96](https://github.com/ashim-hq/ashim/commit/a9e3b9688776a51efd2f42cae810de425cf1d9cf)) +* simplify CI to single unified Docker build ([b385a2e](https://github.com/ashim-hq/ashim/commit/b385a2eabb255f7a8fe2d3720a358ff5bf254310)) +* simplify compose to single file, add log rotation ([84f7057](https://github.com/ashim-hq/ashim/commit/84f7057a49850b7a47440099ec2caad8d3b87efe)) +* unified Docker image with GPU auto-detection ([6c3eb3b](https://github.com/ashim-hq/ashim/commit/6c3eb3b876cee0301d5fb3ed8324a3c8e92b1307)) -# [1.13.0](https://github.com/stirling-image/stirling-image/compare/v1.12.0...v1.13.0) (2026-04-10) +# [1.13.0](https://github.com/ashim-hq/ashim/compare/v1.12.0...v1.13.0) (2026-04-10) ### Bug Fixes -* complete RBAC implementation lost during merge ([cc8a272](https://github.com/stirling-image/stirling-image/commit/cc8a27239b02a63ca88abc3e363c8a46f89674e8)) +* complete RBAC implementation lost during merge ([cc8a272](https://github.com/ashim-hq/ashim/commit/cc8a27239b02a63ca88abc3e363c8a46f89674e8)) ### Features -* add backend permission map and requirePermission middleware ([1a99571](https://github.com/stirling-image/stirling-image/commit/1a995711535a1525e709cdd7bff75361f457e942)) -* add permission checks and admin override to API key routes ([d776680](https://github.com/stirling-image/stirling-image/commit/d776680f2d2342e35b84821792d6c24ae7e0ffbc)) -* add permission checks and admin override to pipeline routes ([59f40db](https://github.com/stirling-image/stirling-image/commit/59f40dbfd4a97f8691b5fbbf6d338063c389987b)) -* add permission checks and ownership scoping to user-files routes ([86ba698](https://github.com/stirling-image/stirling-image/commit/86ba69825a1dd87c9f868d79cd806b7d594cce1b)) -* add shared Permission and Role types ([2f594e9](https://github.com/stirling-image/stirling-image/commit/2f594e96057c72bf107f3012426e87af5f97eb94)) -* add tools:use permission check to tool, batch, pipeline, and upload routes ([885ace5](https://github.com/stirling-image/stirling-image/commit/885ace54f09b3301989f8aa404c15f60e19c054d)) -* extend useAuth hook with role and permissions from session ([e0ba8be](https://github.com/stirling-image/stirling-image/commit/e0ba8be7b3211299c8cde90b2d22e7796eee2206)) -* filter settings tabs by user permissions, remove admin fallback ([bcbd24a](https://github.com/stirling-image/stirling-image/commit/bcbd24a2395b93b64dbbf638ba0138f9ec9ba9da)) -* include permissions and teamName in login/session responses ([4943177](https://github.com/stirling-image/stirling-image/commit/49431772ec6a02eae8aced48da92ef87a6c89afb)) -* replace requireAdmin with requirePermission on all routes ([af7f57d](https://github.com/stirling-image/stirling-image/commit/af7f57d52f49c8f8412876639076084c96eba284)) +* add backend permission map and requirePermission middleware ([1a99571](https://github.com/ashim-hq/ashim/commit/1a995711535a1525e709cdd7bff75361f457e942)) +* add permission checks and admin override to API key routes ([d776680](https://github.com/ashim-hq/ashim/commit/d776680f2d2342e35b84821792d6c24ae7e0ffbc)) +* add permission checks and admin override to pipeline routes ([59f40db](https://github.com/ashim-hq/ashim/commit/59f40dbfd4a97f8691b5fbbf6d338063c389987b)) +* add permission checks and ownership scoping to user-files routes ([86ba698](https://github.com/ashim-hq/ashim/commit/86ba69825a1dd87c9f868d79cd806b7d594cce1b)) +* add shared Permission and Role types ([2f594e9](https://github.com/ashim-hq/ashim/commit/2f594e96057c72bf107f3012426e87af5f97eb94)) +* add tools:use permission check to tool, batch, pipeline, and upload routes ([885ace5](https://github.com/ashim-hq/ashim/commit/885ace54f09b3301989f8aa404c15f60e19c054d)) +* extend useAuth hook with role and permissions from session ([e0ba8be](https://github.com/ashim-hq/ashim/commit/e0ba8be7b3211299c8cde90b2d22e7796eee2206)) +* filter settings tabs by user permissions, remove admin fallback ([bcbd24a](https://github.com/ashim-hq/ashim/commit/bcbd24a2395b93b64dbbf638ba0138f9ec9ba9da)) +* include permissions and teamName in login/session responses ([4943177](https://github.com/ashim-hq/ashim/commit/49431772ec6a02eae8aced48da92ef87a6c89afb)) +* replace requireAdmin with requirePermission on all routes ([af7f57d](https://github.com/ashim-hq/ashim/commit/af7f57d52f49c8f8412876639076084c96eba284)) -# [1.12.0](https://github.com/stirling-image/stirling-image/compare/v1.11.0...v1.12.0) (2026-04-10) +# [1.12.0](https://github.com/ashim-hq/ashim/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)) +* **a11y:** add keyboard support to pdf-to-image upload dropzone ([1778f72](https://github.com/ashim-hq/ashim/commit/1778f7266b9837a07b20f167e82e1e9b163086b7)) +* use specific selector in pdf-to-image e2e test ([b2a2c89](https://github.com/ashim-hq/ashim/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)) +* add pdf-to-image backend route with info and processing endpoints ([30155c1](https://github.com/ashim-hq/ashim/commit/30155c1c7073c55290d4f662f7f93779cc4512b7)) +* add pdf-to-image frontend settings component ([44bbfba](https://github.com/ashim-hq/ashim/commit/44bbfba80dfb3eb069c563e5ca691a0f8dce1eea)) +* register pdf-to-image in frontend tool registry ([5fd294c](https://github.com/ashim-hq/ashim/commit/5fd294c994e7df076c4de0016f62d952a161345b)) +* register pdf-to-image tool in shared constants and i18n ([43324c1](https://github.com/ashim-hq/ashim/commit/43324c1f23e3f278c89fa301d5a0275b12f587e7)) +* unified Docker image with GPU auto-detection ([#37](https://github.com/ashim-hq/ashim/issues/37)) ([b0083e2](https://github.com/ashim-hq/ashim/commit/b0083e2b083d0bf52b6a576f7ef67fbff0cc8cbe)) -# [1.12.0](https://github.com/stirling-image/stirling-image/compare/v1.11.0...v1.12.0) (2026-04-10) +# [1.12.0](https://github.com/ashim-hq/ashim/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)) +* unified Docker image with GPU auto-detection ([#37](https://github.com/ashim-hq/ashim/issues/37)) ([b0083e2](https://github.com/ashim-hq/ashim/commit/b0083e2b083d0bf52b6a576f7ef67fbff0cc8cbe)) -# [1.11.0](https://github.com/stirling-image/stirling-image/compare/v1.10.0...v1.11.0) (2026-04-07) +# [1.11.0](https://github.com/ashim-hq/ashim/compare/v1.10.0...v1.11.0) (2026-04-07) ### Features -* **docs:** auto-generate llms.txt via vitepress-plugin-llms ([ee28ec6](https://github.com/stirling-image/stirling-image/commit/ee28ec66ea137127bb1f4f1bf9e43be0b9f78cbf)) +* **docs:** auto-generate llms.txt via vitepress-plugin-llms ([ee28ec6](https://github.com/ashim-hq/ashim/commit/ee28ec66ea137127bb1f4f1bf9e43be0b9f78cbf)) -# [1.10.0](https://github.com/stirling-image/stirling-image/compare/v1.9.0...v1.10.0) (2026-04-07) +# [1.10.0](https://github.com/ashim-hq/ashim/compare/v1.9.0...v1.10.0) (2026-04-07) ### Features -* add content-aware resize API route and registration ([aa3cc5c](https://github.com/stirling-image/stirling-image/commit/aa3cc5c6d0d602bcc88dac23684620676c4b3a3f)) -* add content-aware resize toggle to resize settings UI ([4b4464f](https://github.com/stirling-image/stirling-image/commit/4b4464f4a0b63ec312d961fecc22232b39e14872)) -* add seam carving AI bridge module ([3c0f5b6](https://github.com/stirling-image/stirling-image/commit/3c0f5b6c45bf0ba8b37d67aa0fa25d3c3603e888)) -* add seam carving Python script with face protection ([fb833e4](https://github.com/stirling-image/stirling-image/commit/fb833e4613ab8aa63b95facc2fe621eaa27e438a)) +* add content-aware resize API route and registration ([aa3cc5c](https://github.com/ashim-hq/ashim/commit/aa3cc5c6d0d602bcc88dac23684620676c4b3a3f)) +* add content-aware resize toggle to resize settings UI ([4b4464f](https://github.com/ashim-hq/ashim/commit/4b4464f4a0b63ec312d961fecc22232b39e14872)) +* add seam carving AI bridge module ([3c0f5b6](https://github.com/ashim-hq/ashim/commit/3c0f5b6c45bf0ba8b37d67aa0fa25d3c3603e888)) +* add seam carving Python script with face protection ([fb833e4](https://github.com/ashim-hq/ashim/commit/fb833e4613ab8aa63b95facc2fe621eaa27e438a)) -# [1.9.0](https://github.com/stirling-image/stirling-image/compare/v1.8.1...v1.9.0) (2026-04-07) +# [1.9.0](https://github.com/ashim-hq/ashim/compare/v1.8.1...v1.9.0) (2026-04-07) ### Features -* add stitch API route handler ([63ea0ba](https://github.com/stirling-image/stirling-image/commit/63ea0ba5ef23ba3b1b296ae21358ce150f8f2bf2)) -* add stitch settings UI component ([6abe893](https://github.com/stirling-image/stirling-image/commit/6abe893c467b4b868383e15316132787d5831029)) -* register stitch component in web tool registry ([612f7d9](https://github.com/stirling-image/stirling-image/commit/612f7d90124e92ba324a59b5a6642290dc216cff)) -* register stitch route in API tool registry ([a37d54f](https://github.com/stirling-image/stirling-image/commit/a37d54f2c1e72b711901b87367b4d1c9ba2a5c5b)) -* register stitch tool in shared constants and i18n ([b881416](https://github.com/stirling-image/stirling-image/commit/b881416a164cc482a050adc93164fa1c88937a2f)) +* add stitch API route handler ([63ea0ba](https://github.com/ashim-hq/ashim/commit/63ea0ba5ef23ba3b1b296ae21358ce150f8f2bf2)) +* add stitch settings UI component ([6abe893](https://github.com/ashim-hq/ashim/commit/6abe893c467b4b868383e15316132787d5831029)) +* register stitch component in web tool registry ([612f7d9](https://github.com/ashim-hq/ashim/commit/612f7d90124e92ba324a59b5a6642290dc216cff)) +* register stitch route in API tool registry ([a37d54f](https://github.com/ashim-hq/ashim/commit/a37d54f2c1e72b711901b87367b4d1c9ba2a5c5b)) +* register stitch tool in shared constants and i18n ([b881416](https://github.com/ashim-hq/ashim/commit/b881416a164cc482a050adc93164fa1c88937a2f)) -## [1.8.1](https://github.com/stirling-image/stirling-image/compare/v1.8.0...v1.8.1) (2026-04-07) +## [1.8.1](https://github.com/ashim-hq/ashim/compare/v1.8.0...v1.8.1) (2026-04-07) ### Bug Fixes -* add variant diagnostics to health endpoint and lite mode banner ([2c6e499](https://github.com/stirling-image/stirling-image/commit/2c6e4996d5d711d1d20fb6105f55da48d6f04c62)) +* add variant diagnostics to health endpoint and lite mode banner ([2c6e499](https://github.com/ashim-hq/ashim/commit/2c6e4996d5d711d1d20fb6105f55da48d6f04c62)) -# [1.8.0](https://github.com/stirling-image/stirling-image/compare/v1.7.7...v1.8.0) (2026-04-06) +# [1.8.0](https://github.com/ashim-hq/ashim/compare/v1.7.7...v1.8.0) (2026-04-06) ### Bug Fixes -* filter unsafe round-trip keys server-side in editMetadata ([32bde85](https://github.com/stirling-image/stirling-image/commit/32bde85956c4d99c7b8c255fc3166a79a72644ff)) +* filter unsafe round-trip keys server-side in editMetadata ([32bde85](https://github.com/ashim-hq/ashim/commit/32bde85956c4d99c7b8c255fc3166a79a72644ff)) ### Features -* add edit-metadata API route with inspect and edit endpoints ([ff07b83](https://github.com/stirling-image/stirling-image/commit/ff07b8301ce3db875307296d62a17037fa960360)) -* add edit-metadata UI component with granular strip support ([dcd600d](https://github.com/stirling-image/stirling-image/commit/dcd600d0f4a4ded2669d3471926d63288aaada84)) -* add EditMetadataOptions type and exif-reader dep to image-engine ([39bc5bc](https://github.com/stirling-image/stirling-image/commit/39bc5bc9eb02f21774fed1c0a4fbdd3d09623483)) -* extract shared metadata parsing utilities into image-engine ([c075849](https://github.com/stirling-image/stirling-image/commit/c07584993f99de2eaa455c9962e3ab3eaadd9613)) -* implement editMetadata operation in image-engine ([f3be1ef](https://github.com/stirling-image/stirling-image/commit/f3be1efd8b03bef84e9237fc3dac8bc6f70ff234)) -* register edit-metadata in shared constants and i18n ([4a424d7](https://github.com/stirling-image/stirling-image/commit/4a424d74b5a82aff26f09b67de3f3ab4c0f5555e)) +* add edit-metadata API route with inspect and edit endpoints ([ff07b83](https://github.com/ashim-hq/ashim/commit/ff07b8301ce3db875307296d62a17037fa960360)) +* add edit-metadata UI component with granular strip support ([dcd600d](https://github.com/ashim-hq/ashim/commit/dcd600d0f4a4ded2669d3471926d63288aaada84)) +* add EditMetadataOptions type and exif-reader dep to image-engine ([39bc5bc](https://github.com/ashim-hq/ashim/commit/39bc5bc9eb02f21774fed1c0a4fbdd3d09623483)) +* extract shared metadata parsing utilities into image-engine ([c075849](https://github.com/ashim-hq/ashim/commit/c07584993f99de2eaa455c9962e3ab3eaadd9613)) +* implement editMetadata operation in image-engine ([f3be1ef](https://github.com/ashim-hq/ashim/commit/f3be1efd8b03bef84e9237fc3dac8bc6f70ff234)) +* register edit-metadata in shared constants and i18n ([4a424d7](https://github.com/ashim-hq/ashim/commit/4a424d74b5a82aff26f09b67de3f3ab4c0f5555e)) -## [1.7.7](https://github.com/stirling-image/stirling-image/compare/v1.7.6...v1.7.7) (2026-04-06) +## [1.7.7](https://github.com/ashim-hq/ashim/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)) ([1963a80](https://github.com/stirling-image/stirling-image/commit/1963a8012c572fe86132e6847e313019165416da)) +* improve AI tool reliability for face detection and background removal ([#25](https://github.com/ashim-hq/ashim/issues/25)) ([1963a80](https://github.com/ashim-hq/ashim/commit/1963a8012c572fe86132e6847e313019165416da)) -## [1.7.6](https://github.com/stirling-image/stirling-image/compare/v1.7.5...v1.7.6) (2026-04-06) +## [1.7.6](https://github.com/ashim-hq/ashim/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)) ([0ce42d1](https://github.com/stirling-image/stirling-image/commit/0ce42d1b2fa4f0b753a962a1f45a491e29ecee24)) +* batch SSE progress and non-AI processing UX ([#24](https://github.com/ashim-hq/ashim/issues/24)) ([0ce42d1](https://github.com/ashim-hq/ashim/commit/0ce42d1b2fa4f0b753a962a1f45a491e29ecee24)) -## [1.7.5](https://github.com/stirling-image/stirling-image/compare/v1.7.4...v1.7.5) (2026-04-06) +## [1.7.5](https://github.com/ashim-hq/ashim/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)) ([3645de8](https://github.com/stirling-image/stirling-image/commit/3645de89326644c5173cdfee58f6b762cb308609)) +* add server-side logging to AI tool routes ([#23](https://github.com/ashim-hq/ashim/issues/23)) ([3645de8](https://github.com/ashim-hq/ashim/commit/3645de89326644c5173cdfee58f6b762cb308609)) -## [1.7.4](https://github.com/stirling-image/stirling-image/compare/v1.7.3...v1.7.4) (2026-04-06) +## [1.7.4](https://github.com/ashim-hq/ashim/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)) ([822a078](https://github.com/stirling-image/stirling-image/commit/822a078882ba4ade851c68bc8fe115dc69cb2a81)), closes [#13](https://github.com/stirling-image/stirling-image/issues/13) [#14](https://github.com/stirling-image/stirling-image/issues/14) +* batch file ordering and format preservation for image tools ([#20](https://github.com/ashim-hq/ashim/issues/20)) ([822a078](https://github.com/ashim-hq/ashim/commit/822a078882ba4ade851c68bc8fe115dc69cb2a81)), closes [#13](https://github.com/ashim-hq/ashim/issues/13) [#14](https://github.com/ashim-hq/ashim/issues/14) -## [1.7.3](https://github.com/stirling-image/stirling-image/compare/v1.7.2...v1.7.3) (2026-04-06) +## [1.7.3](https://github.com/ashim-hq/ashim/compare/v1.7.2...v1.7.3) (2026-04-06) ### Bug Fixes -* **docs:** correct broken llms.txt links on REST API page ([5e3a8b3](https://github.com/stirling-image/stirling-image/commit/5e3a8b390c33812b7c4d0044b2a0ba3719d380ac)) +* **docs:** correct broken llms.txt links on REST API page ([5e3a8b3](https://github.com/ashim-hq/ashim/commit/5e3a8b390c33812b7c4d0044b2a0ba3719d380ac)) -## [1.7.2](https://github.com/stirling-image/stirling-image/compare/v1.7.1...v1.7.2) (2026-04-05) +## [1.7.2](https://github.com/ashim-hq/ashim/compare/v1.7.1...v1.7.2) (2026-04-05) ### Bug Fixes -* use torch.cuda for GPU detection instead of onnxruntime providers ([7185bd5](https://github.com/stirling-image/stirling-image/commit/7185bd5ce373a42cd94e750765ee11d328fb34bb)) +* use torch.cuda for GPU detection instead of onnxruntime providers ([7185bd5](https://github.com/ashim-hq/ashim/commit/7185bd5ce373a42cd94e750765ee11d328fb34bb)) -## [1.7.1](https://github.com/stirling-image/stirling-image/compare/v1.7.0...v1.7.1) (2026-04-05) +## [1.7.1](https://github.com/ashim-hq/ashim/compare/v1.7.0...v1.7.1) (2026-04-05) ### Bug Fixes -* prevent false GPU detection when CUDA image runs without GPU ([1efb163](https://github.com/stirling-image/stirling-image/commit/1efb163acd0271f956fb777955f8701460230def)) +* prevent false GPU detection when CUDA image runs without GPU ([1efb163](https://github.com/ashim-hq/ashim/commit/1efb163acd0271f956fb777955f8701460230def)) -# [1.7.0](https://github.com/stirling-image/stirling-image/compare/v1.6.0...v1.7.0) (2026-04-05) +# [1.7.0](https://github.com/ashim-hq/ashim/compare/v1.6.0...v1.7.0) (2026-04-05) ### Bug Fixes -* **web:** skip empty Authorization header for forward-auth proxy compatibility ([636153f](https://github.com/stirling-image/stirling-image/commit/636153f8f131e683b2553df2732e967772e07017)), closes [#6](https://github.com/stirling-image/stirling-image/issues/6) +* **web:** skip empty Authorization header for forward-auth proxy compatibility ([636153f](https://github.com/ashim-hq/ashim/commit/636153f8f131e683b2553df2732e967772e07017)), closes [#6](https://github.com/ashim-hq/ashim/issues/6) ### Features -* add GPU/CUDA acceleration support (:cuda Docker tag) ([a5f62f0](https://github.com/stirling-image/stirling-image/commit/a5f62f0d1426092b6b0164cf1ae1159a392ebf44)) +* add GPU/CUDA acceleration support (:cuda Docker tag) ([a5f62f0](https://github.com/ashim-hq/ashim/commit/a5f62f0d1426092b6b0164cf1ae1159a392ebf44)) -# [1.6.0](https://github.com/stirling-image/stirling-image/compare/v1.5.3...v1.6.0) (2026-04-04) +# [1.6.0](https://github.com/ashim-hq/ashim/compare/v1.5.3...v1.6.0) (2026-04-04) ### Features -* lightweight Docker image without AI/ML tools (:lite tag) ([3a0b988](https://github.com/stirling-image/stirling-image/commit/3a0b988b746a5fbe6df10fe8ee288e30e42d747f)), closes [#1](https://github.com/stirling-image/stirling-image/issues/1) +* lightweight Docker image without AI/ML tools (:lite tag) ([3a0b988](https://github.com/ashim-hq/ashim/commit/3a0b988b746a5fbe6df10fe8ee288e30e42d747f)), closes [#1](https://github.com/ashim-hq/ashim/issues/1) -## [1.5.3](https://github.com/stirling-image/stirling-image/compare/v1.5.2...v1.5.3) (2026-04-04) +## [1.5.3](https://github.com/ashim-hq/ashim/compare/v1.5.2...v1.5.3) (2026-04-04) ### Bug Fixes -* use heif-convert for HEIC decoding on Linux ([da15a1e](https://github.com/stirling-image/stirling-image/commit/da15a1e833c15c3d93a9da734d354b725b99b0bf)) +* use heif-convert for HEIC decoding on Linux ([da15a1e](https://github.com/ashim-hq/ashim/commit/da15a1e833c15c3d93a9da734d354b725b99b0bf)) -## [1.5.2](https://github.com/stirling-image/stirling-image/compare/v1.5.1...v1.5.2) (2026-04-04) +## [1.5.2](https://github.com/ashim-hq/ashim/compare/v1.5.1...v1.5.2) (2026-04-04) ### Bug Fixes -* install HEVC codec plugins for CI HEIC tests ([24e7591](https://github.com/stirling-image/stirling-image/commit/24e7591b9af777b739e7cc0db80839b776074b6f)) +* install HEVC codec plugins for CI HEIC tests ([24e7591](https://github.com/ashim-hq/ashim/commit/24e7591b9af777b739e7cc0db80839b776074b6f)) -## [1.5.1](https://github.com/stirling-image/stirling-image/compare/v1.5.0...v1.5.1) (2026-04-04) +## [1.5.1](https://github.com/ashim-hq/ashim/compare/v1.5.0...v1.5.1) (2026-04-04) ### Bug Fixes -* install libheif-examples in CI for HEIC tests ([d06092c](https://github.com/stirling-image/stirling-image/commit/d06092cba9db8cd91154196a11796a6dfc37bebb)) +* install libheif-examples in CI for HEIC tests ([d06092c](https://github.com/ashim-hq/ashim/commit/d06092cba9db8cd91154196a11796a6dfc37bebb)) -# [1.5.0](https://github.com/stirling-image/stirling-image/compare/v1.4.0...v1.5.0) (2026-04-04) +# [1.5.0](https://github.com/ashim-hq/ashim/compare/v1.4.0...v1.5.0) (2026-04-04) ### Features -* add HEIC/HEIF format support for input and output ([df1dc02](https://github.com/stirling-image/stirling-image/commit/df1dc029857f0fa614f63c2bc835f9502be046fb)) +* add HEIC/HEIF format support for input and output ([df1dc02](https://github.com/ashim-hq/ashim/commit/df1dc029857f0fa614f63c2bc835f9502be046fb)) -# [1.4.0](https://github.com/stirling-image/stirling-image/compare/v1.3.1...v1.4.0) (2026-04-04) +# [1.4.0](https://github.com/ashim-hq/ashim/compare/v1.3.1...v1.4.0) (2026-04-04) ### Features -* add "Crop to Content" mode to smart crop tool ([df479d3](https://github.com/stirling-image/stirling-image/commit/df479d3410a8b0d89c93f14ab6471c9dda2b0744)), closes [#7](https://github.com/stirling-image/stirling-image/issues/7) +* add "Crop to Content" mode to smart crop tool ([df479d3](https://github.com/ashim-hq/ashim/commit/df479d3410a8b0d89c93f14ab6471c9dda2b0744)), closes [#7](https://github.com/ashim-hq/ashim/issues/7) -## [1.3.1](https://github.com/stirling-image/stirling-image/compare/v1.3.0...v1.3.1) (2026-04-04) +## [1.3.1](https://github.com/ashim-hq/ashim/compare/v1.3.0...v1.3.1) (2026-04-04) ### Bug Fixes -* default theme to light instead of following system preference ([018fcce](https://github.com/stirling-image/stirling-image/commit/018fcce84cd2bf4c7b49f1eff9eda5bc078d19d3)) +* default theme to light instead of following system preference ([018fcce](https://github.com/ashim-hq/ashim/commit/018fcce84cd2bf4c7b49f1eff9eda5bc078d19d3)) -# [1.3.0](https://github.com/stirling-image/stirling-image/compare/v1.2.1...v1.3.0) (2026-04-04) +# [1.3.0](https://github.com/ashim-hq/ashim/compare/v1.2.1...v1.3.0) (2026-04-04) ### Bug Fixes -* add XHR timeout to prevent UI spinning forever ([0abacb2](https://github.com/stirling-image/stirling-image/commit/0abacb211cc60f3c1e8dabccc24bc6ca46ce782a)) -* disable worker pool to prevent Docker processing hang ([e36cd0c](https://github.com/stirling-image/stirling-image/commit/e36cd0c24a34c5f716b5018e57f3d319fe5c5c44)) -* log volume permission errors instead of swallowing them ([a3e6927](https://github.com/stirling-image/stirling-image/commit/a3e6927df0f4fdd06f6c2aafbf6dbd1c52019cb2)) -* replace crypto.randomUUID with generateId in AI tool settings ([ed91861](https://github.com/stirling-image/stirling-image/commit/ed918615d2449bdda93d6ea12420454571edbf2d)) -* replace crypto.randomUUID with generateId in pipeline/automation ([bcbf86c](https://github.com/stirling-image/stirling-image/commit/bcbf86c04b76ecdbc2bfae5a67d5ac929ba2ae8e)) -* replace crypto.randomUUID with generateId in use-tool-processor ([07cc2d0](https://github.com/stirling-image/stirling-image/commit/07cc2d002e5964a1dee20d05021aa4b479c75f6e)) -* replace navigator.clipboard with copyToClipboard utility ([1857aeb](https://github.com/stirling-image/stirling-image/commit/1857aeb89407ecb878ae967594e6408150d20d37)) -* resolve multiple API and e2e test bugs ([00deafb](https://github.com/stirling-image/stirling-image/commit/00deafb2c8ad5cef14eb74207f3b2bd2bc3f13f2)) -* restore navigator.clipboard and execCommand mocks in tests ([57e71b7](https://github.com/stirling-image/stirling-image/commit/57e71b7c9a2c3d77bf6318df35bed7fe8c1d7e69)) +* add XHR timeout to prevent UI spinning forever ([0abacb2](https://github.com/ashim-hq/ashim/commit/0abacb211cc60f3c1e8dabccc24bc6ca46ce782a)) +* disable worker pool to prevent Docker processing hang ([e36cd0c](https://github.com/ashim-hq/ashim/commit/e36cd0c24a34c5f716b5018e57f3d319fe5c5c44)) +* log volume permission errors instead of swallowing them ([a3e6927](https://github.com/ashim-hq/ashim/commit/a3e6927df0f4fdd06f6c2aafbf6dbd1c52019cb2)) +* replace crypto.randomUUID with generateId in AI tool settings ([ed91861](https://github.com/ashim-hq/ashim/commit/ed918615d2449bdda93d6ea12420454571edbf2d)) +* replace crypto.randomUUID with generateId in pipeline/automation ([bcbf86c](https://github.com/ashim-hq/ashim/commit/bcbf86c04b76ecdbc2bfae5a67d5ac929ba2ae8e)) +* replace crypto.randomUUID with generateId in use-tool-processor ([07cc2d0](https://github.com/ashim-hq/ashim/commit/07cc2d002e5964a1dee20d05021aa4b479c75f6e)) +* replace navigator.clipboard with copyToClipboard utility ([1857aeb](https://github.com/ashim-hq/ashim/commit/1857aeb89407ecb878ae967594e6408150d20d37)) +* resolve multiple API and e2e test bugs ([00deafb](https://github.com/ashim-hq/ashim/commit/00deafb2c8ad5cef14eb74207f3b2bd2bc3f13f2)) +* restore navigator.clipboard and execCommand mocks in tests ([57e71b7](https://github.com/ashim-hq/ashim/commit/57e71b7c9a2c3d77bf6318df35bed7fe8c1d7e69)) ### Features -* add copyToClipboard() utility with execCommand fallback ([8686131](https://github.com/stirling-image/stirling-image/commit/868613188e010760e33c96df60d03930027535da)) -* add generateId() utility for non-secure context compatibility ([ee7741b](https://github.com/stirling-image/stirling-image/commit/ee7741b26765e95cf145400f4a39bfa06b9dfe9a)) +* add copyToClipboard() utility with execCommand fallback ([8686131](https://github.com/ashim-hq/ashim/commit/868613188e010760e33c96df60d03930027535da)) +* add generateId() utility for non-secure context compatibility ([ee7741b](https://github.com/ashim-hq/ashim/commit/ee7741b26765e95cf145400f4a39bfa06b9dfe9a)) -## [1.2.1](https://github.com/stirling-image/stirling-image/compare/v1.2.0...v1.2.1) (2026-04-03) +## [1.2.1](https://github.com/ashim-hq/ashim/compare/v1.2.0...v1.2.1) (2026-04-03) ### Bug Fixes -* handle volume permission issues for bind-mounted /data directory ([863a51c](https://github.com/stirling-image/stirling-image/commit/863a51c37d481f5f01b965f58e56eae0f7cd6538)) +* handle volume permission issues for bind-mounted /data directory ([863a51c](https://github.com/ashim-hq/ashim/commit/863a51c37d481f5f01b965f58e56eae0f7cd6538)) -# [1.2.0](https://github.com/stirling-image/stirling-image/compare/v1.1.0...v1.2.0) (2026-04-03) +# [1.2.0](https://github.com/ashim-hq/ashim/compare/v1.1.0...v1.2.0) (2026-04-03) ### Features -* move theme toggle and GitHub button to top-right navbar ([0ba9fa5](https://github.com/stirling-image/stirling-image/commit/0ba9fa5db7efa2557ed569d638c15256f9453364)) +* move theme toggle and GitHub button to top-right navbar ([0ba9fa5](https://github.com/ashim-hq/ashim/commit/0ba9fa5db7efa2557ed569d638c15256f9453364)) -# [1.1.0](https://github.com/stirling-image/stirling-image/compare/v1.0.1...v1.1.0) (2026-04-03) +# [1.1.0](https://github.com/ashim-hq/ashim/compare/v1.0.1...v1.1.0) (2026-04-03) ### Features -* add GitHub stars button to docs navbar and fix footer license ([90030fc](https://github.com/stirling-image/stirling-image/commit/90030fccafed8ad247063ef71dca3cdedaff3916)) +* add GitHub stars button to docs navbar and fix footer license ([90030fc](https://github.com/ashim-hq/ashim/commit/90030fccafed8ad247063ef71dca3cdedaff3916)) -## [1.0.1](https://github.com/stirling-image/stirling-image/compare/v1.0.0...v1.0.1) (2026-03-30) +## [1.0.1](https://github.com/ashim-hq/ashim/compare/v1.0.0...v1.0.1) (2026-03-30) ### Bug Fixes -* allow SVG files in the convert tool ([034281b](https://github.com/stirling-image/stirling-image/commit/034281b1d4b19487ec0f900c3173465e0faf2510)) +* allow SVG files in the convert tool ([034281b](https://github.com/ashim-hq/ashim/commit/034281b1d4b19487ec0f900c3173465e0faf2510)) # 1.0.0 (2026-03-30) ### Bug Fixes -* **a11y:** add aria-hidden to decorative GemLogo SVG ([ae185ce](https://github.com/stirling-image/stirling-image/commit/ae185ce767a480719d2f54d5675cbd7d64beb7b5)) -* add remove-background settings to pipeline step configurator ([ae5ac81](https://github.com/stirling-image/stirling-image/commit/ae5ac8134689e211f17534f3064995597b6337c8)) -* add SSE progress endpoint to public paths ([18c3da0](https://github.com/stirling-image/stirling-image/commit/18c3da0d41cba74c55fffd1a9f58c1a8ee5d5574)) -* **api:** allow Scalar docs through auth and CSP ([6023109](https://github.com/stirling-image/stirling-image/commit/6023109df9c66c1e7b4d81f3e902f081809ed6ba)) -* **api:** resolve team name lookup and show server error messages ([609fc8b](https://github.com/stirling-image/stirling-image/commit/609fc8b6cc2d2408226e2576c35d7715bdf1498c)) -* **api:** use content instead of spec.content for Scalar v1.49 API ([dfcb4d5](https://github.com/stirling-image/stirling-image/commit/dfcb4d579f4b44013d23dff8617d9a9f6315b452)) -* apply continuous progress bar to erase-object and OCR ([196c553](https://github.com/stirling-image/stirling-image/commit/196c553af57bb9efbd32282dd24fc080fb7228dd)) -* **blur-faces:** switch from MediaPipe to OpenCV and auto-orient images ([dc10f90](https://github.com/stirling-image/stirling-image/commit/dc10f905c62c662f1a40701c81874e5854ea33e6)) -* bridge.ts ENOENT check for Python venv fallback ([92442cd](https://github.com/stirling-image/stirling-image/commit/92442cd0fd354e9644d7957dd5035a9fc16d9b95)) -* clear search when adding a step from the tool picker ([ae2e63f](https://github.com/stirling-image/stirling-image/commit/ae2e63f7fc4af3556539eee577b253c0616cbd0f)) -* continuous progress bar (no 100%→0% reset) ([b4abefe](https://github.com/stirling-image/stirling-image/commit/b4abefe94776a1b9a9700f469e56de060c7626ca)) -* **crop:** use percentCrop from onChange to fix inflated pixel values ([f238820](https://github.com/stirling-image/stirling-image/commit/f2388206324e4ddc6114b91421ca8bcb634fc340)) -* deduplicate react in Vite to prevent zustand hook errors in monorepo ([b3d6947](https://github.com/stirling-image/stirling-image/commit/b3d6947d47f9b22b155e3a8c46667dd7671ac508)) -* **docker:** add build layer caching for faster Docker rebuilds ([03ba30d](https://github.com/stirling-image/stirling-image/commit/03ba30d8f01c5c2500641d934b08a875589bcd68)) -* **docker:** skip husky prepare script in production install ([fdfb0a0](https://github.com/stirling-image/stirling-image/commit/fdfb0a0e7412c86e3b85a70daf5093f44c34ee99)) -* **docs:** clean up footer llms.txt links ([e842cde](https://github.com/stirling-image/stirling-image/commit/e842cde838ad3deb1437c4c43c8ccd796276248c)) -* **docs:** ignore localhost dead links in VitePress build ([78269d4](https://github.com/stirling-image/stirling-image/commit/78269d499c914d5d68c4455475a1608f4af2a075)) -* **docs:** remove hero logo from home page ([64c0ec8](https://github.com/stirling-image/stirling-image/commit/64c0ec895f82b09e50d5ecf2b85f759f0a481232)) -* handle migration race condition in concurrent test workers ([d576ab1](https://github.com/stirling-image/stirling-image/commit/d576ab1dfb1e9d2aa739c681c1f83d6fef3f7d22)) -* make port 1349 the UI port in all modes ([20a2637](https://github.com/stirling-image/stirling-image/commit/20a26372d8be1c2c4fc10a821b1e000c663efb0c)) -* move health diagnostics behind admin auth ([ee9a20f](https://github.com/stirling-image/stirling-image/commit/ee9a20f6a35a0681b3688f0e206914fceed8fd8c)) -* **ocr:** update PaddleOCR for v3 API and add Tesseract fallback ([e260a93](https://github.com/stirling-image/stirling-image/commit/e260a93cf65f1e7cd22b7b5d491c6125fee8c915)) -* pipeline only shows compatible tools and displays errors ([fe021c1](https://github.com/stirling-image/stirling-image/commit/fe021c18b134c853262c8f0dac81c13f9ceeb435)) -* prevent pipeline step settings from resetting on collapse ([d899ef1](https://github.com/stirling-image/stirling-image/commit/d899ef128004e46200da785a960da50894e93861)) -* prevent stale closure in pipeline step callbacks ([c67f002](https://github.com/stirling-image/stirling-image/commit/c67f0027804f167e250bd497505399c07b539c4e)) -* prevent useAuth infinite loop causing rate limit storms ([9624dae](https://github.com/stirling-image/stirling-image/commit/9624dae1569b6f2ad52ce990fc84eca809b849a8)) -* Python bridge fallback only on missing venv, not script errors ([79e4116](https://github.com/stirling-image/stirling-image/commit/79e41160cb8bc1010ab87d1c396934e15e104086)) -* reject HTML tags in settings API to prevent stored XSS ([d5bd011](https://github.com/stirling-image/stirling-image/commit/d5bd01189766ee0797fe35ff3651f38f59a65881)) -* remove explicit pnpm version from CI to avoid conflict with packageManager ([c0f5dad](https://github.com/stirling-image/stirling-image/commit/c0f5dad93332bad09e5e771e1b52513186256b33)) -* remove Google Drive coming soon placeholder from files nav ([e487fe0](https://github.com/stirling-image/stirling-image/commit/e487fe06bf4cad6512100bf9660498e06c1047ba)) -* resolve 3 critical UX bugs - home upload, auth, and form submit ([97267c7](https://github.com/stirling-image/stirling-image/commit/97267c7b747e0d5861ca5272f553af4162e8cd9a)) -* resolve pipeline step race condition and infinite re-render loop ([e0177d4](https://github.com/stirling-image/stirling-image/commit/e0177d405ef043a64f0b3a885e98169312be1fac)) -* resolve test failures from shared DB race conditions ([1a7116d](https://github.com/stirling-image/stirling-image/commit/1a7116d79072d131b94d1c454abbc32b9e961c1b)) -* resolve tsx not found in AI docs updater workflow ([dfbef8d](https://github.com/stirling-image/stirling-image/commit/dfbef8d723dcc2960187db36676107f708707e33)) -* resolve TypeScript Uint8Array type error with fflate ([c1b06b3](https://github.com/stirling-image/stirling-image/commit/c1b06b37f2cf2aef6971f1b16b5691ce7d932b87)) -* restore APP_VERSION import used by health endpoint ([2a74b60](https://github.com/stirling-image/stirling-image/commit/2a74b604466193994bcc87ba2ef589f4c15d9547)) -* setError(null) was overriding setProcessing(true) ([2be94b7](https://github.com/stirling-image/stirling-image/commit/2be94b77b2b288086b55101e6854bf0407935b28)) -* show checkerboard behind transparent images in before/after slider ([73741e6](https://github.com/stirling-image/stirling-image/commit/73741e6efbdee53396810a2bb11eaf9597e4aa32)) -* simplify public health to static response, add 403 test ([9c05da6](https://github.com/stirling-image/stirling-image/commit/9c05da6f1372abd071e5249b102d86fa294e0d22)) -* streamline CI/CD — remove broken AI docs updater, fix Docker publish ([ad2c96d](https://github.com/stirling-image/stirling-image/commit/ad2c96d7b86b55b602e973f5da30d517605ed5cd)) -* surface hidden errors and add batch rejection tests ([2f8e2ce](https://github.com/stirling-image/stirling-image/commit/2f8e2ce7e2b96613ebda249890632bc54c11980b)) -* switch README Docker references from GHCR to Docker Hub ([9e15679](https://github.com/stirling-image/stirling-image/commit/9e1567971d50d755ef3b51d31e80b5a31a28ed2d)) -* sync stepsRef during render, not useEffect ([0c86744](https://github.com/stirling-image/stirling-image/commit/0c86744dda1073988c7e6bb55073f08e399c26f3)) -* **test:** add missing PNG fixture files to repo ([45c6b9d](https://github.com/stirling-image/stirling-image/commit/45c6b9de08124fb357ac759e43c4fbf1eb5fbfb9)) -* **test:** exclude e2e tests from vitest and fix CI test suite ([9d28485](https://github.com/stirling-image/stirling-image/commit/9d28485339e17b80586cea91bd18dafc989d7f24)) -* **tests:** remove temp DB cleanup that races with other test files ([498bfb3](https://github.com/stirling-image/stirling-image/commit/498bfb3def2d6786fa5e387b3e30ede9768ef616)) -* trigger browser password save prompt on password change ([6b279ad](https://github.com/stirling-image/stirling-image/commit/6b279ad09b9e74de34732b0e854f1180f25b34bd)) -* **ui:** clean up settings, automate page, fullscreen logo, and README ([b3c8ad4](https://github.com/stirling-image/stirling-image/commit/b3c8ad4697000454a11aaace27d0baa37a9959d9)) -* unify project on port 1349, improve strip-metadata and UI components ([4912ee3](https://github.com/stirling-image/stirling-image/commit/4912ee37e961b9ba9748d7ffa9164d7ca5ae0abb)) -* **upscale:** auto-orient images before upscaling and improve UI ([8a6e665](https://github.com/stirling-image/stirling-image/commit/8a6e665a4484bda1e4b93b520c393bb707a624aa)) -* use BiRefNet-Lite as default model and fix JSON parsing ([c8159d3](https://github.com/stirling-image/stirling-image/commit/c8159d3a9a0394f1bec3a66ffea6122a787a7ca7)) -* use two-pass validation in settings PUT to prevent partial writes ([2dc39d3](https://github.com/stirling-image/stirling-image/commit/2dc39d353320b73d9abb96ee5ae1080c2ee2f9cb)) -* use U2-Net as default model (fast, 2s) with BiRefNet as opt-in ([7ebed9a](https://github.com/stirling-image/stirling-image/commit/7ebed9a8d44f13d091fbc599be83b34a92049c5f)) -* white screen crash when uploading photos with null GPS EXIF data ([c913df9](https://github.com/stirling-image/stirling-image/commit/c913df9c0eccb0a1d0ff305cc6dcb1c99ddf96f4)) +* **a11y:** add aria-hidden to decorative GemLogo SVG ([ae185ce](https://github.com/ashim-hq/ashim/commit/ae185ce767a480719d2f54d5675cbd7d64beb7b5)) +* add remove-background settings to pipeline step configurator ([ae5ac81](https://github.com/ashim-hq/ashim/commit/ae5ac8134689e211f17534f3064995597b6337c8)) +* add SSE progress endpoint to public paths ([18c3da0](https://github.com/ashim-hq/ashim/commit/18c3da0d41cba74c55fffd1a9f58c1a8ee5d5574)) +* **api:** allow Scalar docs through auth and CSP ([6023109](https://github.com/ashim-hq/ashim/commit/6023109df9c66c1e7b4d81f3e902f081809ed6ba)) +* **api:** resolve team name lookup and show server error messages ([609fc8b](https://github.com/ashim-hq/ashim/commit/609fc8b6cc2d2408226e2576c35d7715bdf1498c)) +* **api:** use content instead of spec.content for Scalar v1.49 API ([dfcb4d5](https://github.com/ashim-hq/ashim/commit/dfcb4d579f4b44013d23dff8617d9a9f6315b452)) +* apply continuous progress bar to erase-object and OCR ([196c553](https://github.com/ashim-hq/ashim/commit/196c553af57bb9efbd32282dd24fc080fb7228dd)) +* **blur-faces:** switch from MediaPipe to OpenCV and auto-orient images ([dc10f90](https://github.com/ashim-hq/ashim/commit/dc10f905c62c662f1a40701c81874e5854ea33e6)) +* bridge.ts ENOENT check for Python venv fallback ([92442cd](https://github.com/ashim-hq/ashim/commit/92442cd0fd354e9644d7957dd5035a9fc16d9b95)) +* clear search when adding a step from the tool picker ([ae2e63f](https://github.com/ashim-hq/ashim/commit/ae2e63f7fc4af3556539eee577b253c0616cbd0f)) +* continuous progress bar (no 100%→0% reset) ([b4abefe](https://github.com/ashim-hq/ashim/commit/b4abefe94776a1b9a9700f469e56de060c7626ca)) +* **crop:** use percentCrop from onChange to fix inflated pixel values ([f238820](https://github.com/ashim-hq/ashim/commit/f2388206324e4ddc6114b91421ca8bcb634fc340)) +* deduplicate react in Vite to prevent zustand hook errors in monorepo ([b3d6947](https://github.com/ashim-hq/ashim/commit/b3d6947d47f9b22b155e3a8c46667dd7671ac508)) +* **docker:** add build layer caching for faster Docker rebuilds ([03ba30d](https://github.com/ashim-hq/ashim/commit/03ba30d8f01c5c2500641d934b08a875589bcd68)) +* **docker:** skip husky prepare script in production install ([fdfb0a0](https://github.com/ashim-hq/ashim/commit/fdfb0a0e7412c86e3b85a70daf5093f44c34ee99)) +* **docs:** clean up footer llms.txt links ([e842cde](https://github.com/ashim-hq/ashim/commit/e842cde838ad3deb1437c4c43c8ccd796276248c)) +* **docs:** ignore localhost dead links in VitePress build ([78269d4](https://github.com/ashim-hq/ashim/commit/78269d499c914d5d68c4455475a1608f4af2a075)) +* **docs:** remove hero logo from home page ([64c0ec8](https://github.com/ashim-hq/ashim/commit/64c0ec895f82b09e50d5ecf2b85f759f0a481232)) +* handle migration race condition in concurrent test workers ([d576ab1](https://github.com/ashim-hq/ashim/commit/d576ab1dfb1e9d2aa739c681c1f83d6fef3f7d22)) +* make port 1349 the UI port in all modes ([20a2637](https://github.com/ashim-hq/ashim/commit/20a26372d8be1c2c4fc10a821b1e000c663efb0c)) +* move health diagnostics behind admin auth ([ee9a20f](https://github.com/ashim-hq/ashim/commit/ee9a20f6a35a0681b3688f0e206914fceed8fd8c)) +* **ocr:** update PaddleOCR for v3 API and add Tesseract fallback ([e260a93](https://github.com/ashim-hq/ashim/commit/e260a93cf65f1e7cd22b7b5d491c6125fee8c915)) +* pipeline only shows compatible tools and displays errors ([fe021c1](https://github.com/ashim-hq/ashim/commit/fe021c18b134c853262c8f0dac81c13f9ceeb435)) +* prevent pipeline step settings from resetting on collapse ([d899ef1](https://github.com/ashim-hq/ashim/commit/d899ef128004e46200da785a960da50894e93861)) +* prevent stale closure in pipeline step callbacks ([c67f002](https://github.com/ashim-hq/ashim/commit/c67f0027804f167e250bd497505399c07b539c4e)) +* prevent useAuth infinite loop causing rate limit storms ([9624dae](https://github.com/ashim-hq/ashim/commit/9624dae1569b6f2ad52ce990fc84eca809b849a8)) +* Python bridge fallback only on missing venv, not script errors ([79e4116](https://github.com/ashim-hq/ashim/commit/79e41160cb8bc1010ab87d1c396934e15e104086)) +* reject HTML tags in settings API to prevent stored XSS ([d5bd011](https://github.com/ashim-hq/ashim/commit/d5bd01189766ee0797fe35ff3651f38f59a65881)) +* remove explicit pnpm version from CI to avoid conflict with packageManager ([c0f5dad](https://github.com/ashim-hq/ashim/commit/c0f5dad93332bad09e5e771e1b52513186256b33)) +* remove Google Drive coming soon placeholder from files nav ([e487fe0](https://github.com/ashim-hq/ashim/commit/e487fe06bf4cad6512100bf9660498e06c1047ba)) +* resolve 3 critical UX bugs - home upload, auth, and form submit ([97267c7](https://github.com/ashim-hq/ashim/commit/97267c7b747e0d5861ca5272f553af4162e8cd9a)) +* resolve pipeline step race condition and infinite re-render loop ([e0177d4](https://github.com/ashim-hq/ashim/commit/e0177d405ef043a64f0b3a885e98169312be1fac)) +* resolve test failures from shared DB race conditions ([1a7116d](https://github.com/ashim-hq/ashim/commit/1a7116d79072d131b94d1c454abbc32b9e961c1b)) +* resolve tsx not found in AI docs updater workflow ([dfbef8d](https://github.com/ashim-hq/ashim/commit/dfbef8d723dcc2960187db36676107f708707e33)) +* resolve TypeScript Uint8Array type error with fflate ([c1b06b3](https://github.com/ashim-hq/ashim/commit/c1b06b37f2cf2aef6971f1b16b5691ce7d932b87)) +* restore APP_VERSION import used by health endpoint ([2a74b60](https://github.com/ashim-hq/ashim/commit/2a74b604466193994bcc87ba2ef589f4c15d9547)) +* setError(null) was overriding setProcessing(true) ([2be94b7](https://github.com/ashim-hq/ashim/commit/2be94b77b2b288086b55101e6854bf0407935b28)) +* show checkerboard behind transparent images in before/after slider ([73741e6](https://github.com/ashim-hq/ashim/commit/73741e6efbdee53396810a2bb11eaf9597e4aa32)) +* simplify public health to static response, add 403 test ([9c05da6](https://github.com/ashim-hq/ashim/commit/9c05da6f1372abd071e5249b102d86fa294e0d22)) +* streamline CI/CD — remove broken AI docs updater, fix Docker publish ([ad2c96d](https://github.com/ashim-hq/ashim/commit/ad2c96d7b86b55b602e973f5da30d517605ed5cd)) +* surface hidden errors and add batch rejection tests ([2f8e2ce](https://github.com/ashim-hq/ashim/commit/2f8e2ce7e2b96613ebda249890632bc54c11980b)) +* switch README Docker references from GHCR to Docker Hub ([9e15679](https://github.com/ashim-hq/ashim/commit/9e1567971d50d755ef3b51d31e80b5a31a28ed2d)) +* sync stepsRef during render, not useEffect ([0c86744](https://github.com/ashim-hq/ashim/commit/0c86744dda1073988c7e6bb55073f08e399c26f3)) +* **test:** add missing PNG fixture files to repo ([45c6b9d](https://github.com/ashim-hq/ashim/commit/45c6b9de08124fb357ac759e43c4fbf1eb5fbfb9)) +* **test:** exclude e2e tests from vitest and fix CI test suite ([9d28485](https://github.com/ashim-hq/ashim/commit/9d28485339e17b80586cea91bd18dafc989d7f24)) +* **tests:** remove temp DB cleanup that races with other test files ([498bfb3](https://github.com/ashim-hq/ashim/commit/498bfb3def2d6786fa5e387b3e30ede9768ef616)) +* trigger browser password save prompt on password change ([6b279ad](https://github.com/ashim-hq/ashim/commit/6b279ad09b9e74de34732b0e854f1180f25b34bd)) +* **ui:** clean up settings, automate page, fullscreen logo, and README ([b3c8ad4](https://github.com/ashim-hq/ashim/commit/b3c8ad4697000454a11aaace27d0baa37a9959d9)) +* unify project on port 1349, improve strip-metadata and UI components ([4912ee3](https://github.com/ashim-hq/ashim/commit/4912ee37e961b9ba9748d7ffa9164d7ca5ae0abb)) +* **upscale:** auto-orient images before upscaling and improve UI ([8a6e665](https://github.com/ashim-hq/ashim/commit/8a6e665a4484bda1e4b93b520c393bb707a624aa)) +* use BiRefNet-Lite as default model and fix JSON parsing ([c8159d3](https://github.com/ashim-hq/ashim/commit/c8159d3a9a0394f1bec3a66ffea6122a787a7ca7)) +* use two-pass validation in settings PUT to prevent partial writes ([2dc39d3](https://github.com/ashim-hq/ashim/commit/2dc39d353320b73d9abb96ee5ae1080c2ee2f9cb)) +* use U2-Net as default model (fast, 2s) with BiRefNet as opt-in ([7ebed9a](https://github.com/ashim-hq/ashim/commit/7ebed9a8d44f13d091fbc599be83b34a92049c5f)) +* white screen crash when uploading photos with null GPS EXIF data ([c913df9](https://github.com/ashim-hq/ashim/commit/c913df9c0eccb0a1d0ff305cc6dcb1c99ddf96f4)) ### Features -* accept clientJobId in batch endpoint for SSE progress correlation ([8ed57f4](https://github.com/stirling-image/stirling-image/commit/8ed57f400fd083fbef7528f51231f59ecd3b1bee)) -* add authentication with default admin user ([2189628](https://github.com/stirling-image/stirling-image/commit/2189628861b83ffd29b60841f2ee74458a76a7cc)) -* add automatic workspace file cleanup cron ([5af7437](https://github.com/stirling-image/stirling-image/commit/5af7437d809a4e68376d68d201bf56700711836c)) -* add CSS transform props to ImageViewer for live rotate/flip preview ([de3340f](https://github.com/stirling-image/stirling-image/commit/de3340fc5b201cc5c046cbb38a274e7dfa026b41)) -* add CSS transform props to ImageViewer for live rotate/flip preview ([7627853](https://github.com/stirling-image/stirling-image/commit/762785394b2e66a25ee858da96868cd752942a7d)) -* add Fastify API server with health check and env config ([be73ce9](https://github.com/stirling-image/stirling-image/commit/be73ce9a2bcbab3c6a72fa735a500c6b83f86a9c)) -* add forced password change page on first login ([e0900a8](https://github.com/stirling-image/stirling-image/commit/e0900a877643c75266aeed5ac29501458ef0dcda)) -* add format tools (SVG-to-raster, vectorize, GIF) and optimization (rename, favicon, image-to-PDF) ([7b29b04](https://github.com/stirling-image/stirling-image/commit/7b29b043d850de46c5cf4ef1829f8a97dc9a0143)) -* add generic tool page template with settings panel and dropzone ([0f32ba1](https://github.com/stirling-image/stirling-image/commit/0f32ba10327f2fe96594544e0c7dc1b20ca479b0)) -* add image-engine and ai stub packages ([17ac7b8](https://github.com/stirling-image/stirling-image/commit/17ac7b83658c29a3e7a7711536c0648b3b23420a)) -* add layout tools (collage, splitting, border/frame) ([e46dbf6](https://github.com/stirling-image/stirling-image/commit/e46dbf6efb61e2812a7eb4c50a29b9391cd50654)) -* add live preview callback to RotateSettings, rename button to Apply ([17be50b](https://github.com/stirling-image/stirling-image/commit/17be50b213e1ca6d1d6e8d949b65de70c68d108d)) -* add live preview callback to RotateSettings, rename button to Apply ([06844ec](https://github.com/stirling-image/stirling-image/commit/06844ec1ada4d5685691f26655ecb8712b4d94d9)) -* add login page with split layout matching Stirling-PDF style ([2b82f93](https://github.com/stirling-image/stirling-image/commit/2b82f93b083c7a5bfcd37c25e85e5887c09c87ae)) -* add multi-stage Docker build with Python ML dependencies ([8d70123](https://github.com/stirling-image/stirling-image/commit/8d7012398973fd561db7b868dd2d50c2e71d2ed7)) -* add MultiImageViewer with arrow navigation and filmstrip ([1fa8747](https://github.com/stirling-image/stirling-image/commit/1fa874758ca58efb4b9f68d76a02648d6a84abfe)) -* add password generator and browser save prompt on change-password page ([d56c644](https://github.com/stirling-image/stirling-image/commit/d56c6446fee8384ab61ba180160f5e020a1e412e)) -* add Phase 4 AI tools with Python bridge and 6 new tools ([21df50e](https://github.com/stirling-image/stirling-image/commit/21df50e140248ca51bc82fbc7b16748cf0f9c909)) -* add privacy policy page and fix CSP blocking API docs ([3e314f0](https://github.com/stirling-image/stirling-image/commit/3e314f032491c59196db3493d0b86f6aeec22c63)) -* add processAllFiles batch method to tool processor hook ([cd1e180](https://github.com/stirling-image/stirling-image/commit/cd1e18026fb4b866c4bbde6c259412674a501f05)) -* add replace-color tool and update tool page routing ([d5d09e4](https://github.com/stirling-image/stirling-image/commit/d5d09e4a0f23091fb251cd15e17a639cf72a407a)) -* add semantic-release for automated versioning and help dialog ([83a0272](https://github.com/stirling-image/stirling-image/commit/83a0272af284f182fa32e7fd9baa77fe2bd74e39)) -* add shared package with types, tool definitions, and constants ([96ed415](https://github.com/stirling-image/stirling-image/commit/96ed4159a57fd27f8bb3214ec01bd085a5b34a54)) -* add SideBySideComparison component for resize results ([d037305](https://github.com/stirling-image/stirling-image/commit/d037305f29a32ead0addf6d79ace4823c9ba0e2b)) -* add SideBySideComparison component for resize results ([2d0ba5a](https://github.com/stirling-image/stirling-image/commit/2d0ba5a65683b45a6382ca1aea9f7a75d1143702)) -* add SQLite database with Drizzle ORM schema and migrations ([88c41cf](https://github.com/stirling-image/stirling-image/commit/88c41cf27c79004fc02df0afc67c4bbc4aa1cd2f)) -* add Stirling-PDF-style layout with sidebar, tool panel, dropzone, and theme toggle ([90f10f4](https://github.com/stirling-image/stirling-image/commit/90f10f41510136ec1fde90a00bf62f1940a10d6e)) -* add Swagger/OpenAPI documentation at /api/docs ([0ef1a5a](https://github.com/stirling-image/stirling-image/commit/0ef1a5a021893049fece83b48b4e178db4675813)) -* add theme system with dark/light/system support and persistence ([e35d249](https://github.com/stirling-image/stirling-image/commit/e35d249ac80616754b93d67da367d0e43df20064)) -* add ThumbnailStrip filmstrip component ([9caa613](https://github.com/stirling-image/stirling-image/commit/9caa613883a7f0f0ccfbb268d3e88596e92ce094)) -* add utility tools (image info, compare, duplicates, color palette, QR, barcode) ([e17992e](https://github.com/stirling-image/stirling-image/commit/e17992e6bdf4ee99980e851270c788e7a478a64f)) -* add Vite + React SPA with Tailwind CSS and routing ([9483ad7](https://github.com/stirling-image/stirling-image/commit/9483ad740e46adc5f2fa6b5c4992f19d429dacaf)) -* add watermark, text overlay, and image composition tools ([b2543d9](https://github.com/stirling-image/stirling-image/commit/b2543d9b5fc8e33a10d36c0cf32d7cb2de1e7901)) -* add worker threads, persistent Python sidecar, graceful shutdown, and architectural improvements ([1274cc1](https://github.com/stirling-image/stirling-image/commit/1274cc103fa2f0f934e9e2322c6034533ab62ec4)) -* **adjustments:** add real-time live preview for all color tools ([b5c924e](https://github.com/stirling-image/stirling-image/commit/b5c924e0fc7468c6364ef320958cea2e5ef18420)) -* **ai:** add emit_progress() calls to all Python AI scripts ([eb6f57d](https://github.com/stirling-image/stirling-image/commit/eb6f57dfa35fa10ada4493e9fd73fe4d4788c03c)) -* **ai:** add onProgress callback to all AI wrapper functions ([021c9f1](https://github.com/stirling-image/stirling-image/commit/021c9f12b5a1aca6c6c7cb8c9d9fad3d0406ab94)) -* **ai:** rewrite bridge.ts to stream stderr progress via spawn ([9d9c45a](https://github.com/stirling-image/stirling-image/commit/9d9c45a04c2a85e99021a35a3da94e1e19cb9043)) -* **api,web:** add batch processing with ZIP download and SSE progress ([f8aa5f7](https://github.com/stirling-image/stirling-image/commit/f8aa5f7bf2d81fc06e1118741d011023c2a4889b)) -* **api:** add all remaining endpoints to OpenAPI spec ([e7b38ba](https://github.com/stirling-image/stirling-image/commit/e7b38ba68f8ae7fae5675bafc0f2dc2c4f22ecd2)) -* **api:** add all tool endpoints to OpenAPI spec ([753ba3e](https://github.com/stirling-image/stirling-image/commit/753ba3e4689b1a3504960d15d1ebceaf2a08876e)) -* **api:** add generic tool route factory for all image tools ([43555c9](https://github.com/stirling-image/stirling-image/commit/43555c90ecedcb9364de73d51003e657f649c126)) -* **api:** add llms.txt and llms-full.txt endpoints ([12ba52a](https://github.com/stirling-image/stirling-image/commit/12ba52a6a0c1260f02a4d7787be8113383575d9e)) -* **api:** add logo upload/serve/delete routes with tests ([6063f4d](https://github.com/stirling-image/stirling-image/commit/6063f4daa98acf3f03e004a588de562e377105c7)) -* **api:** add multipart file upload, workspace management, and download routes ([415de2a](https://github.com/stirling-image/stirling-image/commit/415de2a5dff2c5344d38dd3b3d31513d5c2ed85b)) -* **api:** add OpenAPI 3.1 spec skeleton with common schemas ([b2189f5](https://github.com/stirling-image/stirling-image/commit/b2189f556815ef8d5c781eee72b8263db09f6a1a)) -* **api:** add persistent file management helpers to frontend api module ([ecbfcce](https://github.com/stirling-image/stirling-image/commit/ecbfcceec82010fa44244c6839928b9930d59b5a)) -* **api:** add pipeline execution, save, and list endpoints ([d4f1148](https://github.com/stirling-image/stirling-image/commit/d4f1148860d7801f8d0fd276d6a2ec9efa1f68af)) -* **api:** add resize, crop, rotate, convert, compress, metadata, and color tool routes ([4874701](https://github.com/stirling-image/stirling-image/commit/48747016ed71ad8300d463e8128b922177c23721)) -* **api:** add Scalar docs route and install dependency ([6f2c319](https://github.com/stirling-image/stirling-image/commit/6f2c3190b8414d1c4c3b1a78cf7a86a96109c934)) -* **api:** add SingleFileProgress type and SSE update function ([12b85d4](https://github.com/stirling-image/stirling-image/commit/12b85d4def1f29ca291d6f5e538181f2bcbcf774)) -* **api:** add teams CRUD routes and update auth team references ([ec22e53](https://github.com/stirling-image/stirling-image/commit/ec22e53a3b15ae030743e76db0d57584000727b6)) -* **api:** add tool filtering and DB-backed cleanup settings ([07e7e8d](https://github.com/stirling-image/stirling-image/commit/07e7e8d58d311d89f43cee1c7fa21dd0eb4c9dfb)) -* **api:** add user files CRUD routes at /api/v1/files/* ([6a07007](https://github.com/stirling-image/stirling-image/commit/6a070071456611d2bf2acf4a474be8c43680e1b0)) -* **api:** register docs route in server and test helper ([bc6b389](https://github.com/stirling-image/stirling-image/commit/bc6b38918ff11f1027efeb934ae0e56d6068b81f)) -* **api:** wire AI route handlers to SSE progress via clientJobId ([a3f85da](https://github.com/stirling-image/stirling-image/commit/a3f85da20f73f02cd5ec141519aa73fcfeb2157b)) -* **branding:** add faceted gem SVG logo assets ([4bc9335](https://github.com/stirling-image/stirling-image/commit/4bc93351541b039534197821d290d34cad12c9a7)) -* **branding:** add favicon and meta tags to index.html ([2508fd0](https://github.com/stirling-image/stirling-image/commit/2508fd04871cdb776523ec9d602ad934283c6211)) -* **branding:** add OG social preview image ([c6c5b92](https://github.com/stirling-image/stirling-image/commit/c6c5b926e271d457effea9aec07b70bbc7227ef5)) -* **branding:** add PWA manifest and PNG logo assets ([298567d](https://github.com/stirling-image/stirling-image/commit/298567d090f298600b334184b09d35c178097362)) -* **branding:** show gem icon in app header as default logo ([dd857fb](https://github.com/stirling-image/stirling-image/commit/dd857fbcc778a2425806f1d96d83f118dc92831a)) -* conditional result views — side-by-side for resize, live preview for rotate ([f0d18be](https://github.com/stirling-image/stirling-image/commit/f0d18bee5ebc110e63bb3cf9fd829d80900759ce)) -* conditional result views — side-by-side for resize, live preview for rotate ([6682649](https://github.com/stirling-image/stirling-image/commit/668264990c33667e586e4e24703f1957b18e1c0c)) -* **crop:** add CropCanvas component with visual overlay, grid, and keyboard controls ([018bbf4](https://github.com/stirling-image/stirling-image/commit/018bbf44bfed4acf475de49ff9f3f5c20ee63295)) -* **crop:** add react-image-crop dependency ([b7ecd41](https://github.com/stirling-image/stirling-image/commit/b7ecd41897de4f48e6f970dfbb1188848e9bcd2a)) -* **crop:** redesign CropSettings with aspect presets, pixel inputs, and grid toggle ([d75f458](https://github.com/stirling-image/stirling-image/commit/d75f458dc0f13e69640bc012adea0ee29d02b82b)) -* **crop:** wire CropCanvas and CropSettings into tool-page with bidirectional state ([ea7fb46](https://github.com/stirling-image/stirling-image/commit/ea7fb46f7ecad5639c007ba43d652fd72c75b39f)) -* **db:** add teams table and migration ([365783b](https://github.com/stirling-image/stirling-image/commit/365783b6dc1f5cfa631bb4f6915fcf99d91f574d)) -* **db:** add userFiles table and migration ([a2fdbd5](https://github.com/stirling-image/stirling-image/commit/a2fdbd5fef2cf02f90692166d6386c5ac21c2cef)) -* **docs:** add gem favicon to VitePress site ([0918f93](https://github.com/stirling-image/stirling-image/commit/0918f933719ae0d8ff16cf7a8ac0e8936e90805a)) -* **docs:** add gem logo to GitHub Pages nav bar and home hero ([f0b8162](https://github.com/stirling-image/stirling-image/commit/f0b8162955fa8f6b1891968163b4292b279f1ea1)) -* **docs:** add llms.txt and llms-full.txt to GitHub Pages ([5f6959a](https://github.com/stirling-image/stirling-image/commit/5f6959a21e3b2708edb011a0a7ce48fbfbc64c87)) -* **docs:** add llms.txt links to GitHub Pages footer ([b874445](https://github.com/stirling-image/stirling-image/commit/b874445dc6d31c54a095d7471390e664b233d491)) -* **env:** add FILES_STORAGE_PATH config variable ([3c737a6](https://github.com/stirling-image/stirling-image/commit/3c737a6c724f4862d302bf22a75ebcd745f0df4c)) -* **erase-object:** replace mask upload with in-browser brush painting ([40e3081](https://github.com/stirling-image/stirling-image/commit/40e30815915f18f9f7fc25c05a61c643f1dfdbe4)) -* extract auto-orient utility and expand test coverage ([8622c4a](https://github.com/stirling-image/stirling-image/commit/8622c4a40245504372e75d3cd851535528639dea)) -* **files:** add Files page with nav, list, details, upload, and routing ([3f127a4](https://github.com/stirling-image/stirling-image/commit/3f127a457e8a7a07d22fdf8776c3166092db562f)) -* **files:** add mobile layout for Files page ([e864d1e](https://github.com/stirling-image/stirling-image/commit/e864d1e430bd516ccbe1732ec7451e1e7d670177)) -* **files:** wire serverFileId for version tracking ([8868d3e](https://github.com/stirling-image/stirling-image/commit/8868d3e556beedcff35de268e72241e7f10998a3)) -* harden auth, security headers, SVG sanitization, and pipeline ownership ([beaad1d](https://github.com/stirling-image/stirling-image/commit/beaad1d3044f6b2535aacb6a67541464f736778b)) -* **i18n:** add translation keys for settings phase 1 ([c5ff80a](https://github.com/stirling-image/stirling-image/commit/c5ff80acfbe18b953cfd96a88498fc70b82b541e)) -* **image-engine:** add Sharp wrapper with 14 image operations ([3e7f71c](https://github.com/stirling-image/stirling-image/commit/3e7f71ca830549ea28b47656b14b9375fa8c2c34)) -* **image-to-pdf:** add live PDF page preview with margin visualization ([cd666ea](https://github.com/stirling-image/stirling-image/commit/cd666eaef0b13bcd9223439f0bbb5efd88b2f25e)) -* implement Files page with persistent storage and version tracking ([f6183d2](https://github.com/stirling-image/stirling-image/commit/f6183d2c62e6ad04dec3fe0250468cbfd6cbc035)) -* initialize Turborepo monorepo with pnpm workspaces ([db31cf6](https://github.com/stirling-image/stirling-image/commit/db31cf6f115c454eb59454fc227058a773944f93)) -* integrate MultiImageViewer and multi-file UX into tool page ([52aab1e](https://github.com/stirling-image/stirling-image/commit/52aab1e2bf5f938a800a78b4e5c11f5ad9fbae27)) -* make AI tools pipeline-compatible and add search to tool picker ([2d46b09](https://github.com/stirling-image/stirling-image/commit/2d46b096fa80e43f7a59e213ac884b5d1d30b586)) -* merge multi-image UX — batch processing, filmstrip navigation, resize/rotate redesign ([9bfdb75](https://github.com/stirling-image/stirling-image/commit/9bfdb75f5c205906f2bd62d496e96d6b402e1dc1)) -* multi-arch Docker support, security hardening, and test improvements ([748d2b7](https://github.com/stirling-image/stirling-image/commit/748d2b70460b3975a9c61edec0b121d788d0ee06)) -* multi-file metadata display with per-file caching ([42b59f3](https://github.com/stirling-image/stirling-image/commit/42b59f3e2d84b3d9fd6724b9ed9fb272fb11201a)) -* **pipeline:** add inline settings configuration for automation steps ([827eae8](https://github.com/stirling-image/stirling-image/commit/827eae824543ab9cea2a5d3a82acd388736fa424)) -* production Docker, Playwright tests, settings API, and bug fixes ([027c515](https://github.com/stirling-image/stirling-image/commit/027c515f3582c5f030fb4c3cacae2ceee575e7c7)) -* replace model dropdown with intuitive subject/quality selector in remove-bg ([bc26d60](https://github.com/stirling-image/stirling-image/commit/bc26d60d54a47a9fb6f58115131845d1ae5ee868)) -* rewrite file-store with FileEntry model for multi-image support ([abbb3e4](https://github.com/stirling-image/stirling-image/commit/abbb3e4d6e8f21f35b385c51fb659010099556d1)) -* rewrite resize settings with tab-based UI (presets, custom, scale) ([b9f3ac0](https://github.com/stirling-image/stirling-image/commit/b9f3ac0d222f3712d35becd6c831dc62f728a16a)) -* rewrite resize settings with tab-based UI (presets, custom, scale) ([3b39a8c](https://github.com/stirling-image/stirling-image/commit/3b39a8cc5f11a5093f42bcdbe97989fce3841616)) -* **rotate:** add editable angle input and fine-tune +/- buttons ([e1f04c2](https://github.com/stirling-image/stirling-image/commit/e1f04c28a6b03c0503266c0e78e7a9161011d939)) -* serve React SPA from Fastify in production mode ([d4ae4d5](https://github.com/stirling-image/stirling-image/commit/d4ae4d586a60fe88f6834e5f32b89f7ef3d3bc7e)) -* **storage:** add file storage helpers module ([7c37213](https://github.com/stirling-image/stirling-image/commit/7c372135c8eb9d65198c0720bc2d0c83ac145004)) -* **stores:** add Zustand store for Files page state management ([fb487be](https://github.com/stirling-image/stirling-image/commit/fb487be051c6da6ca22a443323cf4788d4ca4e6b)) -* **tool-factory:** auto-save results to persistent file store when fileId provided ([27d8629](https://github.com/stirling-image/stirling-image/commit/27d8629c704bc9cabed8c7dd87c34ea8e9433347)) -* **ui:** add teams, tools, feature flags, temp files, logo to settings dialog ([fbce0dd](https://github.com/stirling-image/stirling-image/commit/fbce0dddd05c1e539bfbdb084c3b53d59f5dfd76)) -* upgrade to BiRefNet SOTA background removal model ([f53937b](https://github.com/stirling-image/stirling-image/commit/f53937b07006c6de26096467a106b0a055a4c95e)) -* **web:** add before/after image comparison slider component ([64c8f90](https://github.com/stirling-image/stirling-image/commit/64c8f908d7f188e079ff3bd5f469f5ab701cc25d)) -* **web:** add fullscreen tool grid view ([86b716b](https://github.com/stirling-image/stirling-image/commit/86b716b76514494a3611798e0651f8dc3601ce8b)) -* **web:** add i18n architecture with English translations ([994cba7](https://github.com/stirling-image/stirling-image/commit/994cba77164c6f1a1b092e76f9fa441077639079)) -* **web:** add keyboard shortcuts for tool navigation ([e06e44c](https://github.com/stirling-image/stirling-image/commit/e06e44cf2763265acfe97b14e863f22bd60dd264)) -* **web:** add mobile responsive layout with bottom navigation ([ade6469](https://github.com/stirling-image/stirling-image/commit/ade64699adbe54bbfed39f1a3cba924c3caeaef1)) -* **web:** add pipeline builder UI with saved automations and templates ([39a7bf2](https://github.com/stirling-image/stirling-image/commit/39a7bf259b25bc31575376bdec036f4693c5e777)) -* **web:** add ProgressCard component ([ed69488](https://github.com/stirling-image/stirling-image/commit/ed6948804b52ee5d8977732130a55c6c1efc358d)) -* **web:** add ProgressCard to non-AI tool settings (Group A) ([17035e9](https://github.com/stirling-image/stirling-image/commit/17035e98abc84f7abd0de91b9c0b324403a31c71)) -* **web:** add settings dialog with general, security, API keys, and about sections ([bca8e81](https://github.com/stirling-image/stirling-image/commit/bca8e81e3ad73a7f39451c8e3cc6d105f6665dcf)) -* **web:** add Stirling-PDF-style file preview, review panel, and tool chaining UX ([e12fc57](https://github.com/stirling-image/stirling-image/commit/e12fc57ce101f7d68b718a2fb5bf3ea4884f69f2)) -* **web:** add tool settings UI for all core image tools ([f9be6d6](https://github.com/stirling-image/stirling-image/commit/f9be6d6eeff2ebe2d10fa69cc37993427f52ec76)) -* **web:** migrate AI tool settings to ProgressCard ([eed4fc2](https://github.com/stirling-image/stirling-image/commit/eed4fc28db80967aa3bb513459bf05d9b417d65f)) -* **web:** redesign home page upload flow and add auth guard ([915a8cc](https://github.com/stirling-image/stirling-image/commit/915a8cc2d5ecb8dc60b968cf85c5519a0c64cef6)) -* **web:** rewrite useToolProcessor with XHR upload progress and SSE ([305f50b](https://github.com/stirling-image/stirling-image/commit/305f50b5f4bd87cc19a3a8fe0d0374bb78bad101)) -* wire up batch processing across tool settings components ([1d87091](https://github.com/stirling-image/stirling-image/commit/1d87091bbc4bce9d8e78b0cddd474d21dd4dcd1c)) +* accept clientJobId in batch endpoint for SSE progress correlation ([8ed57f4](https://github.com/ashim-hq/ashim/commit/8ed57f400fd083fbef7528f51231f59ecd3b1bee)) +* add authentication with default admin user ([2189628](https://github.com/ashim-hq/ashim/commit/2189628861b83ffd29b60841f2ee74458a76a7cc)) +* add automatic workspace file cleanup cron ([5af7437](https://github.com/ashim-hq/ashim/commit/5af7437d809a4e68376d68d201bf56700711836c)) +* add CSS transform props to ImageViewer for live rotate/flip preview ([de3340f](https://github.com/ashim-hq/ashim/commit/de3340fc5b201cc5c046cbb38a274e7dfa026b41)) +* add CSS transform props to ImageViewer for live rotate/flip preview ([7627853](https://github.com/ashim-hq/ashim/commit/762785394b2e66a25ee858da96868cd752942a7d)) +* add Fastify API server with health check and env config ([be73ce9](https://github.com/ashim-hq/ashim/commit/be73ce9a2bcbab3c6a72fa735a500c6b83f86a9c)) +* add forced password change page on first login ([e0900a8](https://github.com/ashim-hq/ashim/commit/e0900a877643c75266aeed5ac29501458ef0dcda)) +* add format tools (SVG-to-raster, vectorize, GIF) and optimization (rename, favicon, image-to-PDF) ([7b29b04](https://github.com/ashim-hq/ashim/commit/7b29b043d850de46c5cf4ef1829f8a97dc9a0143)) +* add generic tool page template with settings panel and dropzone ([0f32ba1](https://github.com/ashim-hq/ashim/commit/0f32ba10327f2fe96594544e0c7dc1b20ca479b0)) +* add image-engine and ai stub packages ([17ac7b8](https://github.com/ashim-hq/ashim/commit/17ac7b83658c29a3e7a7711536c0648b3b23420a)) +* add layout tools (collage, splitting, border/frame) ([e46dbf6](https://github.com/ashim-hq/ashim/commit/e46dbf6efb61e2812a7eb4c50a29b9391cd50654)) +* add live preview callback to RotateSettings, rename button to Apply ([17be50b](https://github.com/ashim-hq/ashim/commit/17be50b213e1ca6d1d6e8d949b65de70c68d108d)) +* add live preview callback to RotateSettings, rename button to Apply ([06844ec](https://github.com/ashim-hq/ashim/commit/06844ec1ada4d5685691f26655ecb8712b4d94d9)) +* add login page with split layout matching ashim style ([2b82f93](https://github.com/ashim-hq/ashim/commit/2b82f93b083c7a5bfcd37c25e85e5887c09c87ae)) +* add multi-stage Docker build with Python ML dependencies ([8d70123](https://github.com/ashim-hq/ashim/commit/8d7012398973fd561db7b868dd2d50c2e71d2ed7)) +* add MultiImageViewer with arrow navigation and filmstrip ([1fa8747](https://github.com/ashim-hq/ashim/commit/1fa874758ca58efb4b9f68d76a02648d6a84abfe)) +* add password generator and browser save prompt on change-password page ([d56c644](https://github.com/ashim-hq/ashim/commit/d56c6446fee8384ab61ba180160f5e020a1e412e)) +* add Phase 4 AI tools with Python bridge and 6 new tools ([21df50e](https://github.com/ashim-hq/ashim/commit/21df50e140248ca51bc82fbc7b16748cf0f9c909)) +* add privacy policy page and fix CSP blocking API docs ([3e314f0](https://github.com/ashim-hq/ashim/commit/3e314f032491c59196db3493d0b86f6aeec22c63)) +* add processAllFiles batch method to tool processor hook ([cd1e180](https://github.com/ashim-hq/ashim/commit/cd1e18026fb4b866c4bbde6c259412674a501f05)) +* add replace-color tool and update tool page routing ([d5d09e4](https://github.com/ashim-hq/ashim/commit/d5d09e4a0f23091fb251cd15e17a639cf72a407a)) +* add semantic-release for automated versioning and help dialog ([83a0272](https://github.com/ashim-hq/ashim/commit/83a0272af284f182fa32e7fd9baa77fe2bd74e39)) +* add shared package with types, tool definitions, and constants ([96ed415](https://github.com/ashim-hq/ashim/commit/96ed4159a57fd27f8bb3214ec01bd085a5b34a54)) +* add SideBySideComparison component for resize results ([d037305](https://github.com/ashim-hq/ashim/commit/d037305f29a32ead0addf6d79ace4823c9ba0e2b)) +* add SideBySideComparison component for resize results ([2d0ba5a](https://github.com/ashim-hq/ashim/commit/2d0ba5a65683b45a6382ca1aea9f7a75d1143702)) +* add SQLite database with Drizzle ORM schema and migrations ([88c41cf](https://github.com/ashim-hq/ashim/commit/88c41cf27c79004fc02df0afc67c4bbc4aa1cd2f)) +* add ashim-style layout with sidebar, tool panel, dropzone, and theme toggle ([90f10f4](https://github.com/ashim-hq/ashim/commit/90f10f41510136ec1fde90a00bf62f1940a10d6e)) +* add Swagger/OpenAPI documentation at /api/docs ([0ef1a5a](https://github.com/ashim-hq/ashim/commit/0ef1a5a021893049fece83b48b4e178db4675813)) +* add theme system with dark/light/system support and persistence ([e35d249](https://github.com/ashim-hq/ashim/commit/e35d249ac80616754b93d67da367d0e43df20064)) +* add ThumbnailStrip filmstrip component ([9caa613](https://github.com/ashim-hq/ashim/commit/9caa613883a7f0f0ccfbb268d3e88596e92ce094)) +* add utility tools (image info, compare, duplicates, color palette, QR, barcode) ([e17992e](https://github.com/ashim-hq/ashim/commit/e17992e6bdf4ee99980e851270c788e7a478a64f)) +* add Vite + React SPA with Tailwind CSS and routing ([9483ad7](https://github.com/ashim-hq/ashim/commit/9483ad740e46adc5f2fa6b5c4992f19d429dacaf)) +* add watermark, text overlay, and image composition tools ([b2543d9](https://github.com/ashim-hq/ashim/commit/b2543d9b5fc8e33a10d36c0cf32d7cb2de1e7901)) +* add worker threads, persistent Python sidecar, graceful shutdown, and architectural improvements ([1274cc1](https://github.com/ashim-hq/ashim/commit/1274cc103fa2f0f934e9e2322c6034533ab62ec4)) +* **adjustments:** add real-time live preview for all color tools ([b5c924e](https://github.com/ashim-hq/ashim/commit/b5c924e0fc7468c6364ef320958cea2e5ef18420)) +* **ai:** add emit_progress() calls to all Python AI scripts ([eb6f57d](https://github.com/ashim-hq/ashim/commit/eb6f57dfa35fa10ada4493e9fd73fe4d4788c03c)) +* **ai:** add onProgress callback to all AI wrapper functions ([021c9f1](https://github.com/ashim-hq/ashim/commit/021c9f12b5a1aca6c6c7cb8c9d9fad3d0406ab94)) +* **ai:** rewrite bridge.ts to stream stderr progress via spawn ([9d9c45a](https://github.com/ashim-hq/ashim/commit/9d9c45a04c2a85e99021a35a3da94e1e19cb9043)) +* **api,web:** add batch processing with ZIP download and SSE progress ([f8aa5f7](https://github.com/ashim-hq/ashim/commit/f8aa5f7bf2d81fc06e1118741d011023c2a4889b)) +* **api:** add all remaining endpoints to OpenAPI spec ([e7b38ba](https://github.com/ashim-hq/ashim/commit/e7b38ba68f8ae7fae5675bafc0f2dc2c4f22ecd2)) +* **api:** add all tool endpoints to OpenAPI spec ([753ba3e](https://github.com/ashim-hq/ashim/commit/753ba3e4689b1a3504960d15d1ebceaf2a08876e)) +* **api:** add generic tool route factory for all image tools ([43555c9](https://github.com/ashim-hq/ashim/commit/43555c90ecedcb9364de73d51003e657f649c126)) +* **api:** add llms.txt and llms-full.txt endpoints ([12ba52a](https://github.com/ashim-hq/ashim/commit/12ba52a6a0c1260f02a4d7787be8113383575d9e)) +* **api:** add logo upload/serve/delete routes with tests ([6063f4d](https://github.com/ashim-hq/ashim/commit/6063f4daa98acf3f03e004a588de562e377105c7)) +* **api:** add multipart file upload, workspace management, and download routes ([415de2a](https://github.com/ashim-hq/ashim/commit/415de2a5dff2c5344d38dd3b3d31513d5c2ed85b)) +* **api:** add OpenAPI 3.1 spec skeleton with common schemas ([b2189f5](https://github.com/ashim-hq/ashim/commit/b2189f556815ef8d5c781eee72b8263db09f6a1a)) +* **api:** add persistent file management helpers to frontend api module ([ecbfcce](https://github.com/ashim-hq/ashim/commit/ecbfcceec82010fa44244c6839928b9930d59b5a)) +* **api:** add pipeline execution, save, and list endpoints ([d4f1148](https://github.com/ashim-hq/ashim/commit/d4f1148860d7801f8d0fd276d6a2ec9efa1f68af)) +* **api:** add resize, crop, rotate, convert, compress, metadata, and color tool routes ([4874701](https://github.com/ashim-hq/ashim/commit/48747016ed71ad8300d463e8128b922177c23721)) +* **api:** add Scalar docs route and install dependency ([6f2c319](https://github.com/ashim-hq/ashim/commit/6f2c3190b8414d1c4c3b1a78cf7a86a96109c934)) +* **api:** add SingleFileProgress type and SSE update function ([12b85d4](https://github.com/ashim-hq/ashim/commit/12b85d4def1f29ca291d6f5e538181f2bcbcf774)) +* **api:** add teams CRUD routes and update auth team references ([ec22e53](https://github.com/ashim-hq/ashim/commit/ec22e53a3b15ae030743e76db0d57584000727b6)) +* **api:** add tool filtering and DB-backed cleanup settings ([07e7e8d](https://github.com/ashim-hq/ashim/commit/07e7e8d58d311d89f43cee1c7fa21dd0eb4c9dfb)) +* **api:** add user files CRUD routes at /api/v1/files/* ([6a07007](https://github.com/ashim-hq/ashim/commit/6a070071456611d2bf2acf4a474be8c43680e1b0)) +* **api:** register docs route in server and test helper ([bc6b389](https://github.com/ashim-hq/ashim/commit/bc6b38918ff11f1027efeb934ae0e56d6068b81f)) +* **api:** wire AI route handlers to SSE progress via clientJobId ([a3f85da](https://github.com/ashim-hq/ashim/commit/a3f85da20f73f02cd5ec141519aa73fcfeb2157b)) +* **branding:** add faceted gem SVG logo assets ([4bc9335](https://github.com/ashim-hq/ashim/commit/4bc93351541b039534197821d290d34cad12c9a7)) +* **branding:** add favicon and meta tags to index.html ([2508fd0](https://github.com/ashim-hq/ashim/commit/2508fd04871cdb776523ec9d602ad934283c6211)) +* **branding:** add OG social preview image ([c6c5b92](https://github.com/ashim-hq/ashim/commit/c6c5b926e271d457effea9aec07b70bbc7227ef5)) +* **branding:** add PWA manifest and PNG logo assets ([298567d](https://github.com/ashim-hq/ashim/commit/298567d090f298600b334184b09d35c178097362)) +* **branding:** show gem icon in app header as default logo ([dd857fb](https://github.com/ashim-hq/ashim/commit/dd857fbcc778a2425806f1d96d83f118dc92831a)) +* conditional result views — side-by-side for resize, live preview for rotate ([f0d18be](https://github.com/ashim-hq/ashim/commit/f0d18bee5ebc110e63bb3cf9fd829d80900759ce)) +* conditional result views — side-by-side for resize, live preview for rotate ([6682649](https://github.com/ashim-hq/ashim/commit/668264990c33667e586e4e24703f1957b18e1c0c)) +* **crop:** add CropCanvas component with visual overlay, grid, and keyboard controls ([018bbf4](https://github.com/ashim-hq/ashim/commit/018bbf44bfed4acf475de49ff9f3f5c20ee63295)) +* **crop:** add react-image-crop dependency ([b7ecd41](https://github.com/ashim-hq/ashim/commit/b7ecd41897de4f48e6f970dfbb1188848e9bcd2a)) +* **crop:** redesign CropSettings with aspect presets, pixel inputs, and grid toggle ([d75f458](https://github.com/ashim-hq/ashim/commit/d75f458dc0f13e69640bc012adea0ee29d02b82b)) +* **crop:** wire CropCanvas and CropSettings into tool-page with bidirectional state ([ea7fb46](https://github.com/ashim-hq/ashim/commit/ea7fb46f7ecad5639c007ba43d652fd72c75b39f)) +* **db:** add teams table and migration ([365783b](https://github.com/ashim-hq/ashim/commit/365783b6dc1f5cfa631bb4f6915fcf99d91f574d)) +* **db:** add userFiles table and migration ([a2fdbd5](https://github.com/ashim-hq/ashim/commit/a2fdbd5fef2cf02f90692166d6386c5ac21c2cef)) +* **docs:** add gem favicon to VitePress site ([0918f93](https://github.com/ashim-hq/ashim/commit/0918f933719ae0d8ff16cf7a8ac0e8936e90805a)) +* **docs:** add gem logo to GitHub Pages nav bar and home hero ([f0b8162](https://github.com/ashim-hq/ashim/commit/f0b8162955fa8f6b1891968163b4292b279f1ea1)) +* **docs:** add llms.txt and llms-full.txt to GitHub Pages ([5f6959a](https://github.com/ashim-hq/ashim/commit/5f6959a21e3b2708edb011a0a7ce48fbfbc64c87)) +* **docs:** add llms.txt links to GitHub Pages footer ([b874445](https://github.com/ashim-hq/ashim/commit/b874445dc6d31c54a095d7471390e664b233d491)) +* **env:** add FILES_STORAGE_PATH config variable ([3c737a6](https://github.com/ashim-hq/ashim/commit/3c737a6c724f4862d302bf22a75ebcd745f0df4c)) +* **erase-object:** replace mask upload with in-browser brush painting ([40e3081](https://github.com/ashim-hq/ashim/commit/40e30815915f18f9f7fc25c05a61c643f1dfdbe4)) +* extract auto-orient utility and expand test coverage ([8622c4a](https://github.com/ashim-hq/ashim/commit/8622c4a40245504372e75d3cd851535528639dea)) +* **files:** add Files page with nav, list, details, upload, and routing ([3f127a4](https://github.com/ashim-hq/ashim/commit/3f127a457e8a7a07d22fdf8776c3166092db562f)) +* **files:** add mobile layout for Files page ([e864d1e](https://github.com/ashim-hq/ashim/commit/e864d1e430bd516ccbe1732ec7451e1e7d670177)) +* **files:** wire serverFileId for version tracking ([8868d3e](https://github.com/ashim-hq/ashim/commit/8868d3e556beedcff35de268e72241e7f10998a3)) +* harden auth, security headers, SVG sanitization, and pipeline ownership ([beaad1d](https://github.com/ashim-hq/ashim/commit/beaad1d3044f6b2535aacb6a67541464f736778b)) +* **i18n:** add translation keys for settings phase 1 ([c5ff80a](https://github.com/ashim-hq/ashim/commit/c5ff80acfbe18b953cfd96a88498fc70b82b541e)) +* **image-engine:** add Sharp wrapper with 14 image operations ([3e7f71c](https://github.com/ashim-hq/ashim/commit/3e7f71ca830549ea28b47656b14b9375fa8c2c34)) +* **image-to-pdf:** add live PDF page preview with margin visualization ([cd666ea](https://github.com/ashim-hq/ashim/commit/cd666eaef0b13bcd9223439f0bbb5efd88b2f25e)) +* implement Files page with persistent storage and version tracking ([f6183d2](https://github.com/ashim-hq/ashim/commit/f6183d2c62e6ad04dec3fe0250468cbfd6cbc035)) +* initialize Turborepo monorepo with pnpm workspaces ([db31cf6](https://github.com/ashim-hq/ashim/commit/db31cf6f115c454eb59454fc227058a773944f93)) +* integrate MultiImageViewer and multi-file UX into tool page ([52aab1e](https://github.com/ashim-hq/ashim/commit/52aab1e2bf5f938a800a78b4e5c11f5ad9fbae27)) +* make AI tools pipeline-compatible and add search to tool picker ([2d46b09](https://github.com/ashim-hq/ashim/commit/2d46b096fa80e43f7a59e213ac884b5d1d30b586)) +* merge multi-image UX — batch processing, filmstrip navigation, resize/rotate redesign ([9bfdb75](https://github.com/ashim-hq/ashim/commit/9bfdb75f5c205906f2bd62d496e96d6b402e1dc1)) +* multi-arch Docker support, security hardening, and test improvements ([748d2b7](https://github.com/ashim-hq/ashim/commit/748d2b70460b3975a9c61edec0b121d788d0ee06)) +* multi-file metadata display with per-file caching ([42b59f3](https://github.com/ashim-hq/ashim/commit/42b59f3e2d84b3d9fd6724b9ed9fb272fb11201a)) +* **pipeline:** add inline settings configuration for automation steps ([827eae8](https://github.com/ashim-hq/ashim/commit/827eae824543ab9cea2a5d3a82acd388736fa424)) +* production Docker, Playwright tests, settings API, and bug fixes ([027c515](https://github.com/ashim-hq/ashim/commit/027c515f3582c5f030fb4c3cacae2ceee575e7c7)) +* replace model dropdown with intuitive subject/quality selector in remove-bg ([bc26d60](https://github.com/ashim-hq/ashim/commit/bc26d60d54a47a9fb6f58115131845d1ae5ee868)) +* rewrite file-store with FileEntry model for multi-image support ([abbb3e4](https://github.com/ashim-hq/ashim/commit/abbb3e4d6e8f21f35b385c51fb659010099556d1)) +* rewrite resize settings with tab-based UI (presets, custom, scale) ([b9f3ac0](https://github.com/ashim-hq/ashim/commit/b9f3ac0d222f3712d35becd6c831dc62f728a16a)) +* rewrite resize settings with tab-based UI (presets, custom, scale) ([3b39a8c](https://github.com/ashim-hq/ashim/commit/3b39a8cc5f11a5093f42bcdbe97989fce3841616)) +* **rotate:** add editable angle input and fine-tune +/- buttons ([e1f04c2](https://github.com/ashim-hq/ashim/commit/e1f04c28a6b03c0503266c0e78e7a9161011d939)) +* serve React SPA from Fastify in production mode ([d4ae4d5](https://github.com/ashim-hq/ashim/commit/d4ae4d586a60fe88f6834e5f32b89f7ef3d3bc7e)) +* **storage:** add file storage helpers module ([7c37213](https://github.com/ashim-hq/ashim/commit/7c372135c8eb9d65198c0720bc2d0c83ac145004)) +* **stores:** add Zustand store for Files page state management ([fb487be](https://github.com/ashim-hq/ashim/commit/fb487be051c6da6ca22a443323cf4788d4ca4e6b)) +* **tool-factory:** auto-save results to persistent file store when fileId provided ([27d8629](https://github.com/ashim-hq/ashim/commit/27d8629c704bc9cabed8c7dd87c34ea8e9433347)) +* **ui:** add teams, tools, feature flags, temp files, logo to settings dialog ([fbce0dd](https://github.com/ashim-hq/ashim/commit/fbce0dddd05c1e539bfbdb084c3b53d59f5dfd76)) +* upgrade to BiRefNet SOTA background removal model ([f53937b](https://github.com/ashim-hq/ashim/commit/f53937b07006c6de26096467a106b0a055a4c95e)) +* **web:** add before/after image comparison slider component ([64c8f90](https://github.com/ashim-hq/ashim/commit/64c8f908d7f188e079ff3bd5f469f5ab701cc25d)) +* **web:** add fullscreen tool grid view ([86b716b](https://github.com/ashim-hq/ashim/commit/86b716b76514494a3611798e0651f8dc3601ce8b)) +* **web:** add i18n architecture with English translations ([994cba7](https://github.com/ashim-hq/ashim/commit/994cba77164c6f1a1b092e76f9fa441077639079)) +* **web:** add keyboard shortcuts for tool navigation ([e06e44c](https://github.com/ashim-hq/ashim/commit/e06e44cf2763265acfe97b14e863f22bd60dd264)) +* **web:** add mobile responsive layout with bottom navigation ([ade6469](https://github.com/ashim-hq/ashim/commit/ade64699adbe54bbfed39f1a3cba924c3caeaef1)) +* **web:** add pipeline builder UI with saved automations and templates ([39a7bf2](https://github.com/ashim-hq/ashim/commit/39a7bf259b25bc31575376bdec036f4693c5e777)) +* **web:** add ProgressCard component ([ed69488](https://github.com/ashim-hq/ashim/commit/ed6948804b52ee5d8977732130a55c6c1efc358d)) +* **web:** add ProgressCard to non-AI tool settings (Group A) ([17035e9](https://github.com/ashim-hq/ashim/commit/17035e98abc84f7abd0de91b9c0b324403a31c71)) +* **web:** add settings dialog with general, security, API keys, and about sections ([bca8e81](https://github.com/ashim-hq/ashim/commit/bca8e81e3ad73a7f39451c8e3cc6d105f6665dcf)) +* **web:** add ashim-style file preview, review panel, and tool chaining UX ([e12fc57](https://github.com/ashim-hq/ashim/commit/e12fc57ce101f7d68b718a2fb5bf3ea4884f69f2)) +* **web:** add tool settings UI for all core image tools ([f9be6d6](https://github.com/ashim-hq/ashim/commit/f9be6d6eeff2ebe2d10fa69cc37993427f52ec76)) +* **web:** migrate AI tool settings to ProgressCard ([eed4fc2](https://github.com/ashim-hq/ashim/commit/eed4fc28db80967aa3bb513459bf05d9b417d65f)) +* **web:** redesign home page upload flow and add auth guard ([915a8cc](https://github.com/ashim-hq/ashim/commit/915a8cc2d5ecb8dc60b968cf85c5519a0c64cef6)) +* **web:** rewrite useToolProcessor with XHR upload progress and SSE ([305f50b](https://github.com/ashim-hq/ashim/commit/305f50b5f4bd87cc19a3a8fe0d0374bb78bad101)) +* wire up batch processing across tool settings components ([1d87091](https://github.com/ashim-hq/ashim/commit/1d87091bbc4bce9d8e78b0cddd474d21dd4dcd1c)) -# [0.19.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.18.0...v0.19.0) (2026-03-29) +# [0.19.0](https://github.com/ashim-hq/ashim/compare/v0.18.0...v0.19.0) (2026-03-29) ### Features -* add privacy policy page and fix CSP blocking API docs ([3e314f0](https://github.com/siddharthksah/Stirling-Image/commit/3e314f032491c59196db3493d0b86f6aeec22c63)) +* add privacy policy page and fix CSP blocking API docs ([3e314f0](https://github.com/ashim-hq/ashim/commit/3e314f032491c59196db3493d0b86f6aeec22c63)) -# [0.18.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.17.7...v0.18.0) (2026-03-29) +# [0.18.0](https://github.com/ashim-hq/ashim/compare/v0.17.7...v0.18.0) (2026-03-29) ### Features -* add worker threads, persistent Python sidecar, graceful shutdown, and architectural improvements ([1274cc1](https://github.com/siddharthksah/Stirling-Image/commit/1274cc103fa2f0f934e9e2322c6034533ab62ec4)) +* add worker threads, persistent Python sidecar, graceful shutdown, and architectural improvements ([1274cc1](https://github.com/ashim-hq/ashim/commit/1274cc103fa2f0f934e9e2322c6034533ab62ec4)) -## [0.17.7](https://github.com/siddharthksah/Stirling-Image/compare/v0.17.6...v0.17.7) (2026-03-28) +## [0.17.7](https://github.com/ashim-hq/ashim/compare/v0.17.6...v0.17.7) (2026-03-28) ### Bug Fixes -* move health diagnostics behind admin auth ([ee9a20f](https://github.com/siddharthksah/Stirling-Image/commit/ee9a20f6a35a0681b3688f0e206914fceed8fd8c)) -* reject HTML tags in settings API to prevent stored XSS ([d5bd011](https://github.com/siddharthksah/Stirling-Image/commit/d5bd01189766ee0797fe35ff3651f38f59a65881)) -* simplify public health to static response, add 403 test ([9c05da6](https://github.com/siddharthksah/Stirling-Image/commit/9c05da6f1372abd071e5249b102d86fa294e0d22)) -* switch README Docker references from GHCR to Docker Hub ([9e15679](https://github.com/siddharthksah/Stirling-Image/commit/9e1567971d50d755ef3b51d31e80b5a31a28ed2d)) -* use two-pass validation in settings PUT to prevent partial writes ([2dc39d3](https://github.com/siddharthksah/Stirling-Image/commit/2dc39d353320b73d9abb96ee5ae1080c2ee2f9cb)) +* move health diagnostics behind admin auth ([ee9a20f](https://github.com/ashim-hq/ashim/commit/ee9a20f6a35a0681b3688f0e206914fceed8fd8c)) +* reject HTML tags in settings API to prevent stored XSS ([d5bd011](https://github.com/ashim-hq/ashim/commit/d5bd01189766ee0797fe35ff3651f38f59a65881)) +* simplify public health to static response, add 403 test ([9c05da6](https://github.com/ashim-hq/ashim/commit/9c05da6f1372abd071e5249b102d86fa294e0d22)) +* switch README Docker references from GHCR to Docker Hub ([9e15679](https://github.com/ashim-hq/ashim/commit/9e1567971d50d755ef3b51d31e80b5a31a28ed2d)) +* use two-pass validation in settings PUT to prevent partial writes ([2dc39d3](https://github.com/ashim-hq/ashim/commit/2dc39d353320b73d9abb96ee5ae1080c2ee2f9cb)) -## [0.17.6](https://github.com/siddharthksah/Stirling-Image/compare/v0.17.5...v0.17.6) (2026-03-28) +## [0.17.6](https://github.com/ashim-hq/ashim/compare/v0.17.5...v0.17.6) (2026-03-28) ### Bug Fixes -* resolve pipeline step race condition and infinite re-render loop ([e0177d4](https://github.com/siddharthksah/Stirling-Image/commit/e0177d405ef043a64f0b3a885e98169312be1fac)) -* show checkerboard behind transparent images in before/after slider ([73741e6](https://github.com/siddharthksah/Stirling-Image/commit/73741e6efbdee53396810a2bb11eaf9597e4aa32)) +* resolve pipeline step race condition and infinite re-render loop ([e0177d4](https://github.com/ashim-hq/ashim/commit/e0177d405ef043a64f0b3a885e98169312be1fac)) +* show checkerboard behind transparent images in before/after slider ([73741e6](https://github.com/ashim-hq/ashim/commit/73741e6efbdee53396810a2bb11eaf9597e4aa32)) -## [0.17.5](https://github.com/siddharthksah/Stirling-Image/compare/v0.17.4...v0.17.5) (2026-03-28) +## [0.17.5](https://github.com/ashim-hq/ashim/compare/v0.17.4...v0.17.5) (2026-03-28) ### Bug Fixes -* sync stepsRef during render, not useEffect ([0c86744](https://github.com/siddharthksah/Stirling-Image/commit/0c86744dda1073988c7e6bb55073f08e399c26f3)) +* sync stepsRef during render, not useEffect ([0c86744](https://github.com/ashim-hq/ashim/commit/0c86744dda1073988c7e6bb55073f08e399c26f3)) -## [0.17.4](https://github.com/siddharthksah/Stirling-Image/compare/v0.17.3...v0.17.4) (2026-03-28) +## [0.17.4](https://github.com/ashim-hq/ashim/compare/v0.17.3...v0.17.4) (2026-03-28) ### Bug Fixes -* prevent stale closure in pipeline step callbacks ([c67f002](https://github.com/siddharthksah/Stirling-Image/commit/c67f0027804f167e250bd497505399c07b539c4e)) +* prevent stale closure in pipeline step callbacks ([c67f002](https://github.com/ashim-hq/ashim/commit/c67f0027804f167e250bd497505399c07b539c4e)) -## [0.17.3](https://github.com/siddharthksah/Stirling-Image/compare/v0.17.2...v0.17.3) (2026-03-28) +## [0.17.3](https://github.com/ashim-hq/ashim/compare/v0.17.2...v0.17.3) (2026-03-28) ### Bug Fixes -* clear search when adding a step from the tool picker ([ae2e63f](https://github.com/siddharthksah/Stirling-Image/commit/ae2e63f7fc4af3556539eee577b253c0616cbd0f)) +* clear search when adding a step from the tool picker ([ae2e63f](https://github.com/ashim-hq/ashim/commit/ae2e63f7fc4af3556539eee577b253c0616cbd0f)) -## [0.17.2](https://github.com/siddharthksah/Stirling-Image/compare/v0.17.1...v0.17.2) (2026-03-28) +## [0.17.2](https://github.com/ashim-hq/ashim/compare/v0.17.1...v0.17.2) (2026-03-28) ### Bug Fixes -* prevent pipeline step settings from resetting on collapse ([d899ef1](https://github.com/siddharthksah/Stirling-Image/commit/d899ef128004e46200da785a960da50894e93861)) +* prevent pipeline step settings from resetting on collapse ([d899ef1](https://github.com/ashim-hq/ashim/commit/d899ef128004e46200da785a960da50894e93861)) -## [0.17.1](https://github.com/siddharthksah/Stirling-Image/compare/v0.17.0...v0.17.1) (2026-03-28) +## [0.17.1](https://github.com/ashim-hq/ashim/compare/v0.17.0...v0.17.1) (2026-03-28) ### Bug Fixes -* add remove-background settings to pipeline step configurator ([ae5ac81](https://github.com/siddharthksah/Stirling-Image/commit/ae5ac8134689e211f17534f3064995597b6337c8)) +* add remove-background settings to pipeline step configurator ([ae5ac81](https://github.com/ashim-hq/ashim/commit/ae5ac8134689e211f17534f3064995597b6337c8)) -# [0.17.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.16.4...v0.17.0) (2026-03-28) +# [0.17.0](https://github.com/ashim-hq/ashim/compare/v0.16.4...v0.17.0) (2026-03-28) ### Features -* make AI tools pipeline-compatible and add search to tool picker ([2d46b09](https://github.com/siddharthksah/Stirling-Image/commit/2d46b096fa80e43f7a59e213ac884b5d1d30b586)) +* make AI tools pipeline-compatible and add search to tool picker ([2d46b09](https://github.com/ashim-hq/ashim/commit/2d46b096fa80e43f7a59e213ac884b5d1d30b586)) -## [0.16.4](https://github.com/siddharthksah/Stirling-Image/compare/v0.16.3...v0.16.4) (2026-03-28) +## [0.16.4](https://github.com/ashim-hq/ashim/compare/v0.16.3...v0.16.4) (2026-03-28) ### Bug Fixes -* surface hidden errors and add batch rejection tests ([2f8e2ce](https://github.com/siddharthksah/Stirling-Image/commit/2f8e2ce7e2b96613ebda249890632bc54c11980b)) +* surface hidden errors and add batch rejection tests ([2f8e2ce](https://github.com/ashim-hq/ashim/commit/2f8e2ce7e2b96613ebda249890632bc54c11980b)) -## [0.16.3](https://github.com/siddharthksah/Stirling-Image/compare/v0.16.2...v0.16.3) (2026-03-28) +## [0.16.3](https://github.com/ashim-hq/ashim/compare/v0.16.2...v0.16.3) (2026-03-28) ### Bug Fixes -* remove Google Drive coming soon placeholder from files nav ([e487fe0](https://github.com/siddharthksah/Stirling-Image/commit/e487fe06bf4cad6512100bf9660498e06c1047ba)) +* remove Google Drive coming soon placeholder from files nav ([e487fe0](https://github.com/ashim-hq/ashim/commit/e487fe06bf4cad6512100bf9660498e06c1047ba)) -## [0.16.2](https://github.com/siddharthksah/Stirling-Image/compare/v0.16.1...v0.16.2) (2026-03-28) +## [0.16.2](https://github.com/ashim-hq/ashim/compare/v0.16.1...v0.16.2) (2026-03-28) ### Bug Fixes -* pipeline only shows compatible tools and displays errors ([fe021c1](https://github.com/siddharthksah/Stirling-Image/commit/fe021c18b134c853262c8f0dac81c13f9ceeb435)) +* pipeline only shows compatible tools and displays errors ([fe021c1](https://github.com/ashim-hq/ashim/commit/fe021c18b134c853262c8f0dac81c13f9ceeb435)) -## [0.16.1](https://github.com/siddharthksah/Stirling-Image/compare/v0.16.0...v0.16.1) (2026-03-28) +## [0.16.1](https://github.com/ashim-hq/ashim/compare/v0.16.0...v0.16.1) (2026-03-28) ### Bug Fixes -* trigger browser password save prompt on password change ([6b279ad](https://github.com/siddharthksah/Stirling-Image/commit/6b279ad09b9e74de34732b0e854f1180f25b34bd)) +* trigger browser password save prompt on password change ([6b279ad](https://github.com/ashim-hq/ashim/commit/6b279ad09b9e74de34732b0e854f1180f25b34bd)) -# [0.16.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.15.0...v0.16.0) (2026-03-28) +# [0.16.0](https://github.com/ashim-hq/ashim/compare/v0.15.0...v0.16.0) (2026-03-28) ### Features -* add password generator and browser save prompt on change-password page ([d56c644](https://github.com/siddharthksah/Stirling-Image/commit/d56c6446fee8384ab61ba180160f5e020a1e412e)) +* add password generator and browser save prompt on change-password page ([d56c644](https://github.com/ashim-hq/ashim/commit/d56c6446fee8384ab61ba180160f5e020a1e412e)) -# [0.15.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.14.2...v0.15.0) (2026-03-28) +# [0.15.0](https://github.com/ashim-hq/ashim/compare/v0.14.2...v0.15.0) (2026-03-28) ### Features -* add forced password change page on first login ([e0900a8](https://github.com/siddharthksah/Stirling-Image/commit/e0900a877643c75266aeed5ac29501458ef0dcda)) +* add forced password change page on first login ([e0900a8](https://github.com/ashim-hq/ashim/commit/e0900a877643c75266aeed5ac29501458ef0dcda)) -## [0.14.2](https://github.com/siddharthksah/Stirling-Image/compare/v0.14.1...v0.14.2) (2026-03-28) +## [0.14.2](https://github.com/ashim-hq/ashim/compare/v0.14.1...v0.14.2) (2026-03-28) ### Bug Fixes -* **tests:** remove temp DB cleanup that races with other test files ([498bfb3](https://github.com/siddharthksah/Stirling-Image/commit/498bfb3def2d6786fa5e387b3e30ede9768ef616)) +* **tests:** remove temp DB cleanup that races with other test files ([498bfb3](https://github.com/ashim-hq/ashim/commit/498bfb3def2d6786fa5e387b3e30ede9768ef616)) -## [0.14.1](https://github.com/siddharthksah/Stirling-Image/compare/v0.14.0...v0.14.1) (2026-03-28) +## [0.14.1](https://github.com/ashim-hq/ashim/compare/v0.14.0...v0.14.1) (2026-03-28) ### Bug Fixes -* handle migration race condition in concurrent test workers ([d576ab1](https://github.com/siddharthksah/Stirling-Image/commit/d576ab1dfb1e9d2aa739c681c1f83d6fef3f7d22)) +* handle migration race condition in concurrent test workers ([d576ab1](https://github.com/ashim-hq/ashim/commit/d576ab1dfb1e9d2aa739c681c1f83d6fef3f7d22)) -# [0.14.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.13.1...v0.14.0) (2026-03-28) +# [0.14.0](https://github.com/ashim-hq/ashim/compare/v0.13.1...v0.14.0) (2026-03-28) ### Features -* multi-arch Docker support, security hardening, and test improvements ([748d2b7](https://github.com/siddharthksah/Stirling-Image/commit/748d2b70460b3975a9c61edec0b121d788d0ee06)) +* multi-arch Docker support, security hardening, and test improvements ([748d2b7](https://github.com/ashim-hq/ashim/commit/748d2b70460b3975a9c61edec0b121d788d0ee06)) -## [0.13.1](https://github.com/siddharthksah/Stirling-Image/compare/v0.13.0...v0.13.1) (2026-03-27) +## [0.13.1](https://github.com/ashim-hq/ashim/compare/v0.13.0...v0.13.1) (2026-03-27) ### Bug Fixes -* **docs:** remove hero logo from home page ([64c0ec8](https://github.com/siddharthksah/Stirling-Image/commit/64c0ec895f82b09e50d5ecf2b85f759f0a481232)) +* **docs:** remove hero logo from home page ([64c0ec8](https://github.com/ashim-hq/ashim/commit/64c0ec895f82b09e50d5ecf2b85f759f0a481232)) -# [0.13.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.12.1...v0.13.0) (2026-03-27) +# [0.13.0](https://github.com/ashim-hq/ashim/compare/v0.12.1...v0.13.0) (2026-03-27) ### Features -* **docs:** add gem logo to GitHub Pages nav bar and home hero ([f0b8162](https://github.com/siddharthksah/Stirling-Image/commit/f0b8162955fa8f6b1891968163b4292b279f1ea1)) +* **docs:** add gem logo to GitHub Pages nav bar and home hero ([f0b8162](https://github.com/ashim-hq/ashim/commit/f0b8162955fa8f6b1891968163b4292b279f1ea1)) -## [0.12.1](https://github.com/siddharthksah/Stirling-Image/compare/v0.12.0...v0.12.1) (2026-03-27) +## [0.12.1](https://github.com/ashim-hq/ashim/compare/v0.12.0...v0.12.1) (2026-03-27) ### Bug Fixes -* **docs:** clean up footer llms.txt links ([e842cde](https://github.com/siddharthksah/Stirling-Image/commit/e842cde838ad3deb1437c4c43c8ccd796276248c)) +* **docs:** clean up footer llms.txt links ([e842cde](https://github.com/ashim-hq/ashim/commit/e842cde838ad3deb1437c4c43c8ccd796276248c)) -# [0.12.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.11.1...v0.12.0) (2026-03-27) +# [0.12.0](https://github.com/ashim-hq/ashim/compare/v0.11.1...v0.12.0) (2026-03-27) ### Bug Fixes -* **api:** resolve team name lookup and show server error messages ([609fc8b](https://github.com/siddharthksah/Stirling-Image/commit/609fc8b6cc2d2408226e2576c35d7715bdf1498c)) +* **api:** resolve team name lookup and show server error messages ([609fc8b](https://github.com/ashim-hq/ashim/commit/609fc8b6cc2d2408226e2576c35d7715bdf1498c)) ### Features -* **docs:** add llms.txt links to GitHub Pages footer ([b874445](https://github.com/siddharthksah/Stirling-Image/commit/b874445dc6d31c54a095d7471390e664b233d491)) +* **docs:** add llms.txt links to GitHub Pages footer ([b874445](https://github.com/ashim-hq/ashim/commit/b874445dc6d31c54a095d7471390e664b233d491)) -## [0.11.1](https://github.com/siddharthksah/Stirling-Image/compare/v0.11.0...v0.11.1) (2026-03-27) +## [0.11.1](https://github.com/ashim-hq/ashim/compare/v0.11.0...v0.11.1) (2026-03-27) ### Bug Fixes -* **docs:** ignore localhost dead links in VitePress build ([78269d4](https://github.com/siddharthksah/Stirling-Image/commit/78269d499c914d5d68c4455475a1608f4af2a075)) +* **docs:** ignore localhost dead links in VitePress build ([78269d4](https://github.com/ashim-hq/ashim/commit/78269d499c914d5d68c4455475a1608f4af2a075)) -# [0.11.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.10.0...v0.11.0) (2026-03-27) +# [0.11.0](https://github.com/ashim-hq/ashim/compare/v0.10.0...v0.11.0) (2026-03-27) ### Bug Fixes -* **a11y:** add aria-hidden to decorative GemLogo SVG ([ae185ce](https://github.com/siddharthksah/Stirling-Image/commit/ae185ce767a480719d2f54d5675cbd7d64beb7b5)) -* **api:** allow Scalar docs through auth and CSP ([6023109](https://github.com/siddharthksah/Stirling-Image/commit/6023109df9c66c1e7b4d81f3e902f081809ed6ba)) -* **api:** use content instead of spec.content for Scalar v1.49 API ([dfcb4d5](https://github.com/siddharthksah/Stirling-Image/commit/dfcb4d579f4b44013d23dff8617d9a9f6315b452)) -* **ui:** clean up settings, automate page, fullscreen logo, and README ([b3c8ad4](https://github.com/siddharthksah/Stirling-Image/commit/b3c8ad4697000454a11aaace27d0baa37a9959d9)) +* **a11y:** add aria-hidden to decorative GemLogo SVG ([ae185ce](https://github.com/ashim-hq/ashim/commit/ae185ce767a480719d2f54d5675cbd7d64beb7b5)) +* **api:** allow Scalar docs through auth and CSP ([6023109](https://github.com/ashim-hq/ashim/commit/6023109df9c66c1e7b4d81f3e902f081809ed6ba)) +* **api:** use content instead of spec.content for Scalar v1.49 API ([dfcb4d5](https://github.com/ashim-hq/ashim/commit/dfcb4d579f4b44013d23dff8617d9a9f6315b452)) +* **ui:** clean up settings, automate page, fullscreen logo, and README ([b3c8ad4](https://github.com/ashim-hq/ashim/commit/b3c8ad4697000454a11aaace27d0baa37a9959d9)) ### Features -* **api:** add all remaining endpoints to OpenAPI spec ([e7b38ba](https://github.com/siddharthksah/Stirling-Image/commit/e7b38ba68f8ae7fae5675bafc0f2dc2c4f22ecd2)) -* **api:** add all tool endpoints to OpenAPI spec ([753ba3e](https://github.com/siddharthksah/Stirling-Image/commit/753ba3e4689b1a3504960d15d1ebceaf2a08876e)) -* **api:** add llms.txt and llms-full.txt endpoints ([12ba52a](https://github.com/siddharthksah/Stirling-Image/commit/12ba52a6a0c1260f02a4d7787be8113383575d9e)) -* **api:** add OpenAPI 3.1 spec skeleton with common schemas ([b2189f5](https://github.com/siddharthksah/Stirling-Image/commit/b2189f556815ef8d5c781eee72b8263db09f6a1a)) -* **api:** add Scalar docs route and install dependency ([6f2c319](https://github.com/siddharthksah/Stirling-Image/commit/6f2c3190b8414d1c4c3b1a78cf7a86a96109c934)) -* **api:** register docs route in server and test helper ([bc6b389](https://github.com/siddharthksah/Stirling-Image/commit/bc6b38918ff11f1027efeb934ae0e56d6068b81f)) -* **branding:** add faceted gem SVG logo assets ([4bc9335](https://github.com/siddharthksah/Stirling-Image/commit/4bc93351541b039534197821d290d34cad12c9a7)) -* **branding:** add favicon and meta tags to index.html ([2508fd0](https://github.com/siddharthksah/Stirling-Image/commit/2508fd04871cdb776523ec9d602ad934283c6211)) -* **branding:** add OG social preview image ([c6c5b92](https://github.com/siddharthksah/Stirling-Image/commit/c6c5b926e271d457effea9aec07b70bbc7227ef5)) -* **branding:** add PWA manifest and PNG logo assets ([298567d](https://github.com/siddharthksah/Stirling-Image/commit/298567d090f298600b334184b09d35c178097362)) -* **branding:** show gem icon in app header as default logo ([dd857fb](https://github.com/siddharthksah/Stirling-Image/commit/dd857fbcc778a2425806f1d96d83f118dc92831a)) -* **docs:** add gem favicon to VitePress site ([0918f93](https://github.com/siddharthksah/Stirling-Image/commit/0918f933719ae0d8ff16cf7a8ac0e8936e90805a)) -* **docs:** add llms.txt and llms-full.txt to GitHub Pages ([5f6959a](https://github.com/siddharthksah/Stirling-Image/commit/5f6959a21e3b2708edb011a0a7ce48fbfbc64c87)) +* **api:** add all remaining endpoints to OpenAPI spec ([e7b38ba](https://github.com/ashim-hq/ashim/commit/e7b38ba68f8ae7fae5675bafc0f2dc2c4f22ecd2)) +* **api:** add all tool endpoints to OpenAPI spec ([753ba3e](https://github.com/ashim-hq/ashim/commit/753ba3e4689b1a3504960d15d1ebceaf2a08876e)) +* **api:** add llms.txt and llms-full.txt endpoints ([12ba52a](https://github.com/ashim-hq/ashim/commit/12ba52a6a0c1260f02a4d7787be8113383575d9e)) +* **api:** add OpenAPI 3.1 spec skeleton with common schemas ([b2189f5](https://github.com/ashim-hq/ashim/commit/b2189f556815ef8d5c781eee72b8263db09f6a1a)) +* **api:** add Scalar docs route and install dependency ([6f2c319](https://github.com/ashim-hq/ashim/commit/6f2c3190b8414d1c4c3b1a78cf7a86a96109c934)) +* **api:** register docs route in server and test helper ([bc6b389](https://github.com/ashim-hq/ashim/commit/bc6b38918ff11f1027efeb934ae0e56d6068b81f)) +* **branding:** add faceted gem SVG logo assets ([4bc9335](https://github.com/ashim-hq/ashim/commit/4bc93351541b039534197821d290d34cad12c9a7)) +* **branding:** add favicon and meta tags to index.html ([2508fd0](https://github.com/ashim-hq/ashim/commit/2508fd04871cdb776523ec9d602ad934283c6211)) +* **branding:** add OG social preview image ([c6c5b92](https://github.com/ashim-hq/ashim/commit/c6c5b926e271d457effea9aec07b70bbc7227ef5)) +* **branding:** add PWA manifest and PNG logo assets ([298567d](https://github.com/ashim-hq/ashim/commit/298567d090f298600b334184b09d35c178097362)) +* **branding:** show gem icon in app header as default logo ([dd857fb](https://github.com/ashim-hq/ashim/commit/dd857fbcc778a2425806f1d96d83f118dc92831a)) +* **docs:** add gem favicon to VitePress site ([0918f93](https://github.com/ashim-hq/ashim/commit/0918f933719ae0d8ff16cf7a8ac0e8936e90805a)) +* **docs:** add llms.txt and llms-full.txt to GitHub Pages ([5f6959a](https://github.com/ashim-hq/ashim/commit/5f6959a21e3b2708edb011a0a7ce48fbfbc64c87)) -# [0.10.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.9.0...v0.10.0) (2026-03-26) +# [0.10.0](https://github.com/ashim-hq/ashim/compare/v0.9.0...v0.10.0) (2026-03-26) ### Bug Fixes -* **ocr:** update PaddleOCR for v3 API and add Tesseract fallback ([e260a93](https://github.com/siddharthksah/Stirling-Image/commit/e260a93cf65f1e7cd22b7b5d491c6125fee8c915)) +* **ocr:** update PaddleOCR for v3 API and add Tesseract fallback ([e260a93](https://github.com/ashim-hq/ashim/commit/e260a93cf65f1e7cd22b7b5d491c6125fee8c915)) ### Features -* **erase-object:** replace mask upload with in-browser brush painting ([40e3081](https://github.com/siddharthksah/Stirling-Image/commit/40e30815915f18f9f7fc25c05a61c643f1dfdbe4)) +* **erase-object:** replace mask upload with in-browser brush painting ([40e3081](https://github.com/ashim-hq/ashim/commit/40e30815915f18f9f7fc25c05a61c643f1dfdbe4)) -# [0.9.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.8.2...v0.9.0) (2026-03-26) +# [0.9.0](https://github.com/ashim-hq/ashim/compare/v0.8.2...v0.9.0) (2026-03-26) ### Bug Fixes -* **blur-faces:** switch from MediaPipe to OpenCV and auto-orient images ([dc10f90](https://github.com/siddharthksah/Stirling-Image/commit/dc10f905c62c662f1a40701c81874e5854ea33e6)) -* **docker:** add build layer caching for faster Docker rebuilds ([03ba30d](https://github.com/siddharthksah/Stirling-Image/commit/03ba30d8f01c5c2500641d934b08a875589bcd68)) -* **upscale:** auto-orient images before upscaling and improve UI ([8a6e665](https://github.com/siddharthksah/Stirling-Image/commit/8a6e665a4484bda1e4b93b520c393bb707a624aa)) +* **blur-faces:** switch from MediaPipe to OpenCV and auto-orient images ([dc10f90](https://github.com/ashim-hq/ashim/commit/dc10f905c62c662f1a40701c81874e5854ea33e6)) +* **docker:** add build layer caching for faster Docker rebuilds ([03ba30d](https://github.com/ashim-hq/ashim/commit/03ba30d8f01c5c2500641d934b08a875589bcd68)) +* **upscale:** auto-orient images before upscaling and improve UI ([8a6e665](https://github.com/ashim-hq/ashim/commit/8a6e665a4484bda1e4b93b520c393bb707a624aa)) ### Features -* **adjustments:** add real-time live preview for all color tools ([b5c924e](https://github.com/siddharthksah/Stirling-Image/commit/b5c924e0fc7468c6364ef320958cea2e5ef18420)) -* **image-to-pdf:** add live PDF page preview with margin visualization ([cd666ea](https://github.com/siddharthksah/Stirling-Image/commit/cd666eaef0b13bcd9223439f0bbb5efd88b2f25e)) -* **rotate:** add editable angle input and fine-tune +/- buttons ([e1f04c2](https://github.com/siddharthksah/Stirling-Image/commit/e1f04c28a6b03c0503266c0e78e7a9161011d939)) +* **adjustments:** add real-time live preview for all color tools ([b5c924e](https://github.com/ashim-hq/ashim/commit/b5c924e0fc7468c6364ef320958cea2e5ef18420)) +* **image-to-pdf:** add live PDF page preview with margin visualization ([cd666ea](https://github.com/ashim-hq/ashim/commit/cd666eaef0b13bcd9223439f0bbb5efd88b2f25e)) +* **rotate:** add editable angle input and fine-tune +/- buttons ([e1f04c2](https://github.com/ashim-hq/ashim/commit/e1f04c28a6b03c0503266c0e78e7a9161011d939)) -## [0.8.2](https://github.com/siddharthksah/Stirling-Image/compare/v0.8.1...v0.8.2) (2026-03-25) +## [0.8.2](https://github.com/ashim-hq/ashim/compare/v0.8.1...v0.8.2) (2026-03-25) ### Bug Fixes -* **test:** add missing PNG fixture files to repo ([45c6b9d](https://github.com/siddharthksah/Stirling-Image/commit/45c6b9de08124fb357ac759e43c4fbf1eb5fbfb9)) -* **test:** exclude e2e tests from vitest and fix CI test suite ([9d28485](https://github.com/siddharthksah/Stirling-Image/commit/9d28485339e17b80586cea91bd18dafc989d7f24)) +* **test:** add missing PNG fixture files to repo ([45c6b9d](https://github.com/ashim-hq/ashim/commit/45c6b9de08124fb357ac759e43c4fbf1eb5fbfb9)) +* **test:** exclude e2e tests from vitest and fix CI test suite ([9d28485](https://github.com/ashim-hq/ashim/commit/9d28485339e17b80586cea91bd18dafc989d7f24)) -## [0.8.1](https://github.com/siddharthksah/Stirling-Image/compare/v0.8.0...v0.8.1) (2026-03-25) +## [0.8.1](https://github.com/ashim-hq/ashim/compare/v0.8.0...v0.8.1) (2026-03-25) ### Bug Fixes -* resolve test failures from shared DB race conditions ([1a7116d](https://github.com/siddharthksah/Stirling-Image/commit/1a7116d79072d131b94d1c454abbc32b9e961c1b)) +* resolve test failures from shared DB race conditions ([1a7116d](https://github.com/ashim-hq/ashim/commit/1a7116d79072d131b94d1c454abbc32b9e961c1b)) -# [0.8.0](https://github.com/siddharthksah/Stirling-Image/compare/v0.7.0...v0.8.0) (2026-03-25) +# [0.8.0](https://github.com/ashim-hq/ashim/compare/v0.7.0...v0.8.0) (2026-03-25) ### Bug Fixes -* **docker:** skip husky prepare script in production install ([fdfb0a0](https://github.com/siddharthksah/Stirling-Image/commit/fdfb0a0e7412c86e3b85a70daf5093f44c34ee99)) -* prevent useAuth infinite loop causing rate limit storms ([9624dae](https://github.com/siddharthksah/Stirling-Image/commit/9624dae1569b6f2ad52ce990fc84eca809b849a8)) +* **docker:** skip husky prepare script in production install ([fdfb0a0](https://github.com/ashim-hq/ashim/commit/fdfb0a0e7412c86e3b85a70daf5093f44c34ee99)) +* prevent useAuth infinite loop causing rate limit storms ([9624dae](https://github.com/ashim-hq/ashim/commit/9624dae1569b6f2ad52ce990fc84eca809b849a8)) ### Features -* **api:** add logo upload/serve/delete routes with tests ([6063f4d](https://github.com/siddharthksah/Stirling-Image/commit/6063f4daa98acf3f03e004a588de562e377105c7)) -* **api:** add persistent file management helpers to frontend api module ([ecbfcce](https://github.com/siddharthksah/Stirling-Image/commit/ecbfcceec82010fa44244c6839928b9930d59b5a)) -* **api:** add teams CRUD routes and update auth team references ([ec22e53](https://github.com/siddharthksah/Stirling-Image/commit/ec22e53a3b15ae030743e76db0d57584000727b6)) -* **api:** add tool filtering and DB-backed cleanup settings ([07e7e8d](https://github.com/siddharthksah/Stirling-Image/commit/07e7e8d58d311d89f43cee1c7fa21dd0eb4c9dfb)) -* **api:** add user files CRUD routes at /api/v1/files/* ([6a07007](https://github.com/siddharthksah/Stirling-Image/commit/6a070071456611d2bf2acf4a474be8c43680e1b0)) -* **db:** add teams table and migration ([365783b](https://github.com/siddharthksah/Stirling-Image/commit/365783b6dc1f5cfa631bb4f6915fcf99d91f574d)) -* **db:** add userFiles table and migration ([a2fdbd5](https://github.com/siddharthksah/Stirling-Image/commit/a2fdbd5fef2cf02f90692166d6386c5ac21c2cef)) -* **env:** add FILES_STORAGE_PATH config variable ([3c737a6](https://github.com/siddharthksah/Stirling-Image/commit/3c737a6c724f4862d302bf22a75ebcd745f0df4c)) -* **files:** add Files page with nav, list, details, upload, and routing ([3f127a4](https://github.com/siddharthksah/Stirling-Image/commit/3f127a457e8a7a07d22fdf8776c3166092db562f)) -* **files:** add mobile layout for Files page ([e864d1e](https://github.com/siddharthksah/Stirling-Image/commit/e864d1e430bd516ccbe1732ec7451e1e7d670177)) -* **files:** wire serverFileId for version tracking ([8868d3e](https://github.com/siddharthksah/Stirling-Image/commit/8868d3e556beedcff35de268e72241e7f10998a3)) -* **i18n:** add translation keys for settings phase 1 ([c5ff80a](https://github.com/siddharthksah/Stirling-Image/commit/c5ff80acfbe18b953cfd96a88498fc70b82b541e)) -* implement Files page with persistent storage and version tracking ([f6183d2](https://github.com/siddharthksah/Stirling-Image/commit/f6183d2c62e6ad04dec3fe0250468cbfd6cbc035)) -* **storage:** add file storage helpers module ([7c37213](https://github.com/siddharthksah/Stirling-Image/commit/7c372135c8eb9d65198c0720bc2d0c83ac145004)) -* **stores:** add Zustand store for Files page state management ([fb487be](https://github.com/siddharthksah/Stirling-Image/commit/fb487be051c6da6ca22a443323cf4788d4ca4e6b)) -* **tool-factory:** auto-save results to persistent file store when fileId provided ([27d8629](https://github.com/siddharthksah/Stirling-Image/commit/27d8629c704bc9cabed8c7dd87c34ea8e9433347)) -* **ui:** add teams, tools, feature flags, temp files, logo to settings dialog ([fbce0dd](https://github.com/siddharthksah/Stirling-Image/commit/fbce0dddd05c1e539bfbdb084c3b53d59f5dfd76)) +* **api:** add logo upload/serve/delete routes with tests ([6063f4d](https://github.com/ashim-hq/ashim/commit/6063f4daa98acf3f03e004a588de562e377105c7)) +* **api:** add persistent file management helpers to frontend api module ([ecbfcce](https://github.com/ashim-hq/ashim/commit/ecbfcceec82010fa44244c6839928b9930d59b5a)) +* **api:** add teams CRUD routes and update auth team references ([ec22e53](https://github.com/ashim-hq/ashim/commit/ec22e53a3b15ae030743e76db0d57584000727b6)) +* **api:** add tool filtering and DB-backed cleanup settings ([07e7e8d](https://github.com/ashim-hq/ashim/commit/07e7e8d58d311d89f43cee1c7fa21dd0eb4c9dfb)) +* **api:** add user files CRUD routes at /api/v1/files/* ([6a07007](https://github.com/ashim-hq/ashim/commit/6a070071456611d2bf2acf4a474be8c43680e1b0)) +* **db:** add teams table and migration ([365783b](https://github.com/ashim-hq/ashim/commit/365783b6dc1f5cfa631bb4f6915fcf99d91f574d)) +* **db:** add userFiles table and migration ([a2fdbd5](https://github.com/ashim-hq/ashim/commit/a2fdbd5fef2cf02f90692166d6386c5ac21c2cef)) +* **env:** add FILES_STORAGE_PATH config variable ([3c737a6](https://github.com/ashim-hq/ashim/commit/3c737a6c724f4862d302bf22a75ebcd745f0df4c)) +* **files:** add Files page with nav, list, details, upload, and routing ([3f127a4](https://github.com/ashim-hq/ashim/commit/3f127a457e8a7a07d22fdf8776c3166092db562f)) +* **files:** add mobile layout for Files page ([e864d1e](https://github.com/ashim-hq/ashim/commit/e864d1e430bd516ccbe1732ec7451e1e7d670177)) +* **files:** wire serverFileId for version tracking ([8868d3e](https://github.com/ashim-hq/ashim/commit/8868d3e556beedcff35de268e72241e7f10998a3)) +* **i18n:** add translation keys for settings phase 1 ([c5ff80a](https://github.com/ashim-hq/ashim/commit/c5ff80acfbe18b953cfd96a88498fc70b82b541e)) +* implement Files page with persistent storage and version tracking ([f6183d2](https://github.com/ashim-hq/ashim/commit/f6183d2c62e6ad04dec3fe0250468cbfd6cbc035)) +* **storage:** add file storage helpers module ([7c37213](https://github.com/ashim-hq/ashim/commit/7c372135c8eb9d65198c0720bc2d0c83ac145004)) +* **stores:** add Zustand store for Files page state management ([fb487be](https://github.com/ashim-hq/ashim/commit/fb487be051c6da6ca22a443323cf4788d4ca4e6b)) +* **tool-factory:** auto-save results to persistent file store when fileId provided ([27d8629](https://github.com/ashim-hq/ashim/commit/27d8629c704bc9cabed8c7dd87c34ea8e9433347)) +* **ui:** add teams, tools, feature flags, temp files, logo to settings dialog ([fbce0dd](https://github.com/ashim-hq/ashim/commit/fbce0dddd05c1e539bfbdb084c3b53d59f5dfd76)) # Changelog @@ -913,14 +913,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Home upload flow, auth redirect, and form submit handling bugs - Background removal defaults to U2-Net (fast, ~2s) instead of slow BiRefNet -[Unreleased]: https://github.com/siddharthksah/Stirling-Image/compare/v0.7.0...HEAD -[0.7.0]: https://github.com/siddharthksah/Stirling-Image/compare/v0.6.0...v0.7.0 -[0.6.0]: https://github.com/siddharthksah/Stirling-Image/compare/v0.5.2...v0.6.0 -[0.5.2]: https://github.com/siddharthksah/Stirling-Image/compare/v0.5.1...v0.5.2 -[0.5.1]: https://github.com/siddharthksah/Stirling-Image/compare/v0.5.0...v0.5.1 -[0.5.0]: https://github.com/siddharthksah/Stirling-Image/compare/v0.4.1...v0.5.0 -[0.4.1]: https://github.com/siddharthksah/Stirling-Image/compare/v0.4.0...v0.4.1 -[0.4.0]: https://github.com/siddharthksah/Stirling-Image/compare/v0.3.1...v0.4.0 -[0.3.1]: https://github.com/siddharthksah/Stirling-Image/compare/v0.3.0...v0.3.1 -[0.3.0]: https://github.com/siddharthksah/Stirling-Image/compare/v0.2.1...v0.3.0 -[0.2.1]: https://github.com/siddharthksah/Stirling-Image/releases/tag/v0.2.1 +[Unreleased]: https://github.com/ashim-hq/ashim/compare/v0.7.0...HEAD +[0.7.0]: https://github.com/ashim-hq/ashim/compare/v0.6.0...v0.7.0 +[0.6.0]: https://github.com/ashim-hq/ashim/compare/v0.5.2...v0.6.0 +[0.5.2]: https://github.com/ashim-hq/ashim/compare/v0.5.1...v0.5.2 +[0.5.1]: https://github.com/ashim-hq/ashim/compare/v0.5.0...v0.5.1 +[0.5.0]: https://github.com/ashim-hq/ashim/compare/v0.4.1...v0.5.0 +[0.4.1]: https://github.com/ashim-hq/ashim/compare/v0.4.0...v0.4.1 +[0.4.0]: https://github.com/ashim-hq/ashim/compare/v0.3.1...v0.4.0 +[0.3.1]: https://github.com/ashim-hq/ashim/compare/v0.3.0...v0.3.1 +[0.3.0]: https://github.com/ashim-hq/ashim/compare/v0.2.1...v0.3.0 +[0.2.1]: https://github.com/ashim-hq/ashim/releases/tag/v0.2.1 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 43ba555d..26fb2b07 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,10 +1,10 @@ -# Contributing to Stirling Image +# Contributing to ashim -Thanks for your interest in the project. Community feedback helps shape Stirling Image, and there are several ways to get involved. +Thanks for your interest in the project. Community feedback helps shape ashim, and there are several ways to get involved. ## How to contribute -The best way to contribute is through [GitHub Issues](https://github.com/stirling-image/stirling-image/issues): +The best way to contribute is through [GitHub Issues](https://github.com/ashim-hq/ashim/issues): - **Bug reports** - Found something broken? Open a bug report with steps to reproduce, your Docker setup, and what you expected to happen. - **Feature requests** - Have an idea for a new tool or improvement? Describe the problem you want solved and why it matters to you. @@ -18,8 +18,8 @@ If you've found a bug, please open an issue describing it rather than submitting ## Forking -You're welcome to fork the project for your own use under the terms of the [AGPLv3 license](LICENSE). The [Developer Guide](https://stirling-image.github.io/stirling-image/guide/developer) covers setup, architecture, and how to add new tools. +You're welcome to fork the project for your own use under the terms of the [AGPLv3 license](LICENSE). The [Developer Guide](https://ashim-hq.github.io/ashim/guide/developer) covers setup, architecture, and how to add new tools. ## Security -If you discover a security vulnerability, please report it privately through [GitHub Security Advisories](https://github.com/stirling-image/stirling-image/security/advisories/new) rather than opening a public issue. +If you discover a security vulnerability, please report it privately through [GitHub Security Advisories](https://github.com/ashim-hq/ashim/security/advisories/new) rather than opening a public issue. diff --git a/LICENSE b/LICENSE index 60de7780..5846d9ff 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Stirling Image +ashim Copyright (C) 2025-present Siddharth Kumar Sah This software is dual-licensed: diff --git a/README.md b/README.md index 7b009eba..79c4fdc1 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,26 @@

- We're renaming! The Stirling PDF team asked us to pick a new name, and we want you to choose it.
- Vote on the new name →
- Voting closes April 10, 2026 + We've renamed! Formerly Stirling Image, now ashim.
+ github.com/ashim-hq/ashim

- Stirling Image logo + ashim logo

-

Stirling Image

+

ashim

-

Stirling-PDF but for images. 30+ tools and local AI in a single Docker container.

+

ashim but for images. 30+ tools and local AI in a single Docker container.

- Docker - CI - License - Stars + Docker + CI + License + Stars

-![Stirling Image - Dashboard](images/dashboard.png) +![ashim - Dashboard](images/dashboard.png) ## Key Features @@ -36,7 +35,7 @@ ## Quick Start ```bash -docker run -d -p 1349:1349 -v stirling-data:/data stirlingimage/stirling-image:latest +docker run -d -p 1349:1349 -v ashim-data:/data ashimhq/ashim:latest ``` Open http://localhost:1349 in your browser. @@ -48,10 +47,10 @@ Open http://localhost:1349 in your browser. Add `--gpus all` for GPU-accelerated background removal, upscaling, and OCR: ```bash -docker run -d -p 1349:1349 --gpus all -v stirling-data:/data stirlingimage/stirling-image:latest +docker run -d -p 1349:1349 --gpus all -v ashim-data:/data ashimhq/ashim:latest ``` -> Requires an NVIDIA GPU and [Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html). Falls back to CPU if no GPU is found. See [Docker Tags](https://stirling-image.github.io/stirling-image/guide/docker-tags) for benchmarks and Docker Compose examples. +> Requires an NVIDIA GPU and [Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html). Falls back to CPU if no GPU is found. See [Docker Tags](https://ashim-hq.github.io/ashim/guide/docker-tags) for benchmarks and Docker Compose examples. @@ -64,20 +63,20 @@ docker run -d -p 1349:1349 --gpus all -v stirling-data:/data stirlingimage/stirl You will be asked to change your password on first login. This is enforced for all new accounts and cannot be skipped in production. -For Docker Compose, persistent storage, and other setup options, see the [Getting Started Guide](https://stirling-image.github.io/stirling-image/guide/getting-started). For GPU acceleration and tag details, see [Docker Tags](https://stirling-image.github.io/stirling-image/guide/docker-tags). +For Docker Compose, persistent storage, and other setup options, see the [Getting Started Guide](https://ashim-hq.github.io/ashim/guide/getting-started). For GPU acceleration and tag details, see [Docker Tags](https://ashim-hq.github.io/ashim/guide/docker-tags). ## Documentation -- [Getting Started](https://stirling-image.github.io/stirling-image/guide/getting-started) -- [Configuration](https://stirling-image.github.io/stirling-image/guide/configuration) -- [REST API](https://stirling-image.github.io/stirling-image/api/rest) -- [Architecture](https://stirling-image.github.io/stirling-image/guide/architecture) -- [Developer Guide](https://stirling-image.github.io/stirling-image/guide/developer) -- [Translation Guide](https://stirling-image.github.io/stirling-image/guide/translations) +- [Getting Started](https://ashim-hq.github.io/ashim/guide/getting-started) +- [Configuration](https://ashim-hq.github.io/ashim/guide/configuration) +- [REST API](https://ashim-hq.github.io/ashim/api/rest) +- [Architecture](https://ashim-hq.github.io/ashim/guide/architecture) +- [Developer Guide](https://ashim-hq.github.io/ashim/guide/developer) +- [Translation Guide](https://ashim-hq.github.io/ashim/guide/translations) ## Feedback -Found a bug or have a feature idea? Open a [GitHub Issue](https://github.com/stirling-image/stirling-image/issues). We don't accept pull requests, but your feedback directly shapes the project. See [CONTRIBUTING.md](CONTRIBUTING.md) for details. +Found a bug or have a feature idea? Open a [GitHub Issue](https://github.com/ashim-hq/ashim/issues). We don't accept pull requests, but your feedback directly shapes the project. See [CONTRIBUTING.md](CONTRIBUTING.md) for details. @@ -86,4 +85,4 @@ Found a bug or have a feature idea? Open a [GitHub Issue](https://github.com/sti This project is dual-licensed under the [AGPLv3](LICENSE) and a commercial license. - **AGPLv3 (free):** You may use, modify, and distribute this software under the AGPLv3. If you run a modified version as a network service, you must make your source code available under the AGPLv3. This applies to personal use, open-source projects, and any use that complies with AGPLv3 terms. -- **Commercial license (paid):** If you want to use Stirling Image in proprietary software or SaaS without the AGPLv3 source-disclosure requirement, a commercial license is available. Contact me for pricing and terms. +- **Commercial license (paid):** If you want to use ashim in proprietary software or SaaS without the AGPLv3 source-disclosure requirement, a commercial license is available. Contact me for pricing and terms. diff --git a/apps/api/drizzle.config.ts b/apps/api/drizzle.config.ts index 4ea8e845..1851a36a 100644 --- a/apps/api/drizzle.config.ts +++ b/apps/api/drizzle.config.ts @@ -5,6 +5,6 @@ export default defineConfig({ out: "./drizzle", dialect: "sqlite", dbCredentials: { - url: process.env.DB_PATH || "./data/stirling.db", + url: process.env.DB_PATH || "./data/ashim.db", }, }); diff --git a/apps/api/package.json b/apps/api/package.json index 401785ff..21aa562d 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -1,5 +1,5 @@ { - "name": "@stirling-image/api", + "name": "@ashim/api", "version": "1.14.0", "private": true, "type": "module", @@ -18,9 +18,9 @@ "@fastify/static": "^8.1.0", "@neplex/vectorizer": "^0.0.5", "@scalar/fastify-api-reference": "^1.49.5", - "@stirling-image/ai": "workspace:*", - "@stirling-image/image-engine": "workspace:*", - "@stirling-image/shared": "workspace:*", + "@ashim/ai": "workspace:*", + "@ashim/image-engine": "workspace:*", + "@ashim/shared": "workspace:*", "archiver": "^7.0.1", "better-sqlite3": "^11.7.0", "dotenv": "^16.4.0", diff --git a/apps/api/src/index.ts b/apps/api/src/index.ts index 0e4c3532..a024943a 100644 --- a/apps/api/src/index.ts +++ b/apps/api/src/index.ts @@ -1,7 +1,7 @@ import cors from "@fastify/cors"; import rateLimit from "@fastify/rate-limit"; -import { isGpuAvailable } from "@stirling-image/ai"; -import { APP_VERSION } from "@stirling-image/shared"; +import { isGpuAvailable } from "@ashim/ai"; +import { APP_VERSION } from "@ashim/shared"; import Fastify from "fastify"; import { env } from "./config.js"; import { db, schema } from "./db/index.js"; @@ -165,7 +165,7 @@ const cleanupCron = startCleanupCron(); // Start try { await app.listen({ port: env.PORT, host: "0.0.0.0" }); - console.log(`Stirling Image API running on port ${env.PORT}`); + console.log(`ashim API running on port ${env.PORT}`); } catch (err) { app.log.error(err); process.exit(1); @@ -202,7 +202,7 @@ async function shutdown(signal: string) { } try { - const { shutdownDispatcher } = await import("@stirling-image/ai"); + const { shutdownDispatcher } = await import("@ashim/ai"); shutdownDispatcher(); console.log("Python dispatcher shut down"); } catch { diff --git a/apps/api/src/lib/env.ts b/apps/api/src/lib/env.ts index 81ff89fd..3d7fafc1 100644 --- a/apps/api/src/lib/env.ts +++ b/apps/api/src/lib/env.ts @@ -20,12 +20,12 @@ const envSchema = z.object({ CONCURRENT_JOBS: z.coerce.number().default(3), MAX_MEGAPIXELS: z.coerce.number().default(100), RATE_LIMIT_PER_MIN: z.coerce.number().default(100), - DB_PATH: z.string().default("./data/stirling.db"), + DB_PATH: z.string().default("./data/ashim.db"), FILES_STORAGE_PATH: z.string().default("./data/files"), WORKSPACE_PATH: z.string().default("./tmp/workspace"), DEFAULT_THEME: z.enum(["light", "dark"]).default("light"), DEFAULT_LOCALE: z.string().default("en"), - APP_NAME: z.string().default("Stirling Image"), + APP_NAME: z.string().default("ashim"), CORS_ORIGIN: z.string().default(""), MAX_USERS: z.coerce.number().default(5), LOG_LEVEL: z.enum(["fatal", "error", "warn", "info", "debug", "trace"]).default("info"), diff --git a/apps/api/src/openapi.yaml b/apps/api/src/openapi.yaml index 05924b80..0c25e844 100644 --- a/apps/api/src/openapi.yaml +++ b/apps/api/src/openapi.yaml @@ -1,9 +1,9 @@ openapi: 3.1.0 info: - title: Stirling Image API + title: ashim API version: 0.9.0 description: | - REST API for Stirling Image, a self-hosted image processing platform with 30+ tools. + REST API for ashim, a self-hosted image processing platform with 30+ tools. ## Authentication @@ -16,7 +16,7 @@ info: Endpoints marked with a lock icon require authentication. Admin-only endpoints are noted in their description. license: name: AGPL-3.0 - url: https://github.com/stirling-image/stirling-image/blob/main/LICENSE + url: https://github.com/ashim-hq/ashim/blob/main/LICENSE servers: - url: / diff --git a/apps/api/src/permissions.ts b/apps/api/src/permissions.ts index ffe682af..3cc626dc 100644 --- a/apps/api/src/permissions.ts +++ b/apps/api/src/permissions.ts @@ -1,4 +1,4 @@ -import type { Permission, Role } from "@stirling-image/shared"; +import type { Permission, Role } from "@ashim/shared"; import type { FastifyReply, FastifyRequest } from "fastify"; import { getAuthUser } from "./plugins/auth.js"; diff --git a/apps/api/src/routes/tools/blur-faces.ts b/apps/api/src/routes/tools/blur-faces.ts index 017d5aab..b4a71e1a 100644 --- a/apps/api/src/routes/tools/blur-faces.ts +++ b/apps/api/src/routes/tools/blur-faces.ts @@ -1,7 +1,7 @@ import { randomUUID } from "node:crypto"; import { writeFile } from "node:fs/promises"; import { basename, join } from "node:path"; -import { blurFaces } from "@stirling-image/ai"; +import { blurFaces } from "@ashim/ai"; import type { FastifyInstance, FastifyReply, FastifyRequest } from "fastify"; import { z } from "zod"; import { autoOrient } from "../../lib/auto-orient.js"; diff --git a/apps/api/src/routes/tools/color-adjustments.ts b/apps/api/src/routes/tools/color-adjustments.ts index edcc8724..74af43b1 100644 --- a/apps/api/src/routes/tools/color-adjustments.ts +++ b/apps/api/src/routes/tools/color-adjustments.ts @@ -7,7 +7,7 @@ import { grayscale, invert, sepia, -} from "@stirling-image/image-engine"; +} from "@ashim/image-engine"; import type { FastifyInstance } from "fastify"; import sharp from "sharp"; import { z } from "zod"; diff --git a/apps/api/src/routes/tools/colorize.ts b/apps/api/src/routes/tools/colorize.ts index 72bb6136..b54c5dbe 100644 --- a/apps/api/src/routes/tools/colorize.ts +++ b/apps/api/src/routes/tools/colorize.ts @@ -1,7 +1,7 @@ import { randomUUID } from "node:crypto"; import { writeFile } from "node:fs/promises"; import { basename, join } from "node:path"; -import { colorize } from "@stirling-image/ai"; +import { colorize } from "@ashim/ai"; import type { FastifyInstance, FastifyReply, FastifyRequest } from "fastify"; import sharp from "sharp"; import { z } from "zod"; diff --git a/apps/api/src/routes/tools/compress.ts b/apps/api/src/routes/tools/compress.ts index d9c700b7..e31eb961 100644 --- a/apps/api/src/routes/tools/compress.ts +++ b/apps/api/src/routes/tools/compress.ts @@ -1,4 +1,4 @@ -import { compress } from "@stirling-image/image-engine"; +import { compress } from "@ashim/image-engine"; import type { FastifyInstance } from "fastify"; import sharp from "sharp"; import { z } from "zod"; diff --git a/apps/api/src/routes/tools/content-aware-resize.ts b/apps/api/src/routes/tools/content-aware-resize.ts index bd7fd2b7..213d7d4c 100644 --- a/apps/api/src/routes/tools/content-aware-resize.ts +++ b/apps/api/src/routes/tools/content-aware-resize.ts @@ -1,7 +1,7 @@ import { randomUUID } from "node:crypto"; import { writeFile } from "node:fs/promises"; import { basename, join } from "node:path"; -import { seamCarve } from "@stirling-image/ai"; +import { seamCarve } from "@ashim/ai"; import type { FastifyInstance, FastifyReply, FastifyRequest } from "fastify"; import { z } from "zod"; import { autoOrient } from "../../lib/auto-orient.js"; diff --git a/apps/api/src/routes/tools/convert.ts b/apps/api/src/routes/tools/convert.ts index 38af3839..fa988607 100644 --- a/apps/api/src/routes/tools/convert.ts +++ b/apps/api/src/routes/tools/convert.ts @@ -1,5 +1,5 @@ import { extname } from "node:path"; -import { convert } from "@stirling-image/image-engine"; +import { convert } from "@ashim/image-engine"; import type { FastifyInstance } from "fastify"; import sharp from "sharp"; import { z } from "zod"; diff --git a/apps/api/src/routes/tools/crop.ts b/apps/api/src/routes/tools/crop.ts index 08214b22..027a58fd 100644 --- a/apps/api/src/routes/tools/crop.ts +++ b/apps/api/src/routes/tools/crop.ts @@ -1,4 +1,4 @@ -import { crop } from "@stirling-image/image-engine"; +import { crop } from "@ashim/image-engine"; import type { FastifyInstance } from "fastify"; import sharp from "sharp"; import { z } from "zod"; diff --git a/apps/api/src/routes/tools/enhance-faces.ts b/apps/api/src/routes/tools/enhance-faces.ts index 50462761..e04db810 100644 --- a/apps/api/src/routes/tools/enhance-faces.ts +++ b/apps/api/src/routes/tools/enhance-faces.ts @@ -1,7 +1,7 @@ import { randomUUID } from "node:crypto"; import { writeFile } from "node:fs/promises"; import { basename, join } from "node:path"; -import { enhanceFaces } from "@stirling-image/ai"; +import { enhanceFaces } from "@ashim/ai"; import type { FastifyInstance, FastifyReply, FastifyRequest } from "fastify"; import sharp from "sharp"; import { z } from "zod"; diff --git a/apps/api/src/routes/tools/erase-object.ts b/apps/api/src/routes/tools/erase-object.ts index 2b3cd29c..fac5ed3d 100644 --- a/apps/api/src/routes/tools/erase-object.ts +++ b/apps/api/src/routes/tools/erase-object.ts @@ -1,7 +1,7 @@ import { randomUUID } from "node:crypto"; import { writeFile } from "node:fs/promises"; import { basename, join } from "node:path"; -import { inpaint } from "@stirling-image/ai"; +import { inpaint } from "@ashim/ai"; import type { FastifyInstance, FastifyReply, FastifyRequest } from "fastify"; import sharp from "sharp"; import { autoOrient } from "../../lib/auto-orient.js"; diff --git a/apps/api/src/routes/tools/image-enhancement.ts b/apps/api/src/routes/tools/image-enhancement.ts index 2128bffa..1d54dd77 100644 --- a/apps/api/src/routes/tools/image-enhancement.ts +++ b/apps/api/src/routes/tools/image-enhancement.ts @@ -1,4 +1,4 @@ -import { analyzeImage, applyCorrections } from "@stirling-image/image-engine"; +import { analyzeImage, applyCorrections } from "@ashim/image-engine"; import type { FastifyInstance, FastifyReply, FastifyRequest } from "fastify"; import sharp from "sharp"; import { z } from "zod"; diff --git a/apps/api/src/routes/tools/index.ts b/apps/api/src/routes/tools/index.ts index 974eb617..a4737e0f 100644 --- a/apps/api/src/routes/tools/index.ts +++ b/apps/api/src/routes/tools/index.ts @@ -1,4 +1,4 @@ -import { TOOLS } from "@stirling-image/shared"; +import { TOOLS } from "@ashim/shared"; import { eq } from "drizzle-orm"; import type { FastifyInstance } from "fastify"; import { db, schema } from "../../db/index.js"; diff --git a/apps/api/src/routes/tools/noise-removal.ts b/apps/api/src/routes/tools/noise-removal.ts index 4cf3199a..089aaa17 100644 --- a/apps/api/src/routes/tools/noise-removal.ts +++ b/apps/api/src/routes/tools/noise-removal.ts @@ -1,6 +1,6 @@ import { randomUUID } from "node:crypto"; import { join } from "node:path"; -import { noiseRemoval } from "@stirling-image/ai"; +import { noiseRemoval } from "@ashim/ai"; import type { FastifyInstance, FastifyReply, FastifyRequest } from "fastify"; import { z } from "zod"; import { autoOrient } from "../../lib/auto-orient.js"; diff --git a/apps/api/src/routes/tools/ocr.ts b/apps/api/src/routes/tools/ocr.ts index 57999870..56a7a94a 100644 --- a/apps/api/src/routes/tools/ocr.ts +++ b/apps/api/src/routes/tools/ocr.ts @@ -1,6 +1,6 @@ import { randomUUID } from "node:crypto"; import { basename } from "node:path"; -import { extractText } from "@stirling-image/ai"; +import { extractText } from "@ashim/ai"; import type { FastifyInstance, FastifyReply, FastifyRequest } from "fastify"; import { z } from "zod"; import { validateImageBuffer } from "../../lib/file-validation.js"; diff --git a/apps/api/src/routes/tools/optimize-for-web.ts b/apps/api/src/routes/tools/optimize-for-web.ts index 5c5ebcfb..6112d7ed 100644 --- a/apps/api/src/routes/tools/optimize-for-web.ts +++ b/apps/api/src/routes/tools/optimize-for-web.ts @@ -1,5 +1,5 @@ import { extname } from "node:path"; -import { optimizeForWeb } from "@stirling-image/image-engine"; +import { optimizeForWeb } from "@ashim/image-engine"; import type { FastifyInstance, FastifyReply, FastifyRequest } from "fastify"; import sharp from "sharp"; import { z } from "zod"; diff --git a/apps/api/src/routes/tools/passport-photo.ts b/apps/api/src/routes/tools/passport-photo.ts index 7c33fbf6..3c6ef4e4 100644 --- a/apps/api/src/routes/tools/passport-photo.ts +++ b/apps/api/src/routes/tools/passport-photo.ts @@ -1,8 +1,8 @@ import { randomUUID } from "node:crypto"; import { readFile, writeFile } from "node:fs/promises"; import { basename, join } from "node:path"; -import { detectFaceLandmarks, removeBackground } from "@stirling-image/ai"; -import { PASSPORT_SPECS, PRINT_LAYOUTS } from "@stirling-image/shared"; +import { detectFaceLandmarks, removeBackground } from "@ashim/ai"; +import { PASSPORT_SPECS, PRINT_LAYOUTS } from "@ashim/shared"; import type { FastifyInstance, FastifyReply, FastifyRequest } from "fastify"; import sharp from "sharp"; import { z } from "zod"; diff --git a/apps/api/src/routes/tools/red-eye-removal.ts b/apps/api/src/routes/tools/red-eye-removal.ts index a68ce15e..df71676c 100644 --- a/apps/api/src/routes/tools/red-eye-removal.ts +++ b/apps/api/src/routes/tools/red-eye-removal.ts @@ -1,7 +1,7 @@ import { randomUUID } from "node:crypto"; import { writeFile } from "node:fs/promises"; import { basename, join } from "node:path"; -import { removeRedEye } from "@stirling-image/ai"; +import { removeRedEye } from "@ashim/ai"; import type { FastifyInstance, FastifyReply, FastifyRequest } from "fastify"; import { z } from "zod"; import { autoOrient } from "../../lib/auto-orient.js"; diff --git a/apps/api/src/routes/tools/remove-background.ts b/apps/api/src/routes/tools/remove-background.ts index 709311d9..60f4f656 100644 --- a/apps/api/src/routes/tools/remove-background.ts +++ b/apps/api/src/routes/tools/remove-background.ts @@ -1,7 +1,7 @@ import { randomUUID } from "node:crypto"; import { readFile, writeFile } from "node:fs/promises"; import { basename, join } from "node:path"; -import { removeBackground } from "@stirling-image/ai"; +import { removeBackground } from "@ashim/ai"; import type { FastifyInstance, FastifyReply, FastifyRequest } from "fastify"; import { z } from "zod"; import { autoOrient } from "../../lib/auto-orient.js"; diff --git a/apps/api/src/routes/tools/resize.ts b/apps/api/src/routes/tools/resize.ts index 4f2377d1..49f1baee 100644 --- a/apps/api/src/routes/tools/resize.ts +++ b/apps/api/src/routes/tools/resize.ts @@ -1,4 +1,4 @@ -import { resize } from "@stirling-image/image-engine"; +import { resize } from "@ashim/image-engine"; import type { FastifyInstance } from "fastify"; import sharp from "sharp"; import { z } from "zod"; diff --git a/apps/api/src/routes/tools/restore-photo.ts b/apps/api/src/routes/tools/restore-photo.ts index f5c8fce4..2a40df24 100644 --- a/apps/api/src/routes/tools/restore-photo.ts +++ b/apps/api/src/routes/tools/restore-photo.ts @@ -1,7 +1,7 @@ import { randomUUID } from "node:crypto"; import { writeFile } from "node:fs/promises"; import { basename, join } from "node:path"; -import { restorePhoto } from "@stirling-image/ai"; +import { restorePhoto } from "@ashim/ai"; import type { FastifyInstance, FastifyReply, FastifyRequest } from "fastify"; import sharp from "sharp"; import { z } from "zod"; diff --git a/apps/api/src/routes/tools/rotate.ts b/apps/api/src/routes/tools/rotate.ts index 6167082a..ef193e90 100644 --- a/apps/api/src/routes/tools/rotate.ts +++ b/apps/api/src/routes/tools/rotate.ts @@ -1,4 +1,4 @@ -import { flip, rotate } from "@stirling-image/image-engine"; +import { flip, rotate } from "@ashim/image-engine"; import type { FastifyInstance } from "fastify"; import sharp from "sharp"; import { z } from "zod"; diff --git a/apps/api/src/routes/tools/sharpening.ts b/apps/api/src/routes/tools/sharpening.ts index 387e9d29..ddbbb113 100644 --- a/apps/api/src/routes/tools/sharpening.ts +++ b/apps/api/src/routes/tools/sharpening.ts @@ -1,4 +1,4 @@ -import { sharpenAdvanced } from "@stirling-image/image-engine"; +import { sharpenAdvanced } from "@ashim/image-engine"; import type { FastifyInstance } from "fastify"; import sharp from "sharp"; import { z } from "zod"; diff --git a/apps/api/src/routes/tools/smart-crop.ts b/apps/api/src/routes/tools/smart-crop.ts index 8e402034..a6dfcf98 100644 --- a/apps/api/src/routes/tools/smart-crop.ts +++ b/apps/api/src/routes/tools/smart-crop.ts @@ -1,5 +1,5 @@ -import { detectFaces } from "@stirling-image/ai"; -import { SMART_CROP_FACE_PRESETS } from "@stirling-image/shared"; +import { detectFaces } from "@ashim/ai"; +import { SMART_CROP_FACE_PRESETS } from "@ashim/shared"; import type { FastifyInstance } from "fastify"; import sharp from "sharp"; import { z } from "zod"; diff --git a/apps/api/src/routes/tools/strip-metadata.ts b/apps/api/src/routes/tools/strip-metadata.ts index 1c09b3fe..51a6db9d 100644 --- a/apps/api/src/routes/tools/strip-metadata.ts +++ b/apps/api/src/routes/tools/strip-metadata.ts @@ -1,5 +1,5 @@ import { basename } from "node:path"; -import { parseExif, parseGps, parseXmp, stripMetadata } from "@stirling-image/image-engine"; +import { parseExif, parseGps, parseXmp, stripMetadata } from "@ashim/image-engine"; import type { FastifyInstance, FastifyReply, FastifyRequest } from "fastify"; import sharp from "sharp"; import { z } from "zod"; diff --git a/apps/api/src/routes/tools/upscale.ts b/apps/api/src/routes/tools/upscale.ts index a49dbec8..30128818 100644 --- a/apps/api/src/routes/tools/upscale.ts +++ b/apps/api/src/routes/tools/upscale.ts @@ -1,7 +1,7 @@ import { randomUUID } from "node:crypto"; import { writeFile } from "node:fs/promises"; import { basename, join } from "node:path"; -import { upscale } from "@stirling-image/ai"; +import { upscale } from "@ashim/ai"; import type { FastifyInstance, FastifyReply, FastifyRequest } from "fastify"; import sharp from "sharp"; import { z } from "zod"; diff --git a/apps/docs/.vitepress/config.mts b/apps/docs/.vitepress/config.mts index e3fa0fb0..74ec7730 100644 --- a/apps/docs/.vitepress/config.mts +++ b/apps/docs/.vitepress/config.mts @@ -2,23 +2,23 @@ import { defineConfig } from "vitepress"; import llmstxt from "vitepress-plugin-llms"; export default defineConfig({ - title: "Stirling Image", - description: "Documentation for Stirling Image, a self-hosted image processing suite.", - base: "/stirling-image/", + title: "ashim", + description: "Documentation for ashim, a self-hosted image processing suite.", + base: "/ashim/", srcDir: ".", outDir: "./.vitepress/dist", ignoreDeadLinks: [/localhost/], head: [ ["meta", { name: "theme-color", content: "#3b82f6" }], - ["link", { rel: "icon", type: "image/svg+xml", href: "/stirling-image/favicon.svg" }], - ["link", { rel: "llms-txt", href: "/stirling-image/llms.txt" }], + ["link", { rel: "icon", type: "image/svg+xml", href: "/ashim/favicon.svg" }], + ["link", { rel: "llms-txt", href: "/ashim/llms.txt" }], ], vite: { plugins: [ llmstxt({ - domain: "https://stirling-image.github.io", + domain: "https://ashim-hq.github.io", customLLMsTxtTemplate: `# {title} {description} @@ -41,7 +41,7 @@ export default defineConfig({ ## Source -- [GitHub](https://github.com/stirling-image/stirling-image) +- [GitHub](https://github.com/ashim-hq/ashim) - License: AGPLv3 (commercial license also available) `, customTemplateVariables: { @@ -93,13 +93,13 @@ export default defineConfig({ footer: { message: - 'Released under the AGPLv3 License.', + 'Released under the AGPLv3 License.', copyright: - 'AI-friendly docs available at /llms.txt · /llms-full.txt', + 'AI-friendly docs available at /llms.txt · /llms-full.txt', }, editLink: { - pattern: "https://github.com/stirling-image/stirling-image/edit/main/apps/docs/:path", + pattern: "https://github.com/ashim-hq/ashim/edit/main/apps/docs/:path", text: "Edit this page on GitHub", }, }, diff --git a/apps/docs/.vitepress/theme/GitHubStars.vue b/apps/docs/.vitepress/theme/GitHubStars.vue index 70e19018..549c64a2 100644 --- a/apps/docs/.vitepress/theme/GitHubStars.vue +++ b/apps/docs/.vitepress/theme/GitHubStars.vue @@ -2,11 +2,11 @@ import { onMounted, ref } from "vue"; const stars = ref(null); -const repo = "https://github.com/stirling-image/stirling-image"; +const repo = "https://github.com/ashim-hq/ashim"; onMounted(async () => { try { - const res = await fetch("https://api.github.com/repos/stirling-image/stirling-image"); + const res = await fetch("https://api.github.com/repos/ashim-hq/ashim"); if (!res.ok) return; const data = await res.json(); const count = data.stargazers_count; diff --git a/apps/docs/api/ai.md b/apps/docs/api/ai.md index 3e5c9a9b..9a81ee35 100644 --- a/apps/docs/api/ai.md +++ b/apps/docs/api/ai.md @@ -1,6 +1,6 @@ # AI engine -The `@stirling-image/ai` package wraps Python ML models in TypeScript functions. A persistent Python dispatcher process pre-imports heavy ML libraries at startup and keeps them warm in memory, eliminating the cold-start latency that would otherwise occur on every request. If the dispatcher is unavailable, the bridge falls back to spawning a fresh subprocess per call. +The `@ashim/ai` package wraps Python ML models in TypeScript functions. A persistent Python dispatcher process pre-imports heavy ML libraries at startup and keeps them warm in memory, eliminating the cold-start latency that would otherwise occur on every request. If the dispatcher is unavailable, the bridge falls back to spawning a fresh subprocess per call. All model weights are bundled in the Docker image during the build. No downloads happen at runtime. diff --git a/apps/docs/api/image-engine.md b/apps/docs/api/image-engine.md index 021c7145..c222fe78 100644 --- a/apps/docs/api/image-engine.md +++ b/apps/docs/api/image-engine.md @@ -1,6 +1,6 @@ # Image engine -The `@stirling-image/image-engine` package handles all non-AI image operations. It wraps [Sharp](https://sharp.pixelplumbing.com/) and runs entirely in-process with no external dependencies. +The `@ashim/image-engine` package handles all non-AI image operations. It wraps [Sharp](https://sharp.pixelplumbing.com/) and runs entirely in-process with no external dependencies. ## Operations diff --git a/apps/docs/api/rest.md b/apps/docs/api/rest.md index 43f1c3df..f0a543fc 100644 --- a/apps/docs/api/rest.md +++ b/apps/docs/api/rest.md @@ -3,7 +3,7 @@ The API server runs on port 1349 by default and serves all endpoints under `/api`. ::: tip Full API Reference -Your Stirling Image instance includes a complete interactive API reference at `/api/docs` (e.g. `http://your-host:1349/api/docs`) with all 80+ endpoints, request/response schemas, and examples. +Your ashim instance includes a complete interactive API reference at `/api/docs` (e.g. `http://your-host:1349/api/docs`) with all 80+ endpoints, request/response schemas, and examples. ::: ::: info LLM-friendly docs diff --git a/apps/docs/guide/architecture.md b/apps/docs/guide/architecture.md index 7fec92f0..c757c676 100644 --- a/apps/docs/guide/architecture.md +++ b/apps/docs/guide/architecture.md @@ -1,11 +1,11 @@ # Architecture -Stirling Image is a monorepo managed with pnpm workspaces and Turborepo. Everything ships as a single Docker container. +ashim is a monorepo managed with pnpm workspaces and Turborepo. Everything ships as a single Docker container. ## Project structure ``` -Stirling-Image/ +ashim/ ├── apps/ │ ├── api/ # Fastify backend │ ├── web/ # React + Vite frontend @@ -19,13 +19,13 @@ Stirling-Image/ ## Packages -### `@stirling-image/image-engine` +### `@ashim/image-engine` The core image processing library built on [Sharp](https://sharp.pixelplumbing.com/). It handles all non-AI operations: resize, crop, rotate, flip, convert, compress, strip metadata, and color adjustments (brightness, contrast, saturation, grayscale, sepia, invert, color channels). This package has no network dependencies and runs entirely in-process. -### `@stirling-image/ai` +### `@ashim/ai` A bridge layer that calls Python scripts for ML operations. On first use, the bridge starts a persistent Python dispatcher process that pre-imports heavy libraries (rembg, OpenCV, NumPy) and keeps them warm in memory. Subsequent AI calls skip the import overhead entirely. If the dispatcher is unavailable, the bridge falls back to spawning a fresh Python subprocess per request. @@ -38,7 +38,7 @@ Supported operations: Python scripts live in `packages/ai/python/`. The Docker image pre-downloads all model weights during the build so the container works offline. -### `@stirling-image/shared` +### `@ashim/shared` Shared TypeScript types, constants (like `APP_VERSION` and tool definitions), and i18n translation strings used by both the frontend and backend. diff --git a/apps/docs/guide/configuration.md b/apps/docs/guide/configuration.md index 02cb3e30..2c9a82d8 100644 --- a/apps/docs/guide/configuration.md +++ b/apps/docs/guide/configuration.md @@ -1,6 +1,6 @@ # Configuration -All configuration is done through environment variables. Every variable has a sensible default, so Stirling Image works out of the box without setting any of them. +All configuration is done through environment variables. Every variable has a sensible default, so ashim works out of the box without setting any of them. ## Environment variables @@ -24,7 +24,7 @@ All configuration is done through environment variables. Every variable has a se | Variable | Default | Description | |---|---|---| | `STORAGE_MODE` | `local` | `local` or `s3`. Only local storage is currently implemented. | -| `DB_PATH` | `./data/stirling.db` | Path to the SQLite database file. | +| `DB_PATH` | `./data/ashim.db` | Path to the SQLite database file. | | `WORKSPACE_PATH` | `./tmp/workspace` | Directory for temporary files during processing. Cleaned up automatically. | | `FILES_STORAGE_PATH` | `./data/files` | Directory for persistent user files (uploaded images, saved results). | @@ -48,7 +48,7 @@ All configuration is done through environment variables. Every variable has a se | Variable | Default | Description | |---|---|---| -| `APP_NAME` | `Stirling Image` | Display name shown in the UI. | +| `APP_NAME` | `ashim` | Display name shown in the UI. | | `DEFAULT_THEME` | `light` | Default theme for new sessions. `light` or `dark`. | | `DEFAULT_LOCALE` | `en` | Default interface language. | @@ -56,13 +56,13 @@ All configuration is done through environment variables. Every variable has a se ```yaml services: - stirling-image: - image: stirlingimage/stirling-image:latest + ashim: + image: ashimhq/ashim:latest ports: - "1349:1349" volumes: - - stirling-data:/data - - stirling-workspace:/tmp/workspace + - ashim-data:/data + - ashim-workspace:/tmp/workspace environment: - AUTH_ENABLED=true - DEFAULT_USERNAME=admin diff --git a/apps/docs/guide/database.md b/apps/docs/guide/database.md index 8b29cd7b..c250b483 100644 --- a/apps/docs/guide/database.md +++ b/apps/docs/guide/database.md @@ -1,8 +1,8 @@ # Database -Stirling Image uses SQLite with [Drizzle ORM](https://orm.drizzle.team/) for data persistence. The schema is defined in `apps/api/src/db/schema.ts`. +ashim uses SQLite with [Drizzle ORM](https://orm.drizzle.team/) for data persistence. The schema is defined in `apps/api/src/db/schema.ts`. -The database file lives at the path set by `DB_PATH` (defaults to `./data/stirling.db`). In Docker, mount the `/data` volume to persist it across container restarts. +The database file lives at the path set by `DB_PATH` (defaults to `./data/ashim.db`). In Docker, mount the `/data` volume to persist it across container restarts. ## Tables @@ -90,7 +90,7 @@ Key-value store for server-wide settings that admins can change from the UI. Drizzle handles schema migrations. The config is in `apps/api/drizzle.config.ts`. During development, run: ```bash -pnpm --filter @stirling-image/api drizzle-kit push +pnpm --filter @ashim/api drizzle-kit push ``` In production, the schema is applied automatically on startup. diff --git a/apps/docs/guide/deployment.md b/apps/docs/guide/deployment.md index 4712c01a..bc507c2d 100644 --- a/apps/docs/guide/deployment.md +++ b/apps/docs/guide/deployment.md @@ -1,6 +1,6 @@ # Deployment -Stirling Image ships as a single Docker container. The image supports **linux/amd64** (with NVIDIA CUDA) and **linux/arm64** (CPU), so it runs natively on Intel/AMD servers, Apple Silicon Macs, and ARM devices like the Raspberry Pi 4/5. +ashim ships as a single Docker container. The image supports **linux/amd64** (with NVIDIA CUDA) and **linux/arm64** (CPU), so it runs natively on Intel/AMD servers, Apple Silicon Macs, and ARM devices like the Raspberry Pi 4/5. See [Docker Image](./docker-tags) for GPU setup, Docker Compose examples, and version pinning. @@ -8,14 +8,14 @@ See [Docker Image](./docker-tags) for GPU setup, Docker Compose examples, and ve ```yaml services: - stirling-image: - image: stirlingimage/stirling-image:latest - container_name: stirling-image + ashim: + image: ashimhq/ashim:latest + container_name: ashim ports: - "1349:1349" volumes: - - stirling-data:/data - - stirling-workspace:/tmp/workspace + - ashim-data:/data + - ashim-workspace:/tmp/workspace environment: - AUTH_ENABLED=true - DEFAULT_USERNAME=admin @@ -23,8 +23,8 @@ services: restart: unless-stopped volumes: - stirling-data: - stirling-workspace: + ashim-data: + ashim-workspace: ``` ```bash @@ -81,12 +81,12 @@ The `/data` volume is the important one. Without it, you lose all user accounts The container includes a health check that hits `GET /api/v1/health`. Docker uses this to report container status: ```bash -docker inspect --format='{{.State.Health.Status}}' stirling-image +docker inspect --format='{{.State.Health.Status}}' ashim ``` ## Reverse proxy -If you're running Stirling Image behind nginx or Caddy, point it at port 1349. Example nginx config: +If you're running ashim behind nginx or Caddy, point it at port 1349. Example nginx config: ```nginx server { @@ -113,7 +113,7 @@ Set `client_max_body_size` to match your `MAX_UPLOAD_SIZE_MB` value. The GitHub repository has three workflows: - **ci.yml** -- Runs automatically on every push and PR. Lints, typechecks, tests, builds, and validates the Docker image (without pushing). -- **release.yml** -- Triggered manually via `workflow_dispatch`. Runs semantic-release to create a version tag and GitHub release, then builds a multi-arch Docker image (amd64 + arm64) and pushes to Docker Hub (`stirlingimage/stirling-image`) and GitHub Container Registry (`ghcr.io/stirling-image/stirling-image`). +- **release.yml** -- Triggered manually via `workflow_dispatch`. Runs semantic-release to create a version tag and GitHub release, then builds a multi-arch Docker image (amd64 + arm64) and pushes to Docker Hub (`ashimhq/ashim`) and GitHub Container Registry (`ghcr.io/ashim-hq/ashim`). - **deploy-docs.yml** -- Builds this documentation site and deploys it to GitHub Pages on push to `main`. To create a release, go to **Actions > Release > Run workflow** in the GitHub UI, or run: diff --git a/apps/docs/guide/developer.md b/apps/docs/guide/developer.md index 101e9d92..f75235e7 100644 --- a/apps/docs/guide/developer.md +++ b/apps/docs/guide/developer.md @@ -1,6 +1,6 @@ # Developer guide -How to set up a local development environment and contribute code to Stirling Image. +How to set up a local development environment and contribute code to ashim. ## Prerequisites @@ -14,8 +14,8 @@ Python 3.10+ is only needed if you are working on the AI/ML sidecar (background ## Setup ```bash -git clone https://github.com/stirling-image/stirling-image.git -cd stirling-image +git clone https://github.com/ashim-hq/ashim.git +cd ashim pnpm install pnpm dev ``` @@ -72,7 +72,7 @@ pnpm test:coverage # tests with coverage report ## Database -SQLite via Drizzle ORM. The database file lives at `./data/stirling.db` by default. +SQLite via Drizzle ORM. The database file lives at `./data/ashim.db` by default. ```bash cd apps/api @@ -195,13 +195,13 @@ Add a `data-testid` attribute to your action button (as shown above) so e2e test Build the full production image locally: ```bash -docker build -f docker/Dockerfile -t stirling-image:latest . +docker build -f docker/Dockerfile -t ashim:latest . ``` Use BuildKit cache mounts for faster rebuilds: ```bash -DOCKER_BUILDKIT=1 docker build -f docker/Dockerfile -t stirling-image:latest . +DOCKER_BUILDKIT=1 docker build -f docker/Dockerfile -t ashim:latest . ``` ## Environment variables diff --git a/apps/docs/guide/docker-tags.md b/apps/docs/guide/docker-tags.md index 832f23ce..69bb2700 100644 --- a/apps/docs/guide/docker-tags.md +++ b/apps/docs/guide/docker-tags.md @@ -1,11 +1,11 @@ # Docker Image -Stirling Image ships as a single Docker image that works on all platforms. +ashim ships as a single Docker image that works on all platforms. ## Quick start ```bash -docker run -d -p 1349:1349 -v stirling-data:/data stirlingimage/stirling-image:latest +docker run -d -p 1349:1349 -v ashim-data:/data ashimhq/ashim:latest ``` The app is available at `http://localhost:1349`. @@ -15,7 +15,7 @@ The app is available at `http://localhost:1349`. The image includes CUDA support on amd64. If you have an NVIDIA GPU with the [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html) installed, add `--gpus all`: ```bash -docker run -d --gpus all -p 1349:1349 -v stirling-data:/data stirlingimage/stirling-image:latest +docker run -d --gpus all -p 1349:1349 -v ashim-data:/data ashimhq/ashim:latest ``` The image auto-detects your GPU at runtime. Without `--gpus all`, it runs on CPU. Same image either way. @@ -56,13 +56,13 @@ GET /api/v1/admin/health ```yaml services: - stirling-image: - image: stirlingimage/stirling-image:latest + ashim: + image: ashimhq/ashim:latest ports: - "1349:1349" volumes: - - stirling-data:/data - - stirling-workspace:/tmp/workspace + - ashim-data:/data + - ashim-workspace:/tmp/workspace restart: unless-stopped logging: driver: json-file @@ -71,21 +71,21 @@ services: max-file: "3" volumes: - stirling-data: - stirling-workspace: + ashim-data: + ashim-workspace: ``` For GPU acceleration via Docker Compose, add the deploy section: ```yaml services: - stirling-image: - image: stirlingimage/stirling-image:latest + ashim: + image: ashimhq/ashim:latest ports: - "1349:1349" volumes: - - stirling-data:/data - - stirling-workspace:/tmp/workspace + - ashim-data:/data + - ashim-workspace:/tmp/workspace deploy: resources: reservations: @@ -96,8 +96,8 @@ services: restart: unless-stopped volumes: - stirling-data: - stirling-workspace: + ashim-data: + ashim-workspace: ``` ## Version pinning diff --git a/apps/docs/guide/getting-started.md b/apps/docs/guide/getting-started.md index 65f90726..09e32cd1 100644 --- a/apps/docs/guide/getting-started.md +++ b/apps/docs/guide/getting-started.md @@ -2,14 +2,14 @@ ## Run with Docker -The fastest way to get Stirling Image running: +The fastest way to get ashim running: ```bash docker run -d \ - --name stirling-image \ + --name ashim \ -p 1349:1349 \ - -v stirling-data:/data \ - stirlingimage/stirling-image:latest + -v ashim-data:/data \ + ashimhq/ashim:latest ``` Open `http://localhost:1349` in your browser. Log in with `admin` / `admin`. @@ -18,7 +18,7 @@ Open `http://localhost:1349` in your browser. Log in with `admin` / `admin`. Have an NVIDIA GPU? Add `--gpus all` to accelerate background removal (2.7x), upscaling (3x), and OCR (1.5x): ```bash -docker run -d --gpus all -p 1349:1349 -v stirling-data:/data stirlingimage/stirling-image:latest +docker run -d --gpus all -p 1349:1349 -v ashim-data:/data ashimhq/ashim:latest ``` Requires [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html). Falls back to CPU if no GPU is found. See [Docker Tags](./docker-tags) for details and benchmarks. @@ -30,14 +30,14 @@ Create a `docker-compose.yml`: ```yaml services: - stirling-image: - image: stirlingimage/stirling-image:latest - container_name: stirling-image + ashim: + image: ashimhq/ashim:latest + container_name: ashim ports: - "1349:1349" volumes: - - stirling-data:/data - - stirling-workspace:/tmp/workspace + - ashim-data:/data + - ashim-workspace:/tmp/workspace environment: - AUTH_ENABLED=true - DEFAULT_USERNAME=admin @@ -45,8 +45,8 @@ services: restart: unless-stopped volumes: - stirling-data: - stirling-workspace: + ashim-data: + ashim-workspace: ``` ```bash @@ -60,8 +60,8 @@ See [Configuration](./configuration) for the full list of environment variables. Requirements: Node.js 22+, pnpm 9+, Python 3.10+ ```bash -git clone https://github.com/stirling-image/stirling-image.git -cd stirling-image +git clone https://github.com/ashim-hq/ashim.git +cd ashim pnpm install ``` @@ -86,4 +86,4 @@ Some things to try first: - Batch process a folder of images through any tool - Save results to the Files page for later -Every tool is also available through the [REST API](../api/rest), so you can script workflows or plug Stirling Image into other systems. +Every tool is also available through the [REST API](../api/rest), so you can script workflows or plug ashim into other systems. diff --git a/apps/docs/guide/translations.md b/apps/docs/guide/translations.md index 1578a7ae..85727294 100644 --- a/apps/docs/guide/translations.md +++ b/apps/docs/guide/translations.md @@ -1,6 +1,6 @@ # Translation guide -Stirling Image ships with English by default. The i18n system is designed so adding a new language is straightforward. This page walks you through the process. +ashim ships with English by default. The i18n system is designed so adding a new language is straightforward. This page walks you through the process. ## How translations work diff --git a/apps/docs/index.md b/apps/docs/index.md index 02c7b131..e8e22ccf 100644 --- a/apps/docs/index.md +++ b/apps/docs/index.md @@ -2,7 +2,7 @@ layout: home hero: - name: "Stirling Image" + name: "ashim" text: "Self-hosted image processing" tagline: Resize, compress, convert, remove backgrounds, and more. All on your own server, no data leaves your machine. actions: diff --git a/apps/docs/package.json b/apps/docs/package.json index 090ec04e..f89abcdc 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -1,5 +1,5 @@ { - "name": "@stirling-image/docs", + "name": "@ashim/docs", "version": "1.14.0", "private": true, "scripts": { diff --git a/apps/web/index.html b/apps/web/index.html index 7c651e93..9852db5d 100644 --- a/apps/web/index.html +++ b/apps/web/index.html @@ -3,12 +3,12 @@ - Stirling Image + ashim - + diff --git a/apps/web/package.json b/apps/web/package.json index bcce48c5..7973b226 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,5 +1,5 @@ { - "name": "@stirling-image/web", + "name": "@ashim/web", "version": "1.14.0", "private": true, "type": "module", @@ -15,7 +15,7 @@ "@dnd-kit/core": "^6.3.1", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", - "@stirling-image/shared": "workspace:*", + "@ashim/shared": "workspace:*", "clsx": "^2.1.0", "fflate": "^0.8.2", "jszip": "^3.10.1", diff --git a/apps/web/public/logo.svg b/apps/web/public/logo.svg index fb990b39..20e0f86b 100644 --- a/apps/web/public/logo.svg +++ b/apps/web/public/logo.svg @@ -10,6 +10,5 @@ - Stirling - Image + ashim diff --git a/apps/web/public/manifest.json b/apps/web/public/manifest.json index ae01dc89..35ffeb30 100644 --- a/apps/web/public/manifest.json +++ b/apps/web/public/manifest.json @@ -1,6 +1,6 @@ { - "name": "Stirling Image", - "short_name": "Stirling Image", + "name": "ashim", + "short_name": "ashim", "icons": [ { "src": "/logo-192.png", "sizes": "192x192", "type": "image/png" }, { "src": "/logo-512.png", "sizes": "512x512", "type": "image/png" } diff --git a/apps/web/src/components/common/dropzone.tsx b/apps/web/src/components/common/dropzone.tsx index 250b16dd..261f91d2 100644 --- a/apps/web/src/components/common/dropzone.tsx +++ b/apps/web/src/components/common/dropzone.tsx @@ -69,7 +69,7 @@ export function Dropzone({ onFiles, accept, multiple = true, currentFiles = [] } >
- Stirling Image + ashim
diff --git a/apps/web/src/components/layout/app-layout.tsx b/apps/web/src/components/layout/app-layout.tsx index c8dc273c..42f7e000 100644 --- a/apps/web/src/components/layout/app-layout.tsx +++ b/apps/web/src/components/layout/app-layout.tsx @@ -61,7 +61,7 @@ export function AppLayout({ children, showToolPanel = true, onFiles }: AppLayout
- Stirling Image + ashim
)} @@ -109,7 +109,7 @@ export function AppLayout({ children, showToolPanel = true, onFiles }: AppLayout
- Stirling Image + ashim
)} diff --git a/apps/web/src/components/layout/tool-panel.tsx b/apps/web/src/components/layout/tool-panel.tsx index e01cd08a..a7641053 100644 --- a/apps/web/src/components/layout/tool-panel.tsx +++ b/apps/web/src/components/layout/tool-panel.tsx @@ -1,4 +1,4 @@ -import { CATEGORIES, TOOLS } from "@stirling-image/shared"; +import { CATEGORIES, TOOLS } from "@ashim/shared"; import { useEffect, useMemo, useState } from "react"; import { useSettingsStore } from "@/stores/settings-store"; import { SearchBar } from "../common/search-bar"; diff --git a/apps/web/src/components/settings/settings-dialog.tsx b/apps/web/src/components/settings/settings-dialog.tsx index ac1f86ac..fac31d2d 100644 --- a/apps/web/src/components/settings/settings-dialog.tsx +++ b/apps/web/src/components/settings/settings-dialog.tsx @@ -1,4 +1,4 @@ -import { APP_VERSION, CATEGORIES, TOOLS } from "@stirling-image/shared"; +import { APP_VERSION, CATEGORIES, TOOLS } from "@ashim/shared"; import { Check, Copy, @@ -182,7 +182,7 @@ function GeneralSection() { // Fallback to localStorage if session endpoint fails setUser({ id: 0, - username: localStorage.getItem("stirling-username") || "", + username: localStorage.getItem("ashim-username") || "", role: "unknown", }); }) @@ -191,7 +191,7 @@ function GeneralSection() { const handleLogout = () => { clearToken(); - localStorage.removeItem("stirling-username"); + localStorage.removeItem("ashim-username"); window.location.href = "/login"; }; @@ -239,7 +239,7 @@ function GeneralSection() { {/* Version */} - + {APP_VERSION} @@ -260,7 +260,7 @@ function SystemSection() { .catch(() => { // Fallback defaults if endpoint not ready setSettings({ - appName: "Stirling Image", + appName: "ashim", fileUploadLimitMb: "100", defaultTheme: "system", defaultLocale: "en", @@ -1184,7 +1184,7 @@ function ApiKeysSection() {

API Keys

- Manage API keys for programmatic access to Stirling Image. + Manage API keys for programmatic access to ashim.

@@ -1708,7 +1708,7 @@ function AboutSection() {
- Stirling Image + ashim

@@ -1725,7 +1725,7 @@ function AboutSection() {

Links

- Stirling Image + ashim