Files
silent-send/manifest.firefox.json
T
Claude 70c7b759c6 feat: auto-sync, version history, merge, org policy, tamper guard
New modules:
- version-history.js: IndexedDB snapshot storage with pruning/rollback
- merge.js: three-way field-level merge for sync conflict resolution
- org-policy.js: team/org policy enforcement, compliance checking,
  invite codes, required mappings that can't be disabled
- tamper-guard.js: admin password to protect disable/clear/export
  actions, org policy can prevent disabling

Auto background sync:
- Gist/URL sync via chrome.alarms (MV3-safe, survives SW restarts)
- Configurable interval (5/15/30 min), push on local changes
- performAutoSync() orchestrates pull-then-conditional-push

Multi-device dashboard:
- Device auto-registration with UUID + browser/platform detection
- Device list embedded in sync data for cross-device visibility
- getDeviceInfo(), setDeviceName(), getDevices(), removeDevice()

Manifest changes:
- Added "alarms" permission for background polling

Service worker:
- Alarm listeners for auto-sync and org policy polling (hourly)
- Tamper guard message handlers
- Alarms set up on install and startup

WIP: Options UI integration pending for all new features.

https://claude.ai/code/session_01SWSwDfMVij53bCTNSCLMwn
2026-03-26 19:39:28 +00:00

94 lines
2.1 KiB
JSON

{
"manifest_version": 3,
"name": "Silent Send",
"version": "0.3.1",
"description": "Intercepts personal info and substitutes it with user-defined replacements before sending to AI services.",
"browser_specific_settings": {
"gecko": {
"id": "silent-send@example.com",
"strict_min_version": "128.0"
}
},
"permissions": [
"storage",
"activeTab",
"scripting",
"notifications",
"alarms"
],
"host_permissions": [
"https://claude.ai/*",
"https://chatgpt.com/*",
"https://chat.openai.com/*",
"https://grok.x.ai/*",
"https://x.com/i/grok*",
"https://gemini.google.com/*",
"http://localhost/*",
"http://127.0.0.1/*"
],
"background": {
"scripts": ["src/background/service-worker.js"],
"type": "module"
},
"content_scripts": [
{
"matches": [
"https://claude.ai/*",
"https://chatgpt.com/*",
"https://chat.openai.com/*",
"https://grok.x.ai/*",
"https://x.com/i/grok*",
"https://gemini.google.com/*",
"http://localhost/*",
"http://127.0.0.1/*"
],
"js": ["src/content/injector.js"],
"css": ["src/content/content.css"],
"run_at": "document_start",
"all_frames": true
}
],
"action": {
"default_popup": "src/popup/popup.html",
"default_icon": {
"16": "icons/icon16.svg",
"48": "icons/icon48.svg",
"128": "icons/icon128.svg"
}
},
"options_ui": {
"page": "src/options/options.html",
"open_in_tab": true
},
"icons": {
"16": "icons/icon16.svg",
"48": "icons/icon48.svg",
"128": "icons/icon128.svg"
},
"commands": {
"toggle-reveal": {
"suggested_key": {
"default": "Alt+Shift+R",
"mac": "Alt+Shift+R"
},
"description": "Toggle Reveal Mode"
},
"toggle-enabled": {
"suggested_key": {
"default": "Alt+Shift+S",
"mac": "Alt+Shift+S"
},
"description": "Toggle Silent Send on/off"
}
},
"optional_permissions": [
"<all_urls>"
],
"web_accessible_resources": [
{
"resources": ["src/content/content.js"],
"matches": ["<all_urls>"]
}
]
}