From f67a03bb36ccecd3c87482cff971a01d12b799ff Mon Sep 17 00:00:00 2001 From: ashim-hq Date: Mon, 20 Apr 2026 18:47:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20resolve=20all=20audit=20findings=20?= =?UTF-8?q?=E2=80=94=20e2e=20coverage,=20feature=20system=20hardening,=20v?= =?UTF-8?q?isual=20baselines?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add 8 new E2E specs for AI tools (upscale, enhance-faces, colorize, restore-photo, erase-object, smart-crop, passport-photo, red-eye-removal) closing all HIGH/MEDIUM coverage gaps from the test matrix audit - Fix ensureAiDirs() crash on non-Docker environments by gating on isDockerEnvironment() — prevents ENOENT when /data doesn't exist - Bump torch 2.6.0→2.7.0 and torchvision 0.21.0→0.22.0 in feature manifest for broader Python version compatibility - Add Python 3.14 version guard warning in install_feature.py - Remove duplicate torchvision shims from upscale.py and enhance_faces.py (dispatcher.py already handles this at startup) - Remove orphaned tools.batch i18n key and dead pipeline-builder filter - Regenerate 4 visual regression baselines for current UI state - Add data-testid to passport-photo generate button for E2E testability --- apps/api/src/lib/feature-status.ts | 1 + .../tools/passport-photo-settings.tsx | 1 + .../src/components/tools/pipeline-builder.tsx | 2 +- docker/feature-manifest.json | 4 +- packages/ai/python/enhance_faces.py | 28 ---- packages/ai/python/install_feature.py | 7 +- packages/ai/python/upscale.py | 28 ---- packages/shared/src/i18n/en.ts | 1 - .../fullscreen-grid-desktop.png | Bin 104982 -> 129321 bytes .../fullscreen-grid-mobile.png | Bin 33383 -> 51615 bytes .../fullscreen-grid-tablet.png | Bin 101597 -> 139156 bytes .../visual-regression.spec.ts/home-tablet.png | Bin 90252 -> 84202 bytes tests/e2e/colorize.spec.ts | 90 +++++++++++ tests/e2e/enhance-faces.spec.ts | 93 +++++++++++ tests/e2e/erase-object.spec.ts | 89 ++++++++++ tests/e2e/passport-photo.spec.ts | 121 ++++++++++++++ tests/e2e/red-eye-removal.spec.ts | 115 +++++++++++++ tests/e2e/restore-photo.spec.ts | 118 ++++++++++++++ tests/e2e/smart-crop.spec.ts | 121 ++++++++++++++ tests/e2e/upscale.spec.ts | 153 ++++++++++++++++++ 20 files changed, 911 insertions(+), 61 deletions(-) create mode 100644 tests/e2e/colorize.spec.ts create mode 100644 tests/e2e/enhance-faces.spec.ts create mode 100644 tests/e2e/erase-object.spec.ts create mode 100644 tests/e2e/passport-photo.spec.ts create mode 100644 tests/e2e/red-eye-removal.spec.ts create mode 100644 tests/e2e/restore-photo.spec.ts create mode 100644 tests/e2e/smart-crop.spec.ts create mode 100644 tests/e2e/upscale.spec.ts diff --git a/apps/api/src/lib/feature-status.ts b/apps/api/src/lib/feature-status.ts index c3837263..78929142 100644 --- a/apps/api/src/lib/feature-status.ts +++ b/apps/api/src/lib/feature-status.ts @@ -38,6 +38,7 @@ export function getManifestPath(): string { // ── Directory setup ───────────────────────────────────────────────────── export function ensureAiDirs(): void { + if (!isDockerEnvironment()) return; mkdirSync(join(AI_DIR, "venv"), { recursive: true }); mkdirSync(MODELS_DIR, { recursive: true }); mkdirSync(join(AI_DIR, "pip-cache"), { recursive: true }); diff --git a/apps/web/src/components/tools/passport-photo-settings.tsx b/apps/web/src/components/tools/passport-photo-settings.tsx index 893bc1c0..9159e560 100644 --- a/apps/web/src/components/tools/passport-photo-settings.tsx +++ b/apps/web/src/components/tools/passport-photo-settings.tsx @@ -858,6 +858,7 @@ export function PassportPhotoSettings() { {analyzeResult && !generating && !generateResult && (