- options.html/js: Footer version now reads dynamically from manifest via
api.runtime.getManifest().version instead of hardcoded v0.3.0
- document-scanner.js: Increase FlateDecode lookback from 200 to 500 bytes
(real PDF stream dictionaries are often larger than 200 bytes), and support
array form /Filter [/FlateDecode] alongside the scalar form
https://claude.ai/code/session_01ReZUeR1nrYzJeX7fTqwXMw
- document-scanner.js: Add missing await on _inflateSync() call — FlateDecode
streams were not being decompressed because the async function was called
without await, causing decompressed to hold a Promise instead of data
- content.js, storage.js, options.html, options.js: Gate proper noun / capital
letter detection behind a new detectProperNouns setting (default off); was
previously always-on causing noisy false-positive warnings on AI thinking
output and common capitalized words
- Bump version 0.9.23 → 0.9.25
https://claude.ai/code/session_01ReZUeR1nrYzJeX7fTqwXMw
PII (Personally Identifiable Information) is the correct standard term.
Renamed all instances — comments, UI labels, variable names, function
names (autoDetectPPI → autoDetectPII, scanInputForPPI → scanInputForPII,
ppiWarnings → piiWarnings), CSS comments, README, and options page.
Added Ko-fi donation section to README and Options footer. Tone: no
obligation, no warranty, no influence on updates — just appreciation.
https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
New module: document-scanner.js
- PDF: extracts text from content streams, scans for PPI, converts to
sanitized plaintext for upload (PDFs can't be reliably edited in-place)
- DOCX/XLSX: extracts text from XML entries, scans for PPI
- Text files: direct string substitution
- Handles scanned/image-only PDFs gracefully (skips with message)
Fetch interceptor (content.js):
- Now intercepts FormData uploads (file uploads) in addition to JSON
- Processes each file through document scanner
- Preview mode for PDF/DOCX/XLSX: shows PPI findings with counts,
user clicks "Substitute & Upload" or "Upload Original"
- Text files substituted silently (no preview friction)
- String form fields also substituted
- 30-second auto-dismiss on preview (uploads original if no response)
Preview UI (content.css):
- Centered overlay with dark theme matching existing warning UI
- Shows original → substituted pairs for each PPI found
- File format note (e.g. "PDF will be converted to plain text")
https://claude.ai/code/session_01SWSwDfMVij53bCTNSCLMwn