Commit Graph

29 Commits

Author SHA1 Message Date
3c35f4c4ef Show iOS version next to device name
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 18:30:49 -07:00
85aaf6c41a Show GPS coordinates on separate line under location name
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 18:30:25 -07:00
547fa04d57 Reorder metadata: scary stuff first, clean up formatting
Lead with GPS location (reverse geocoded), date, camera/device.
Combine aperture/exposure/ISO/focal length into one "Settings" line
with rounded values. Technical details (dimensions, ICC, EXIF/XMP
data sizes) at the bottom.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 18:28:57 -07:00
7775641fe7 Show actual GPS coordinates and place name in removed metadata
Reverse geocodes GPS coords via Nominatim to show the real location
that was embedded in the photo, making it clear what was stripped.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 18:27:01 -07:00
37c7076dba Return metadata as JSON body instead of response header
Fly.io proxy was stripping the custom X-Removed-Metadata header.
Now the web UI requests Accept: application/json and the /strip
endpoint returns {image, metadata} as JSON. Raw JPEG clients
still get the old behavior.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 18:09:57 -07:00
6a155728af Expose X-Removed-Metadata header for browser fetch access 2026-03-13 18:07:21 -07:00
d263bec6bb Show removed metadata in strip UI after download
Extracts EXIF, ICC, IPTC, XMP metadata before stripping and displays
it in a card below the drop zone — camera make/model, GPS, date taken,
lens, exposure settings, etc. GPS location gets a warning highlight.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 18:01:42 -07:00
f836948e6d Add token gate overlay, cap max machines at 2
Replace browser prompt() with full-screen auth overlay that blocks
access to the upload UI until a valid token is entered.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 17:41:57 -07:00
fa7e300424 Prompt for token on page load, cap max machines at 2
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 17:34:12 -07:00
ba9feacd48 Add /strip endpoint and web UI for metadata removal
- POST /strip: accepts any image, strips all metadata (EXIF, GPS, IPTC, XMP),
  returns clean anonymous JPEG at original dimensions (quality 92)
- GET / now serves a minimal web UI with drag-and-drop upload
- Token prompt on first use, saved to localStorage
- Add CLAUDE.md with project context

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 17:22:58 -07:00
6e6beb9f8e Update server.js 2026-01-25 19:14:10 -08:00
6154da9916 Update server.js 2026-01-25 19:08:37 -08:00
4dc7128735 Update server.js 2026-01-25 19:05:56 -08:00
24834a2fed Update server.js 2026-01-25 18:55:26 -08:00
38b4173a6e Update server.js
normalize images for vision: apply EXIF rotation, force RGB, strip metadata

- Apply EXIF orientation before encoding to avoid sideways OCR
- Normalize colorspace to RGB for deterministic vision inputs
- Strip all EXIF/IPTC/XMP metadata from output JPEGs
- Bound image dimensions to reduce OCR latency and timeouts
- Standardize JPEG encoding settings for vision reliability
2026-01-25 11:40:51 -08:00
2c2028a339 Update server.js 2026-01-22 08:20:01 -08:00
f4fd09873c Update server.js 2026-01-22 08:16:56 -08:00
89076e590f Added headers for resizing 2026-01-21 11:32:40 -08:00
fd9d5da896 Update server.js 2026-01-03 12:59:14 -08:00
e5563067c1 Update server.js 2026-01-03 12:53:33 -08:00
e07e1c0529 Update server.js 2026-01-03 12:45:09 -08:00
0b0300dedf Update server.js 2026-01-03 12:18:25 -08:00
b40b2bcf9d Update server.js 2026-01-03 12:08:16 -08:00
e408d190a2 Update server.js 2026-01-03 11:54:18 -08:00
60baaf9f6c Update server.js 2025-12-30 09:13:39 -08:00
64d010883b Update server.js 2025-12-29 20:09:50 -08:00
ead1efa698 Update server.js 2025-12-29 19:40:05 -08:00
1a7ed41d84 Update server.js 2025-12-29 19:18:57 -08:00
42ca3df08b Create server.js 2025-12-29 19:12:34 -08:00