A privacy tool called Amnesia scrubs images for GPS coordinates and camera serials, the kind of detail that quietly ties a photo to a place. Its sanitizer carried a comment above the redaction step, and the line right under the comment did the opposite of what the comment promised:
// Zero-Sanitization Mandate: Ensure blurs are heavy and metadata is wiped
// Apply heavy blur to the whole image as a baseline security measure
image = image.blur(30).withMetadata({});
Sharp's own documentation says the opposite of what that comment claims. The default behavior, when withMetadata is never called at all, is to strip everything. Calling it is the one move that keeps metadata in. The fix is smaller than the bug: stop calling the method that was undoing the comment above it.
// Metadata is stripped by NOT calling withMetadata() — sharp strips
// everything by default; calling withMetadata() is what retains it.
image = image.blur(30);
The comment and the line under it were making opposite promises, and every "sanitized" photo this tool ever produced kept the exact coordinates it was supposed to remove.
Next to it sat a second failure with the same shape. Amnesia's offline mode claims to run analysis locally through Ollama, no cloud required. When that local model wasn't reachable, which is the common case since it needs a separate install, the code didn't fail and it didn't say so. It returned a fixed sentence dressed up as a finding: Potential text/faces detected. No heuristic ran. Nothing was analyzed. A canned string stood in for a result, and there was nothing in the response to tell you the difference.
Both are fixed now. Metadata actually strips. The offline path either runs a real deterministic scan against a photo's EXIF data or says plainly that it couldn't check, never inventing an answer to fill the gap.
