- analyzer.py: progress_callback parameter with phase reporting
- analyzer.py: add .webp to SUPPORTED_EXTENSIONS
- requirements.txt: add pillow-heif==1.3.0 for HEIC/HEIF support
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Shows amber banner with up to 4 thumbnails, overflow count,
and favorite total — only visible when favorites exist.
Built with DOM methods (no innerHTML) to avoid XSS risk.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Detects QR codes (QR_), barcodes (BC_), faces (FACE_/GROUP_),
and panoramas (PANO_) per photo using OpenCV — no new dependencies.
Opt-in checkboxes in the rename tab; prefixes prepend to filename.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- swipe left/right to reject/keep, swipe up for favorite
- card tilts and overlays fade in proportionally during drag
- snap-back animation when swipe distance below threshold
- touchcancel handled identically to touchend
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- #10: filename dedup counter zero-padded (_001, _002 instead of _1, _2)
- #8: hint below auto-detect button clarifies it samples first photo only
- #9: note above export button that all output is JPEG (PNG alpha lost)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- #1: /preview and /detect-angle now validate path is within tempdir
- #2: Add Authorization to CORS allow_headers
- #3: Sessions stored as {token: timestamp}, expire after 24h via _purge_expired_sessions()
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The audit flags any .env* file in the repository. Removed .env.example
from the git index, added it to .gitignore, and updated README with
inline setup instruction instead.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace sk-ant-... placeholder with non-secret string to pass secret scan
- Add .gitignore (venv, __pycache__, .env)
- Bind server to 0.0.0.0:8000 so audit HTTP check can reach it
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix absolute API paths in index.html (/analyze, /move, /preview → relative)
- Allow all CORS origins in server.py for reverse-proxy compatibility
- Add tech stack section to README.md
- Create .vch-description for VCH Showcase
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>