Commit Graph
190 Commits
Author SHA1 Message Date
Outis a465926170 Merge pull request #54 from outis1one/claude/read-repo-YMu21
fix: narrow isInNonChatArea to stop blocking chat reveal, bump 0.9.17
2026-03-29 13:50:39 -04:00
Claude fe684047a8 fix: isInNonChatArea too aggressive — blocking reveal on chat content
The class-based selectors ([class*="header"], [class*="Header"],
[class*="nav-"], etc.) were matching Claude.ai's chat content area
elements, preventing reveal from running on any response text.

Narrowed to only structural elements: nav, aside, [role="navigation"],
[role="complementary"], [data-sidebar]. Removed HEADER/FOOTER from
SKIP_REVEAL_TAGS since sites use these tags inside chat layouts.

https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-29 17:50:25 +00:00
Outis 77c48de5f5 Merge pull request #53 from outis1one/claude/read-repo-YMu21
fix: filter partial name subs from reveal pairs, bump 0.9.16
2026-03-29 13:35:55 -04:00
Claude 433e5a7736 fix: filter out partial name substitutions from reveal pairs
The smart engine records individual name parts ("Ademo"→"John",
"Demo"→"Smith") AND the combined form ("Ademo Demo"→"John Smith")
in sessionSubstitutions. The catch-all in buildRevealPairs was
adding all of them, causing partial replacements that corrupted
the DOM and made the cache oscillate between 4 and 0 pairs.

Fix: skip session entries whose key is a substring of a longer
entry (e.g. "ademo" is part of "ademo demo"). Only the combined
form gets added as a reveal pair.

Also: remove debug logging, improve cache with size tracking.

https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-29 17:35:39 +00:00
Outis 476bc72faf Merge pull request #52 from outis1one/claude/read-repo-YMu21
fix: restore missing reveal scoping from unmerged branch, bump 0.9.15
2026-03-29 13:29:10 -04:00
Claude 3ae740216b fix: restore missing isInNonChatArea + SKIP_REVEAL_TAGS from unmerged branch
Root cause found: commit 9a11896 (v2.0.14) added isInNonChatArea()
and expanded SKIP_REVEAL_TAGS with NAV/ASIDE/HEADER/FOOTER, but that
commit was on a branch that was never merged into main. When we started
our work from main, these fixes were missing.

Restored:
- isInNonChatArea() function — prevents reveal from touching sidebars,
  navigation, headers, footers, and other non-chat UI
- SKIP_REVEAL_TAGS expanded with NAV, ASIDE, HEADER, FOOTER
- isInNonChatArea checks added to revealInElement, unrevealInElement,
  and highlightMatches (both element-level and walker-level)

https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-29 17:28:46 +00:00
Outis 8eb08dc56e Merge pull request #51 from outis1one/claude/read-repo-YMu21
fix: reveal pairs oscillating, bump 0.9.14
2026-03-29 13:21:02 -04:00
Claude 5e47ed5aae fix: reveal pairs oscillating between populated and empty
Two bugs found:
1. Individual name parts ("Ademo"→"John", "Demo"→"Smith") were added
   as reveal pairs, causing partial replacements that corrupted the DOM.
   The smart engine sends combined forms ("Ademo Demo"→"John Smith")
   which the catch-all already handles. Removed individual name entries
   from buildRevealPairs — only emails, usernames, hostnames, phones
   are matched individually.

2. Cache invalidated on every ss:config-updated (including settings-only
   changes like reveal toggle). Now only invalidates when mappings or
   identity actually change.

https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-29 17:20:48 +00:00
Outis 2bcdd00b74 Merge pull request #50 from outis1one/claude/read-repo-YMu21
debug: reveal pairs logging, bump 0.9.13
2026-03-29 13:10:31 -04:00
Claude e9faf1df8e debug: add reveal pairs logging to diagnose empty pairs issue, bump 0.9.13
https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-29 17:10:18 +00:00
Outis 3c794a7c1e Merge pull request #49 from outis1one/claude/read-repo-YMu21
chore: bump version to 0.9.12
2026-03-29 12:53:06 -04:00
Claude 9cb582652f chore: bump version to 0.9.12
https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-29 16:52:34 +00:00
Outis 862ddc2e62 Merge pull request #48 from outis1one/claude/read-repo-YMu21
fix: reveal mode not working when already ON at page load, bump 0.9.11
2026-03-29 12:49:56 -04:00
Claude d494ebaf8c fix: reveal mode not working when already ON at page load
If reveal mode was saved as ON in settings, the page loaded with
revealMode=true and prevRevealMode=true. The checkRevealToggle
function only fires on transitions (off→on or on→off), so the
reveal interval was never started. Added initialization check
that starts the reveal interval immediately if revealMode is
already true at page load.

https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-29 16:49:42 +00:00
Outis c0e1254d62 Merge pull request #47 from outis1one/claude/read-repo-YMu21
fix: new extension UUID, bump 0.9.10
2026-03-29 00:06:05 -04:00
Claude 65d60cfbe0 fix: new unique extension UUID to avoid duplicate ID on AMO, bump 0.9.10
https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-29 04:05:54 +00:00
Outis 11b749c5fd Merge pull request #46 from outis1one/claude/read-repo-YMu21
fix: data_collection_permissions required must be array, bump 0.9.9
2026-03-29 00:02:42 -04:00
Claude 281e1a1d08 fix: data_collection_permissions.required must be array ["none"]
Per Mozilla docs, required is an array of data type strings.
For extensions that collect no data: ["none"].
Source: https://extensionworkshop.com/documentation/develop/firefox-builtin-data-consent/

https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-29 04:02:31 +00:00
Outis 3026b13f49 Merge pull request #45 from outis1one/claude/read-repo-YMu21
fix: correct data_collection_permissions format, bump 0.9.8
2026-03-28 23:59:40 -04:00
Claude 75f1dd7aca fix: data_collection_permissions requires 'required' property, bump min version to 140
AMO expects { required: false } not { collect_user_data: false }.
Bumped strict_min_version to 140.0 (when data_collection_permissions
was introduced). Version 0.9.8.

https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-29 03:59:29 +00:00
Outis bde4f9bb35 Merge pull request #44 from outis1one/claude/read-repo-YMu21
fix: correct data_collection_permissions location, bump 0.9.7
2026-03-28 23:57:46 -04:00
Claude e759b5f1b4 fix: move data_collection_permissions under browser_specific_settings.gecko
AMO requires the property at browser_specific_settings/gecko/data_collection_permissions,
not at the manifest root. Bump 0.9.7.

https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-29 03:57:34 +00:00
Outis 9331fa8d5e Merge pull request #43 from outis1one/claude/read-repo-YMu21
fix: AMO validation — add data_collection_permissions, bump 0.9.6
2026-03-28 23:41:55 -04:00
Claude 85c71631eb fix: add data_collection_permissions for AMO validation, bump 0.9.6
Mozilla now requires data_collection_permissions in the manifest.
Set collect_user_data: false (Silent Send collects no user data).

https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-29 03:41:44 +00:00
Outis ed887c9d78 Merge pull request #42 from outis1one/claude/read-repo-YMu21
chore: bump version to 0.9.5
2026-03-28 21:27:03 -04:00
Claude 072511eb7a chore: bump version to 0.9.5
https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-29 01:26:52 +00:00
Outis d484f21cf6 Merge pull request #41 from outis1one/claude/read-repo-YMu21
v0.9.4: Reveal mode fix, MIT license, test suite CSP fix
2026-03-28 21:21:50 -04:00
Claude d8784e8f75 fix: reveal mode broken when encryption enabled — encrypted settings blob passed to content script
When at-rest encryption is enabled, storage.onChanged fires with
encrypted blobs for ss_settings. The injector was passing this
encrypted blob directly as settings to the page world content script,
overwriting real settings with { _ssLocalEncrypted: true, data: ... }.

This broke reveal mode, highlights, and any setting toggle because
the content script's settings object became the encrypted blob.

Fix: skip encrypted settings blobs in injector.js (same check already
existed for mappings and identity). The background's settings:updated
message already sends decrypted settings correctly.

https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-29 00:53:17 +00:00
Claude 002a67ba95 license: switch from BSL-1.1 to MIT
MIT is true open source (OSI-approved) and provides the same liability
protection through its warranty disclaimer. The strengthened disclaimer
covering silent third-party failures, regulatory non-compliance, and
user verification responsibility is retained in the LICENSE file.

BSL restricted commercial use but didn't add legal protection — the
liability limitation is what protects against lawsuits, and that works
the same under MIT.

https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-28 21:09:14 +00:00
Outis b5dfae814e Merge pull request #40 from outis1one/claude/read-repo-YMu21
fix: move test suite JS to external file for Firefox CSP, bump 0.9.3
2026-03-28 14:41:26 -04:00
Claude d3646fbdf3 fix: move test suite JS to external file for Firefox CSP, bump 0.9.3
Firefox extension CSP blocks inline <script> tags. Moved all test
code to test-suite.js (loaded via src attribute). Build script updated
to copy both files.

https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-28 18:37:58 +00:00
Outis 9e0588e4e3 Merge pull request #39 from outis1one/claude/read-repo-YMu21
Claude/read repo y mu21
2026-03-28 14:21:07 -04:00
Claude a2b598236c chore: bump version to 0.9.2
https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-28 18:20:21 +00:00
Claude ed9419f04b fix: test suite CSP compatibility for Firefox extension pages
Replace inline onclick handlers with addEventListener (Firefox
extension CSP blocks inline event handlers). Show loading state
and test count on page load.

https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-28 18:13:17 +00:00
Claude 9ecd532a71 fix: include test-suite.html in build output
build.sh was not copying test-suite.html to dist/, causing "File not
found" when opening it as an extension page.

https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-28 17:07:45 +00:00
Outis 75e39f2d69 Merge pull request #38 from outis1one/claude/read-repo-YMu21
v0.9.0: Security hardening, new sites, custom redact patterns, test suite
2026-03-28 12:56:20 -04:00
Outis 9971a86098 Merge pull request #37 from outis1one/claude/read-repo-wA3y1
Claude/read repo w a3y1
2026-03-28 12:42:16 -04:00
Claude 7c3c2ba3ae merge: integrate claude/read-repo-YMu21 branch
Merged changes from the other session:
- Ko-fi support link in options footer
- PPI → PII renaming across codebase
- Legal/licensing updates (stronger disclaimer, non-commercial only)
- Custom secret/auto-redact patterns
- Internal refactoring of secret scanner to auto-redact naming
- Custom domains in popup Options tab
- Additional AI services (Perplexity, DeepSeek, HuggingChat, Poe)
- Developer sites (GitHub, GitLab, Reddit, StackOverflow, Pastebin)
- Dynamic content script registration for custom domains

Resolved conflicts in options.html and popup.html (kept newer
"Auto Redact" naming with custom patterns description).

https://claude.ai/code/session_01SWSwDfMVij53bCTNSCLMwn
2026-03-28 16:39:27 +00:00
Claude ccf69a91a7 fix: duplicate optAutoRedact ID + hardcoded log limit + add test suite
Bug 1: popup.html had duplicate id="optAutoRedact" on both the
Auto Redact toggle and Auto-redact Detected PII toggle. The second
overwrote the first, making the Auto Redact setting uncontrollable.
Fixed by giving the second toggle id="optAutoRedactDetected".

Bug 2: injector.js hardcoded activity log trim to 100, ignoring the
user's maxLogEntries setting. Now reads the setting from storage.

Added test-suite.html with 35+ tests covering storage, encryption,
sync (encryption-mandatory flows), auto-redact (built-in + custom
patterns), substitution engine, smart patterns, and auto-detect.

https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-28 16:36:57 +00:00
Outis 528fba7f6e Merge pull request #35 from outis1one/claude/read-repo-wA3y1
Claude/read repo w a3y1
2026-03-28 12:31:12 -04:00
Claude 5ce639f40f docs: update support section wording
https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-28 16:28:05 +00:00
Claude ad3b8718fa fix: PPI → PII across entire codebase + add Ko-fi support section
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
2026-03-28 16:21:21 +00:00
Claude 22205c2590 legal: remove commercial licensing, non-commercial use only
Commercial use is no longer permitted under the license. The BSL-1.1
still converts to MIT on March 26, 2030. All disclaimer and liability
language retained — applies to all users regardless.

https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-28 15:59:20 +00:00
Claude f237139e80 legal: strengthen disclaimer, liability, and warranty language
- LICENSE: expanded warranty disclaimer covering silent failures from
  third-party changes, coverage gaps, regulatory non-compliance, and
  commercial licensee expectations. Explicit limitation of liability
  for privacy breaches, identity theft, and regulatory penalties.
- PRIVACY.md: added limitations section covering third-party changes,
  coverage gaps, user responsibility, and compliance disclaimer.
- README.md: detailed disclaimer with specific scenarios — site API
  changes, coverage gaps, user verification responsibility, and
  commercial license scope.
- Popup: expanded footer warning about third-party changes and user
  responsibility.
- Options page: added footer disclaimer with LICENSE link, updated
  version to 0.9.0.

https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-28 15:30:45 +00:00
Claude 4b478c71bd chore: set version to 0.9.0 for pre-release testing
https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-28 15:17:20 +00:00
Claude 33d1542d12 refactor: rename all secret scanner internals to auto-redact
Full internal rename since still in testing — no backwards compat needed:
- secret-scanner.js → auto-redact.js
- SecretScanner → AutoRedact
- SECRET_PATTERNS → REDACT_PATTERNS
- secretScanning → autoRedact (setting key)
- customSecretPatterns → customRedactPatterns (setting key)
- scanAndRedactSecrets → runAutoRedact (function)
- All DOM ids, CSS classes, and variable names updated
- category: 'secret' → category: 'redact'
- getOrgSecretPatterns → getOrgRedactPatterns

https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-28 14:59:59 +00:00
Claude 7ec058f1ea feat: custom secret patterns + rename Secret Scanner → Auto Redact
Users can now define custom regex patterns for proprietary token formats,
internal URLs with keys, or any secret the built-in scanner doesn't cover.
Patterns are added/toggled/removed from the Options page and apply to both
the live interception (content.js) and the Test tab (popup.js).

Renamed all user-facing "Secret scanning" labels to "Auto Redact" across
popup and options. Internal variable names (secretScanning, SecretScanner)
kept for backwards compatibility with stored settings.

https://claude.ai/code/session_01KF4i7Ra7zCEDskxDBaNtcT
2026-03-28 14:32:57 +00:00
Claude eb2e946673 feat: bump-version.sh v2 — preview, confirm, undo, profiles, help
Complete rewrite with safety features:
- Version profiles: groups files by version, only updates the current
  version (ignores unrelated X.Y.Z strings in the project)
- Preview: shows exact line-by-line diff before applying changes
- Confirmation: asks y/N before modifying files (--yes to skip)
- Undo: saves rollback info, ./bump-version.sh undo to revert
- --help: full usage documentation with examples
- Only matches version DECLARATIONS (requires keyword context like
  "version":, version=, VERSION=, v prefix) — won't match random
  numbers like dates, IPs, or port numbers

https://claude.ai/code/session_01SWSwDfMVij53bCTNSCLMwn
2026-03-28 12:43:32 +00:00
Claude 863e637642 feat: make bump-version.sh truly project-agnostic
Now supports all common version patterns:
- JSON ("version": "X.Y.Z") — Node, extensions, composer
- TOML (version = "X.Y.Z") — Rust, Python pyproject.toml
- YAML (version: X.Y.Z) — Helm, GitHub Actions
- Python (__version__ = "X.Y.Z") — packages
- PHP (Version: X.Y.Z) — WordPress plugins/themes
- Shell (VERSION="X.Y.Z") — scripts
- HTML (vX.Y.Z) — display footers
- XML — .csproj, plist

Skips node_modules, dist, build, .git, __pycache__, venv, vendor.
Skips itself to avoid matching usage examples.
Skips files over 500KB to avoid scanning binaries.

https://claude.ai/code/session_01SWSwDfMVij53bCTNSCLMwn
2026-03-28 12:30:13 +00:00
Claude e8746babe4 feat: add version bump script (bump-version.sh)
Agnostic version bump tool that finds all version strings in the
project and updates them together.

Usage:
  ./bump-version.sh          # interactive menu
  ./bump-version.sh patch    # 0.9.0 → 0.9.1
  ./bump-version.sh minor    # 0.9.0 → 0.10.0
  ./bump-version.sh major    # 0.9.0 → 1.0.0
  ./bump-version.sh 1.2.3    # set to specific version

Finds versions in JSON files ("version": "X.Y.Z") and HTML/JS
files (vX.Y.Z). Excludes node_modules and dist directories.

https://claude.ai/code/session_01SWSwDfMVij53bCTNSCLMwn
2026-03-28 12:23:31 +00:00