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
This commit is contained in:
Claude
2026-03-25 23:26:13 +00:00
commit 4576597e64
19 changed files with 2100 additions and 0 deletions
+2
View File
@@ -0,0 +1,2 @@
<!-- Open this in a browser to generate PNG icons, or use the SVGs directly -->
<!-- For development, we'll create simple SVG icons -->
+4
View File
@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128">
<rect width="128" height="128" rx="24" fill="#111"/>
<text x="64" y="82" font-family="Arial,sans-serif" font-size="56" font-weight="bold" fill="#10b981" text-anchor="middle">SS</text>
</svg>

After

Width:  |  Height:  |  Size: 283 B

+4
View File
@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 128 128">
<rect width="128" height="128" rx="24" fill="#111"/>
<text x="64" y="82" font-family="Arial,sans-serif" font-size="56" font-weight="bold" fill="#10b981" text-anchor="middle">SS</text>
</svg>

After

Width:  |  Height:  |  Size: 281 B

+4
View File
@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 128 128">
<rect width="128" height="128" rx="24" fill="#111"/>
<text x="64" y="82" font-family="Arial,sans-serif" font-size="56" font-weight="bold" fill="#10b981" text-anchor="middle">SS</text>
</svg>

After

Width:  |  Height:  |  Size: 281 B