Commit Graph
31 Commits
Author SHA1 Message Date
SnapOtter 74d7f34d34 chore: remove local-only files from git tracking
Untrack CLAUDE.md, QA reports, security audit report, and superpowers
docs. These are internal working documents that should never be pushed
to GitHub. Updated .gitignore to ensure they stay local.
2026-05-15 22:56:42 +08:00
SnapOtter 32e7b03ab4 fix: add remotion directory to .gitignore 2026-05-10 21:53:16 +08:00
SnapOtter 23f24c10d1 chore: gitignore Remotion project dir and add test fixture photo 2026-05-08 21:49:22 +08:00
SnapOtter ff8a280b45 chore: add CONTEXT.md to gitignore 2026-05-07 20:47:55 +08:00
SnapOtter 66211ed6a7 fix: resolve 20 Sentry issues and fix navbar test flakiness
Sentry fixes:
- Only send 5xx errors to Sentry (was sending 4xx rate-limit, media type errors)
- Encode non-ASCII chars in X-Output-Filename header (encodeURIComponent)
- Handle FK constraint failures gracefully in file upload, pipeline save, API keys
- Harden getDirSize against ENOENT race on readdirSync

Test fixes:
- Wrap navbar test renders in act() to flush async useEffect state updates
- Add useEffect cleanup to navbar to prevent state updates on unmounted component
- Fixes timeout when running in full test suite
2026-05-01 19:01:05 +08:00
SnapOtter b00ef20667 fix: close SVG sanitization gap on upload routes and fix OCR/extension bugs
Security:
- Apply sanitizeSvg() to all file upload routes (files.ts, user-files.ts)
  preventing SSRF and script injection via SVG uploads to file library

Functional:
- Handle PaddleOCR-VL 1.5 markdown_texts output format in ocr.py
- Add empty-text fallback in OCR tier chain (ocr.ts) so higher tiers
  that return empty text fall back to the next tier automatically
- Fix SVG->PNG filename extension mismatch in tool-factory.ts so
  download endpoint serves correct Content-Type
- Report original upload size (not decoded size) in API response

Test infrastructure:
- Move Playwright auth state from test-results/ to .playwright/ to
  prevent mid-run cleanup deleting auth files
- Fix auth.setup.ts navigation race with waitForURL
- Fix gui-batch.spec.ts regex matching "Presets" instead of "reset"
- Fix pipeline-advanced.spec.ts crop bounds and resize assertions
- Broaden pipeline cleanup to include all E2E-prefixed pipelines
2026-04-30 16:11:33 +08:00
SnapOtter 3bec83bee5 chore: remove docs/prompts from version control
Internal prompt templates should stay local-only, not published to GitHub.
Added to .gitignore so they won't be tracked again.
2026-04-25 00:30:54 +08:00
SnapOtter 1066cf4c2c chore: track reusable prompt templates in docs/prompts/
Un-ignore docs/prompts/ and update the internal wiki generator
prompt to reflect current codebase state (48 tools, 8 agents,
accurate component/test/store counts, landing app coverage).
2026-04-25 00:00:35 +08:00
SnapOtter bc82781282 fix: correct gitignore pattern for vitepress cache 2026-04-24 19:11:53 +08:00
SnapOtter 0309e0f680 chore: deploy to Cloudflare Pages and update branding
- Add Cloudflare Pages deployment for landing page (snapotter.com) and
  docs (docs.snapotter.com)
- Create deploy-landing.yml and update deploy-docs.yml workflows
- Update CI to ignore apps/landing/** paths
- Fix logo transparency (remove white background) across all apps
- Recreate social-preview.png with SnapOtter branding
- Update all docs URLs from GitHub Pages to docs.snapotter.com
- Update VitePress config: light theme default, fix llms.txt paths
- Add .vitepress/cache/ and .env.* to gitignore
2026-04-24 18:06:29 +08:00
ashim-hq 839df466a0 chore: add SnapOtter logo and clean up .gitignore 2026-04-24 15:20:04 +08:00
ashim-hq f82eff4875 Merge feat/landing-page into main
Integrates the SnapOtter landing page with Nunito typography,
otter mascot logo, and teal open-source section accent.
2026-04-24 15:16:49 +08:00
ashim-hq 4f850ff38e chore: gitignore docs/ except COMMUNITY_GUIDE.md
Remove RELEASE_QA_REPORT.md from tracking and ignore all docs/
content except COMMUNITY_GUIDE.md to keep local-only files private.
2026-04-23 20:39:43 +08:00
ashim-hq efb429289d test: add QA release report from multi-node test sweep
280 tests across 3 nodes (Mac, WSL GPU RTX 4070, Ubuntu CPU):
- 270 pass, 7 fail (known platform limitations)
- Fixed: MAX_USERS=0 registration block, auth Zod validation
- Verified: cross-platform parity for all non-AI tools
- Verified: 16/18 input formats, all batch/pipeline operations
- GPU vs CPU AI performance benchmarked
2026-04-23 20:26:48 +08:00
ashim-hq 2260d696bc feat: scaffold Next.js landing page app at apps/landing 2026-04-23 17:19:48 +08:00
ashim-hq 365af287f2 chore: remove docs/specs from git tracking
Keep specs local-only; add docs/specs/ to .gitignore.
2026-04-16 15:45:18 +08:00
Siddharth Kumar Sah 20f7671715 chore: add CLAUDE.md to .gitignore to keep it local-only 2026-04-14 20:40:23 +08:00
stirling-image 1dd87f11d6 fix(passport-photo): support both old and new mediapipe APIs for face landmarks
- Old API (mp.solutions.face_mesh) for Docker with mediapipe < 0.10.30
- New API (mp.tasks.vision.FaceLandmarker) for newer mediapipe >= 0.10.30
- Auto-downloads face_landmarker.task model on first use with new API
- Extracted shared landmark index constants and key point extraction
2026-04-14 12:21:00 +08:00
Siddharth Kumar Sah 958b10cb45 refactor: remove lite variant, fix release workflow
- Remove all lite/full variant logic from frontend, API, shared constants,
  docs, and tests (single unified Docker image only)
- Replace single QEMU multi-arch Docker build with per-architecture native
  builds (amd64 + arm64) and manifest merge to fix disk space exhaustion
- Add disk cleanup step and per-platform build cache scopes
- Switch release trigger from push to workflow_dispatch
- Add GitHub issue templates and PR template
2026-04-10 17:38:54 +08:00
Siddharth Kumar Sah e8c6a26cb9 chore: add __pycache__ and .pyc to gitignore 2026-04-08 00:19:58 +08:00
Siddharth Kumar Sah e8436683d9 chore: remove CLAUDE.md from repo and keep it local-only 2026-03-26 12:06:06 +08:00
Siddharth Kumar Sah 8474b0ee52 fix(test): add missing PNG fixture files to repo
test-200x150.png and test-1x1.png were present locally but never
committed, causing CI failures on clean checkouts. Also added a
gitignore exception for tests/fixtures/*.png.
2026-03-26 01:32:48 +08:00
Siddharth Kumar Sah 627ff8a82c chore: remove internal docs from repo, update public documentation
Remove docs/superpowers/, .claude/ config, and PRD.md from version
control (kept locally via .gitignore). Update README, CHANGELOG,
VitePress docs, and .env.example to reflect recent features: Files
page, teams, admin settings, persistent storage, and various API
improvements.
2026-03-26 01:11:40 +08:00
Siddharth Kumar Sah 585d66f0c9 refactor: rename Tool.alpha to Tool.experimental 2026-03-26 01:10:51 +08:00
Siddharth Kumar Sah 4f984c83ac fix: streamline CI/CD — remove broken AI docs updater, fix Docker publish
- Delete ai-docs-updater.yml (never worked: missing ANTHROPIC_API_KEY, tsx not found)
- Delete standalone docker-publish.yml (GITHUB_TOKEN can't trigger cross-workflow)
- Merge Docker build/push into release.yml as dependent job using .release-version
- Add publishCmd to .releaserc.json to signal new releases to Docker job
- Fix deploy-docs.yml: upgrade pnpm@v3→v4, node 20→22, add --frozen-lockfile
- Fix ci.yml: rename job to "Typecheck" (no lint step existed)
2026-03-23 15:14:34 +08:00
Siddharth Kumar Sah 8971debcfc chore: add .worktrees/ to gitignore 2026-03-23 15:14:34 +08:00
Siddharth Kumar Sah 80e536bcf8 chore: remove dead code, add test infrastructure, update docs
- Delete 3 dead files: use-batch-processor.ts, use-i18n.ts, smart-crop.ts (AI package)
- Remove dead getJobProgress function and unused runPythonScript wrapper
- Remove 6 unused imports across API and web apps
- Remove unused shared types (ImageFormat, AppConfig, ApiError, HealthResponse, JobProgress)
  and constants (SUPPORTED_INPUT_FORMATS/OUTPUT_FORMATS, DEFAULT_OUTPUT_FORMAT)
- Remove unused store method (setOriginalBlobUrl) and clean AI package re-exports
- Add test infrastructure: vitest config, unit/integration/e2e tests, fixtures, screenshots
- Add Docker test infrastructure: Dockerfile.test, docker-compose.test.yml
- Add download_models.py for pre-baking AI model weights in Docker
- Add filename sanitization utility (apps/api/src/lib/filename.ts)
- Update .gitignore to exclude coverage/, *.tsbuildinfo, .superpowers/, test artifacts
- Update .dockerignore to exclude test/coverage/IDE artifacts from builds
- Update docs: remove smart crop from AI docs (uses Sharp directly), update bridge docs
2026-03-23 11:46:45 +08:00
Siddharth Kumar Sah ce03aad10f feat: production Docker, Playwright tests, settings API, and bug fixes
- Add user management endpoints (register, list, delete, change password)
- Add API key management (create, list, delete)
- Add settings persistence endpoints (get, put)
- Wire settings dialog to real backend (People, API Keys, System, Security)
- Fix login auth flow (window.location.href for full reload)
- Fix download URLs returning 401 (make public since UUIDs are unguessable)
- Fix border tool shadowColor validation (accept 6-8 hex digits)
- Fix remove-bg alpha matting fallback (retry without on failure)
- Fix AI tool silent fallbacks (report errors instead of no-ops)
- Add checkerboard background to before/after slider for transparency
- Add progress bars to all AI tool components
- Add Playwright E2E test suite (131 tests across 9 test files)
- Rewrite Dockerfile for production (tsx runtime, pre-baked AI models)
- Add .dockerignore for faster builds
- Add proper accessible labels to login form
2026-03-22 19:28:57 +08:00
Siddharth Kumar Sah 2723d6a75a chore: clean up codebase and update .gitignore
Remove old UI research screenshots, .DS_Store files, temp dirs.
Add patterns for .vite/, tmp/, apps/api/data/, and screenshot PNGs.
2026-03-22 10:25:48 +08:00
Siddharth Kumar Sah a24c6dd014 feat: add SQLite database with Drizzle ORM schema and migrations 2026-03-22 02:51:57 +08:00
Siddharth Kumar Sah 58fbb38fd8 feat: initialize Turborepo monorepo with pnpm workspaces 2026-03-22 02:41:44 +08:00