Commit Graph
13 Commits
Author SHA1 Message Date
Claude cd6789040c fix: add prominent disclaimer — convenience tool, not security guarantee
Users will stop checking once they trust the tool. Be upfront that
it can miss PPI in images, file uploads, unusual name variations,
or unconfigured data. Yellow warning box in the popup footer.

https://claude.ai/code/session_01Dvgwe7XMoSxnWXkih8p1Cw
2026-03-26 01:18:16 +00:00
Claude e684ea4bfb feat: aggressive mode — service-agnostic interception
Replace URL-pattern and body-shape matching with universal approach:

Outbound (substitution):
- Hooks ALL POST/PUT/PATCH fetch and XHR requests, not just known
  API endpoints. Skips static assets and analytics.
- Deep-walks any JSON structure recursively to find and substitute
  all string values. Skips metadata keys (model, id, token, etc.).
- Falls back to raw string substitution for non-JSON bodies.

Inbound (reveal):
- Walks ALL text nodes in document.body, not just specific CSS
  selectors. Skips SCRIPT, STYLE, INPUT, TEXTAREA tags.
- Handles streaming by observing characterData mutations globally.

This makes Silent Send survive any API restructuring — the only
thing that could break it is a site encrypting request bodies in
JS before fetch, which would also break their own dev tools.

Performance: reveal pairs are cached and only rebuilt on config
change. Deep walk skips known non-content keys to avoid touching
auth tokens or request metadata.

https://claude.ai/code/session_01Dvgwe7XMoSxnWXkih8p1Cw
2026-03-26 00:58:18 +00:00
Claude 625f08e4cc fix: correct privacy note — storage is unencrypted
browser storage.local is plain JSON on disk, not encrypted like
saved passwords (which use OS-level Keychain/DPAPI). Be honest
about the security model.

https://claude.ai/code/session_01Dvgwe7XMoSxnWXkih8p1Cw
2026-03-26 00:53:15 +00:00
Claude 045ee4848b feat: proper in-page reveal mode + privacy note
Reveal mode (eye icon) now works as intended:
- Toggle ON: all existing responses on the page get fake→real
  substitution applied immediately (paths, names, emails, etc.)
- Streaming responses are revealed in real-time as they arrive
- Toggle OFF: original text is restored from saved state
- Covers code blocks, artifacts, pre tags, and all response
  containers across all supported services
- Blue floating badge shows "Reveal Mode — showing real data"
  when active so user knows what they're seeing

The workflow is now: type /home/jsmith/... → Claude sees
/home/ademo/... → Claude responds with /home/ademo/... →
reveal mode shows /home/jsmith/... → user copies real path.

Also adds privacy note in popup footer: data stays in local
browser storage, no servers, no tracking, no analytics.

https://claude.ai/code/session_01Dvgwe7XMoSxnWXkih8p1Cw
2026-03-26 00:51:04 +00:00
Claude 7176cf6509 feat: add reveal paste-back tool + fix smart detection bail
Test tab now has two modes:
- Strip (real → fake): paste text with real data, see what gets sent
- Reveal (fake → real): paste AI output with fake data, get back
  real data with a "Copy to Clipboard" button

Also fixes:
- content.js smartSubstitute bailing when identity.enabled was
  undefined (defaulted enabled to all-true instead of returning)
- Test tab now reloads identity from storage on tab switch so
  changes saved in the Identity tab take effect immediately
- Shows yellow warning when identity fields are missing

https://claude.ai/code/session_01Dvgwe7XMoSxnWXkih8p1Cw
2026-03-26 00:44:35 +00:00
Claude 60b810b1b9 feat: custom domains for OpenWebUI + fix README issues
- Add custom domain support in Options page so users can add
  self-hosted AI services (e.g. https://ai.myserver.com)
- Background worker dynamically injects content scripts on
  custom domains using scripting.executeScript
- Add optional_host_permissions so Chrome can grant per-domain access
- Rewrite README: add clone step to Firefox instructions, clarify
  what "credentials" means in step 3, add Windows commands alongside
  Mac/Linux for every terminal step
- Bump version to 0.2.0

https://claude.ai/code/session_01Dvgwe7XMoSxnWXkih8p1Cw
2026-03-26 00:35:21 +00:00
Claude 1fe813337b docs: expand installation instructions and add tested status
Add clone instructions, prerequisites, and detailed step-by-step
Firefox signing walkthrough. Mark Claude as tested, all other
services (ChatGPT, Grok, Gemini, OpenWebUI) as untested.

https://claude.ai/code/session_01Dvgwe7XMoSxnWXkih8p1Cw
2026-03-26 00:28:02 +00:00
Claude 6e3249b8ff feat: add support for ChatGPT, Grok, Gemini, and OpenWebUI
Extend Silent Send to intercept API requests on all major AI chat
services. Each service has different API shapes:

- ChatGPT: /backend-api/conversation with content.parts arrays
- Grok: GraphQL + /2/grok/add_response with message field
- Gemini: form-encoded f.req with nested arrays (+ generateContent)
- OpenWebUI: /api/chat and /ollama/api/chat (self-hosted)

All services share the same substitution pipeline. Manifests updated
for both Chrome and Firefox with host_permissions for all domains.
OpenWebUI supported via localhost/127.0.0.1 for self-hosted instances.

https://claude.ai/code/session_01Dvgwe7XMoSxnWXkih8p1Cw
2026-03-26 00:27:07 +00:00
Claude 34f1131c23 feat: add hostname substitution in user@host patterns
jsmith@macbook-pro now becomes ademo@mycomputer when both username
and hostname are configured in the Identity tab. Hostnames are also
caught standalone (e.g. just "macbook-pro" in text).

Also rewrites README with detailed step-by-step Mozilla API key
setup instructions for Firefox signing.

https://claude.ai/code/session_01Dvgwe7XMoSxnWXkih8p1Cw
2026-03-26 00:15:26 +00:00
Claude 387b22530b feat: add smart pattern detection for emails, names, usernames, phones
Instead of requiring explicit mappings for every variation, users
now configure their identity once (Identity tab) and Silent Send
auto-catches:
- Emails: any address @gmail, @yahoo, @outlook, etc.
- Names: first/last, full name, reversed, possessives, case variants
- Usernames: user@host, ~user, /home/user, C:\Users\user
- Phones: all common formats ((555) 123-4567, 555.123.4567, etc.)

Smart patterns run before explicit mappings, so explicit rules
can override smart catches when needed.

https://claude.ai/code/session_01Dvgwe7XMoSxnWXkih8p1Cw
2026-03-25 23:52:37 +00:00
Claude 7fe110d8fc feat: add web-ext tooling for Firefox signing
Add package.json with web-ext dev dependency and npm scripts for
building, linting, signing, and running the Firefox extension.
Signing produces a self-hosted .xpi that persists across restarts
without needing the Mozilla store.

https://claude.ai/code/session_01Dvgwe7XMoSxnWXkih8p1Cw
2026-03-25 23:40:00 +00:00
Claude 3ef5df7efb feat: add Firefox support with cross-browser compatibility
Add manifest.firefox.json for Firefox MV3 (gecko ID, background
scripts instead of service_worker, options_ui). Introduce
browser-polyfill.js shim so all modules use whichever API is
available (browser.* or chrome.*). Add build.sh to target
chrome, firefox, or both.

https://claude.ai/code/session_01Dvgwe7XMoSxnWXkih8p1Cw
2026-03-25 23:36:59 +00:00
Claude 4576597e64 feat: initial Silent Send browser extension
Chrome Manifest V3 extension that intercepts personal data and
substitutes it with user-defined replacements before sending to
Claude.ai. Hooks fetch() in the page's main world to catch API
requests, with bidirectional substitution (real→fake on send,
fake→real on display via reveal mode).

Includes popup UI with mapping management, live test/diff view,
activity log with badge count, options page with import/export,
and Shadow DOM traversal for Claude.ai compatibility.

https://claude.ai/code/session_01Dvgwe7XMoSxnWXkih8p1Cw
2026-03-25 23:26:13 +00:00