Commit Graph

57 Commits

Author SHA1 Message Date
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
0fc37d690d Add GitHub Actions workflow for auto-deploy to Fly.io
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-13 17:29:55 -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
ddc22a573b Update fly.toml 2026-01-25 19:05:19 -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
6338303e9e Initial Commit 2026-01-22 16:39:18 +00:00
182e8bc58b Delete node_modules directory 2026-01-22 08:37:34 -08:00
507d2fe3aa Initial commit 2026-01-22 16:36:53 +00:00
540913bf58 Cleaned up 2026-01-22 08:33:58 -08:00
17c7e4ed19 Added health checks 2026-01-22 08:32:42 -08:00
df5217f6cb Changed user 2026-01-22 08:31:44 -08:00
918ad7d618 Hardened 2026-01-22 08:30:14 -08:00
94d0b25a11 Create README.md 2026-01-22 08:22:24 -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
2bc62e819f Update Dockerfile 2026-01-03 12:45:24 -08:00
e07e1c0529 Update server.js 2026-01-03 12:45:09 -08:00
9ddd76dfd9 Update package.json 2026-01-03 12:44:55 -08:00
346892808e Update Dockerfile 2026-01-03 12:35:24 -08:00
46fbfdbd95 Update Dockerfile 2026-01-03 12:29:25 -08:00
c2a310604d Update package.json 2026-01-03 12:19:09 -08:00
0b0300dedf Update server.js 2026-01-03 12:18:25 -08:00
dc59111f75 Update Dockerfile 2026-01-03 12:18:09 -08:00
b40b2bcf9d Update server.js 2026-01-03 12:08:16 -08:00
cd85e06e59 Update Dockerfile 2026-01-03 12:07:52 -08:00
3c806055f7 Update Dockerfile 2026-01-03 12:04:14 -08:00
e408d190a2 Update server.js 2026-01-03 11:54:18 -08:00
f905936470 Update Dockerfile 2026-01-03 11:47:28 -08:00
7b8d0686a1 Update Dockerfile 2026-01-03 11:42:50 -08:00
7fd687d5ed Update Dockerfile 2026-01-03 11:40:48 -08:00
f7864cea2a Update fly.toml 2025-12-30 18:12:03 -08:00
ab0ba2c22c Update server.js 2025-12-30 09:15:45 -08:00
60baaf9f6c Update server.js 2025-12-30 09:13:39 -08:00
30b073782b Update package.json 2025-12-29 20:11:04 -08:00
64d010883b Update server.js 2025-12-29 20:09:50 -08:00
8f3050e0bf Update Dockerfile 2025-12-29 20:07:34 -08:00
ead1efa698 Update server.js 2025-12-29 19:40:05 -08:00
c6cbd7ece4 Delete Dockefile 2025-12-29 19:34:52 -08:00