Cronologia versioni di MUGA: Clean URLs, Fair to Every Click - 19 versioni
MUGA: Clean URLs, Fair to Every Click di yocreoquesi
Attenzione alle versioni datate. Sono visualizzate solamente per scopi di test e di riferimento.È raccomandato usare sempre l’ultima versione di un componente aggiuntivo.
Ultima versione
Versione 1.15.1
Rilasciato 9 mag 2026 - 347,79 kBCompatibile con firefox129.0 e successive, android128.0 e successiveHotfix release. Headline: Privacy Proxy now actually works end-to-end. Three contract bugs were preventing the toggle from doing anything in v1.14.0 and v1.15.0 — the extension was calling the Worker on the wrong path (/v1/unwrapvs/unwrap) and with the wrong query param shape (?url=rawvs?u=base64url). Both were silent because the cleaner's failure mode is to fall back to the original navigation. The Worker contract is unchanged; this fix aligns the extension to it. Users who had Privacy Proxy enabled but never saw any difference will start getting actual server-side resolution after upgrading.
Fixedsrc/lib/proxy-client.jsPROXY_URL path corrected fromhttps://unwrap.muga.app/v1/unwraptohttps://unwrap.muga.app/unwrap. The/v1/unwrappath was never deployed on the Worker; every Privacy Proxy request returned404 Not Foundand silently fell back to the wrapper navigation. Discovered via direct curl probe of the production Worker.src/lib/proxy-client.jsquery param contract corrected from?url=<raw>to?u=<base64url-encoded>. The Worker handler reads theuparam and base64url-decodes it (muga-unwrap/src/handlers/unwrap.ts:110-111); the extension was sending the raw URL under the wrong key, which would have returned400 missing_u_parametereven if the path had been correct.
Addedbase64UrlEncode(str)helper exported fromsrc/lib/proxy-client.js. Symmetric to the Worker'sdecodeBase64Urldecoder. UsesTextEncoderfor Unicode safety (theoretical IRIs in URLs).- Endpoint-contract regression tests in
tests/unit/proxy-client.test.mjs. Three new assertions: PROXY_URL points to/unwrap, fetch is called with?u=(NOT?url=), and the encoded value round-trips throughatobto the original input. The pre-existing fetch-stubbing tests asserted on response shape but not on request shape — that gap is now closed.
Operational notes- The Worker side (muga-unwrap) is unchanged. The canonical Worker contract
?u=<base64url>was always correct; the bug was purely client-side. - Smoke probe in
muga-unwrap/.github/workflows/deploy.yml(added in v0.2.x post-mortem hardening) was already exercising the correct path and param shape — that's why deploy CI never caught the extension-side bug. Future-proofing: a separate smoke probe on the extension side that verifies the actual request shape would have caught this; out of scope for this hotfix.
Codice sorgente rilasciato sotto licenza Solo GNU General Public License v3.0
Versioni precedenti
Versione 1.15.0
Rilasciato 9 mag 2026 - 347,48 kBCompatibile con firefox129.0 e successive, android128.0 e successiveRedirector coverage release. Headline: Privacy Proxy now covers seven more redirector hosts — the generic shortenersbit.ly,tinyurl.com,t.co, andlink.medium.com; the Partnerize affiliate redirectorprf.hn; A8.net Japan'spx.a8.net; and Amazon's branded shorteneramzn.to. The toggle disclosure copy is reworded so the broader scope is honest — what was "opaque affiliate links" is now "opaque redirector links (affiliate networks and generic shorteners)." A foundational refactor eliminates the duplicate opaque-host list that previously lived in two files; adding a host now requires a one-line edit insrc/lib/opaque-networks.js. The Worker side (cross-repo) landed first in muga-unwrap#29.
Added- 7 new / activated opaque redirector hosts in
src/lib/opaque-networks.js: bit.ly— generic URL shortener (PR-02).tinyurl.com— generic URL shortener (PR-03).prf.hn— Partnerize / Performance Horizon affiliate; resolved via Worker HEAD chain, no client-side path-segment extractor (PR-04).px.a8.net— A8.net Japan affiliate; hostname confirmed via T00 STANDARD curl probe (r.a8.netdoes not resolve) (PR-05).amzn.to— Amazon branded shortener; ships conditional on G3 regression gate (PR-06);tag=preservation verified.t.co— Twitter/X URL shortener; extension-only activation — Worker already acceptst.covia caps-specbuildSpecAllowlist(PR-07).link.medium.com— Medium URL shortener; extension-only activation, same pattern ast.co(PR-08).isOpaqueNetworkHost(hostname)helper exported fromsrc/lib/opaque-networks.js. Centralises thewww.normalization that previously lived inline inside the content-script IIFE. The helper is re-exported through the content bundle (src/content/cleaner-bundle-src.mjs) so thatcleaner.jscan delegate towindow.__mugaCleaner.isOpaqueNetworkHostwithout a private replica.amzn.totag= preservation regression test (tests/unit/amzn-to-tag-preservation.test.mjs). Four cases:.comwith Honor Creator mode,.eswith Honor Creator mode, control case (stripAllAffiliates strips tag), and noise-param stripping alongside tag survival. D7 shipping gate per design AD-03.- New helpers unit test (
tests/unit/opaque-networks-helpers.test.mjs). CoversisOpaqueNetworkHostcontract: bare host match, www-stripped match, false for non-opaque host, false for empty/null/undefined. Replaces the obsolete sync test.
Changed
…full release notes: https://github.com/yocreoquesi/muga/releases/tag/v1.15.0Codice sorgente rilasciato sotto licenza Solo GNU General Public License v3.0
- 7 new / activated opaque redirector hosts in
Versione 1.14.0
Rilasciato 8 mag 2026 - 346,61 kBCompatibile con firefox129.0 e successive, android128.0 e successivePrivacy Proxy release. Headline: MUGA can now resolve opaque affiliate wrappers — links where the destination URL is hidden inside a redirector your browser would normally have to load — throughunwrap.muga.app, an open-source Cloudflare Worker that follows the redirect chain server-side and returns the resolved destination signed with Ed25519. The opaque host never loads on your machine. Fully opt-in via a new "Privacy Proxy" toggle in Settings, off by default; the existing Strict Local and Honor Creator modes are unchanged. Closes #453.
Added- Privacy Proxy mode for opaque affiliate networks (#453). When enabled and a click hits an opaque wrapper (AliExpress
s.click.aliexpress.com, CJ Affiliate's eight redirector domains, Admitadad.admitad.com), MUGA's content script intercepts the navigation, posts the URL to theunwrap.muga.appWorker, verifies the Ed25519 signature on the response locally against a hardcoded public key, and navigates the tab directly to the resolved destination. The opaque host never loads. On signature failure, network failure, or any error path, the original click proceeds unmodified — Privacy Proxy is a privacy enhancement, never a navigation gate. Files:src/lib/proxy-client.js,src/lib/proxy-navigate.js,src/lib/opaque-networks.js,src/content/cleaner.js,src/background/service-worker.js. - Three-mode matrix UI in Settings. A new "Privacy Proxy" section in the options page exposes two toggles (
Honor Creator,Privacy Proxy) that combine into three modes: Strict Local (both off — default; behavior unchanged from v1.13.x), Honor Creator (creator referral preserved on direct affiliate links; behavior unchanged from v1.13.x), and Honor + Proxy (Honor Creator behavior plus opaque-wrapper resolution via the Worker). The active mode is shown above the toggles in plain English so users can confirm what they're enabling. The purederiveModeLabelhelper (src/lib/mode-label.js) is unit-tested independently of the UI. Files:src/options/options.html,src/options/options.js.
…full release notes: https://github.com/yocreoquesi/muga/releases/tag/v1.14.0Codice sorgente rilasciato sotto licenza Solo GNU General Public License v3.0
- Privacy Proxy mode for opaque affiliate networks (#453). When enabled and a click hits an opaque wrapper (AliExpress
Versione 1.13.7
Rilasciato 7 mag 2026 - 329,92 kBCompatibile con firefox128.0 e successive, android128.0 e successiveToolbar icon recovery release. Headline: the toolbar action icon now renders consistently in both Firefox and Chrome — the gray placeholder some users were seeing onabout:addonsand across tabs is fixed. The "creator referral preserved" green-check icon variant, which had been retired earlier the same day on a misdiagnosis, is also restored.
AddedOBJECTIVES.md— public North Star metric (Firefox AMO weekly active users), 6-month targets, explicit non-goals, and the four decision principles used to triage every new proposal. Closes #338. Linked from the README header.docs/ops/finalised — the three runbooks (health-signals.md,rollback-playbook.md,staged-release.md) plus theREADME.mdindex are now wired up end to end. Closes #397. Two brokenrollback.mdreferences inhealth-signals.mdwere fixed (the actual filename isrollback-playbook.md); a third integrity check was added totests/unit/ops-docs-sync.test.mjsthat asserts every relative.mdlink insidedocs/ops/points to a file that exists, so a future typo cannot ship silently. Thestaged-release.mddecision log was reset to start at v1.13.5 / v1.13.6 with real entries instead of TBD placeholders. README header now links todocs/ops/README.mdalongside Contributing.
Coverage- TikTok
_tadded to universal TRACKING_PARAMS (src/lib/affiliates.js, platform_noise category). Sister to existing_r— share token, not functional for the web URL. Closes the corresponding #508 gap. - AliExpress
aff_fcidadded toaliexpress.com.stripParamsinsrc/rules/domain-rules.json. Domain-scoped — CPS click ID, transient and not creator-attributing. - Walmart
sourceid+athcpidadded towalmart.com.stripParams. Campaign source tag and per-impression content ID respectively. bestbuy.comis a new domain-rules entry (#508). Stripsref(referral source) +loc(campaign location) +irclickid+irgwc(Impact Radius affiliate ad-attribution); preservesq/id/intl/page.
Fixed
…full release notes: https://github.com/yocreoquesi/muga/releases/tag/v1.13.7Codice sorgente rilasciato sotto licenza Solo GNU General Public License v3.0
Versione 1.13.6
Rilasciato 6 mag 2026 - 1,46 MBCompatibile con firefox128.0 e successive, android128.0 e successiveOnboarding hardening release. Headline: the first-run onboarding flow on Firefox no longer leaves the user staring at an unchanged tab after they accept — the silent regression that made "Start browsing clean" appear to do nothing is fixed, the cleaner is now provably off until acceptance, and the toolbar surfaces a "!" badge while consent is pending. Plus a separate gate fix: opening Settings right after a clean acceptance no longer bounces back to onboarding.
Added- Apple Services Performance Partners as a direct-injection program (#594, partial — Apple half). Refresh of the vendored caps-spec snapshot brought in
apple-phg(caps-spec PR #45), so MUGA now preserves?at=affiliate tokens onmusic.apple.com,geo.music.apple.com,tv.apple.com,books.apple.com,podcasts.apple.com,apps.apple.com, anditunes.apple.com. The "Creator referral preserved" badge fires on those hosts when a third-partyattoken is present, even though MUGA has no Apple Performance Partners account (per the #523 decoupling). The companion?ct=parameter is intentionally NOT matched as a creator referral — it is the campaign-name field, not the attribution token. The Bookshop.org half of #594 remains blocked on caps-spec#46 (RFC for path-based affiliate program schema). - Toolbar consent-required cue. A global
"!"badge surfaces on the toolbar icon whileonboardingDone === false(including hard-reonboard, wheregetPrefs()forces the flag back to false). Cleared on acceptance. Wired throughonInstalled, the cold-start fallback, and a newmugaConsentbranch in the storageonChangedlistener that re-runs DNR + badge in one shot. Files:src/background/service-worker.js. - Onboarding success state. After consent persistence, the page renders an in-place "You're all set / Close tab" confirmation and attempts a best-effort tab close (
window.close()thenchrome.tabs.remove). Firefox refuseswindow.close()on tabs not opened by JS, so the in-place state is the safety net that proves to the user the click landed. Files:src/onboarding/onboarding.js,src/onboarding/onboarding.html,src/lib/i18n.js(en/es/pt/de).
Changed
…full release notes: https://github.com/yocreoquesi/muga/releases/tag/v1.13.6Codice sorgente rilasciato sotto licenza Solo GNU General Public License v3.0
- Apple Services Performance Partners as a direct-injection program (#594, partial — Apple half). Refresh of the vendored caps-spec snapshot brought in
Versione 1.13.5
Rilasciato 5 mag 2026 - 1,45 MBCompatibile con firefox128.0 e successive, android128.0 e successiveBranded-domain release. The signed remote-rules endpoint moves underrules.muga.appso the public surface no longer depends on a personal GitHub username. No user-visible behavior change on a default install.
Changed- Remote rules endpoint moved to
rules.muga.app(#481, landed via #596). The signedparams.jsonis now served fromhttps://rules.muga.app/rules/v1/params.json(washttps://yocreoquesi.github.io/muga/rules/v1/params.json). DNS-only CNAME points at GitHub Pages — same hosting, branded subdomain. The optional permission users grant when enabling Remote rule updates is now scoped tohttps://rules.muga.app/*(Chrome MV3optional_host_permissions/ Firefox MV2optional_permissions). Existing installs that opted in to remote rules on v1.13.4 or earlier will be re-prompted to grant the new host on the next 7-day refresh — the host changed, so the previous grant no longer applies. Files:src/manifest.json,src/manifest.v2.json,src/lib/remote-rules.js,src/options/options.js,docs/CNAME,.github/workflows/publish-rules.yml.
Codice sorgente rilasciato sotto licenza Solo GNU General Public License v3.0
- Remote rules endpoint moved to
Versione 1.13.4
Rilasciato 5 mag 2026 - 1,45 MBCompatibile con firefox128.0 e successive, android128.0 e successiveCoverage + standards-compliance + CI hygiene release. Headline: MUGA now consumescaps-spec/manifest.jsonas the source of truth for affiliate program identity, and the preserve set is decoupled from MUGA's own affiliate accounts — creator referrals are honored on Booking, Vercel, DigitalOcean, Humble Bundle, and Lemon Squeezy even though MUGA has no direct account on those programs.
Addedcaps-spec/manifest.jsonconsumed as source of truth for the affiliate preserve set (#523, landed via #576/#577/#578). The 12-entry hand-maintainedAFFILIATE_PATTERNSarray is replaced by 7 consolidated entries generated at module load by joining the vendoredcaps-specdirect-injection programs with MUGA's hand-maintainedOUR_TAGSmap. Newscripts/sync-affiliate-manifest.mjsmirrors the existingsync-wrappers.mjspattern (Ed25519 signature verification when available,--allow-unsignedfor the interim). Files:scripts/sync-affiliate-manifest.mjs,src/vendor/caps-spec/manifest.data.js,src/lib/affiliates.js.- Sprinklr campaign-manager params (
spr,sprtype) added to universalTRACKING_PARAMS(src/lib/affiliates.js,src/rules/tracking-params.json). Stripped on every domain. False-positive risk is low — these identify the campaign and asset that referred a click inside Sprinklr's backend and have no functional payload from the user's perspective. Closes the last "low-risk universal" gap from the #508 acceptance list (the merchant-specific gaps remain). (#508) tracker-flag.ymlissue template (.github/ISSUE_TEMPLATE/tracker-flag.yml). Wires Channel 1 of CAPS decision 6 — receives structured tracker reports prefilled by MUGA's local heuristics (entropy + cross-site frequency). Schema mirrors the privacy contract already enforced bycsft-upstream.js: only the SHAPE of the observation, never raw URLs or raw values. The existingtracking-param.mdtemplate is preserved (different intent — hand-written carrier-aware param requests). (#522)tracker-candidaterepo label to receive auto-labelled issues from the new form.
Changed
…full release notes: https://github.com/yocreoquesi/muga/releases/tag/v1.13.4Codice sorgente rilasciato sotto licenza Solo GNU General Public License v3.0
Versione 1.13.3
Rilasciato 5 mag 2026 - 1,44 MBCompatibile con firefox128.0 e successive, android128.0 e successiveUser-visible polish release. Two critical fixes for users on v1.13.0–v1.13.2 (broken toolbar icon, stuck onboarding) plus a copy/visual pass on the onboarding and a popup cleanup. Also bundles two feature PRs that had been sitting on[Unreleased]since the 1.13.2 cut: wildcard whitelist/blacklist values and the CAPS-Basic + Contextual conformance claim.
Fixed- Toolbar icon was invisible on Firefox and Chrome (#564). The 16/48/128 PNGs introduced in v1.13.0 were 96–99% transparent — only 6/256, 13/2304, and 32/16384 pixels respectively were opaque. The accompanying
*-preserved.pngfiles in the tree were the intact RGB sources, mistakenly left as the optimization input rather than the shipped output. This release copies those bytes over the broken files. Users on v1.13.0–v1.13.2 will see the working icon on the next AMO/Chrome Store update. - Onboarding "Start browsing clean" button did nothing (#565). The CTA was natively
disableduntil the ToS checkbox was checked, so clicks were silently swallowed. Users who didn't notice the ToS gate clicked repeatedly with no feedback and assumed the onboarding was broken. Now the button usesaria-disabledso the click event still fires; the handler flashes the ToS card (respectsprefers-reduced-motion), smooth-scrolls it into view, focuses the checkbox, and announces the requirement via ansr-onlyaria-liveregion. Playwright'stoBeDisabled()recognises the new state, so existing e2e coverage carries over. - Onboarding tagline pinned to a narrow left column (#565). The header had
max-width: 26ch / 48ch / 52chwhile the rest of the page used the full container width, leaving the tagline visually orphaned. Now flows to container width like the feature cards beneath. - Redundant "Still see tracking?" link in the popup (#567). Two report links (
#report-broken,#report-unclean) were splitting a single user intent — "this didn't work as expected" — across two GitHub queues. Removed#report-unclean; the remaining#report-brokenabsorbs both intents. - Share button doubled the 📋 emoji on click (#567). The static
<span aria-hidden="true">📋 </span>already held the icon and the click handler also wroteshare_copy_prefix(another 📋) into the visible label, producing📋📋 Share. The fix removes the entire share feature (see Removed below) — the bug dies with it. - Creator-referral hint hidden behind a
cursor: helptooltip (#567). The OS-level tooltip surfaces slowly (and not at all on touch), and the help cursor implied a click action that never existed. Now the hint renders inline as a small line below the badge — visible without interaction.
Added
…full release notes: https://github.com/yocreoquesi/muga/releases/tag/v1.13.3Codice sorgente rilasciato sotto licenza Solo GNU General Public License v3.0
- Toolbar icon was invisible on Firefox and Chrome (#564). The 16/48/128 PNGs introduced in v1.13.0 were 96–99% transparent — only 6/256, 13/2304, and 32/16384 pixels respectively were opaque. The accompanying
Versione 1.13.2
Rilasciato 4 mag 2026 - 1,42 MBCompatibile con firefox128.0 e successive, android128.0 e successiveRecovery release. No functional or user-visible changes vs v1.13.1 — same code, same rules, same behavior. The v1.13.1 release was tagged but itsReleaseworkflow failed at the unit-test step because the[Unreleased]reference link at the bottom ofCHANGELOG.mdstill pointed atv1.13.0...HEADafter the bump. Thetests/unit/changelog-links.test.mjsguard correctly flagged the drift, which blocked the AMO publish step from running. AMO therefore stayed on v1.11.0.
Fixed- Release pipeline:
[Unreleased]link inCHANGELOG.mdnow tracks the latest released tag, satisfying thechangelog-linkstest that gates theReleaseworkflow. Without this, every bump that forgot to update the link would silently skip AMO publish.
Codice sorgente rilasciato sotto licenza Solo GNU General Public License v3.0
- Release pipeline:
Versione 1.11.0
Rilasciato 26 apr 2026 - 149,51 kBCompatibile con firefox128.0 e successive, android128.0 e successiveAdded- Popup now surfaces when MUGA preserved a third-party creator's affiliate tag on the current URL. New "Creator referral preserved" badge inside the preview section, with a tooltip explaining the policy. Fires regardless of whether the URL was otherwise modified — including on URLs MUGA leaves untouched. Wedge of "fair to creators" made tangible. New cleaner result field
preservedAffiliateexposing{ param, value, store, group }. Independent of the existingnotifyForeignAffiliatetoast preference: this is a passive UI signal, not a notification. New i18n keyspreview_preserved_creatorandpreview_preserved_creator_hintin en/es/pt/de. (#327) - New collaborative report link in the popup: "Still see tracking? Help us improve" (i18n key
report_unclean_url). Visible only when MUGA modified the URL andshowReportButtonis on, alongside the existing "Report a problem with this URL" link. Opens a pre-filled GitHub issue taggedunclean-urlwith hostname, version, browser and the params MUGA already removed — never the full URL or query string. Same zero-network, no-new-permissions model as the broken-site report. Feeds the remote-rules catalog with real-world misses. (#271)
Codice sorgente rilasciato sotto licenza Solo GNU General Public License v3.0
- Popup now surfaces when MUGA preserved a third-party creator's affiliate tag on the current URL. New "Creator referral preserved" badge inside the preview section, with a tooltip explaining the policy. Fires regardless of whether the URL was otherwise modified — including on URLs MUGA leaves untouched. Wedge of "fair to creators" made tangible. New cleaner result field
Versione 1.10.2
Rilasciato 24 apr 2026 - 148,05 kBCompatibile con firefox128.0 e successive, android128.0 e successiveChanged- Options page: the "Remote rule updates" section now appears before the "Advanced" block, so Advanced remains the last section on the page.
- Remote-rules copy softened to reflect the on-wake refresh model introduced in 1.10.1: "Enable rule updates" (toggle) and "Periodically checks for signed updates… about once a week, while you browse" (description). No behavioral change — the max cadence is still ~7 days.
Added- Popup now reacts live to settings changes. Toggling MUGA on/off, or adding the current domain to the per-domain-disable list (blacklist entries of the form
domain::disabled), updates the preview without reopening the popup. The trigger is both an optimistic in-popup re-render on the enabled-toggle click AND achrome.storage.onChangedlistener that catches changes made from the Options page in another tab. - Distinct popup status when MUGA is globally active but the current site is on the per-domain-disable list. Previously only "MUGA is disabled" (global) was shown; now "MUGA is disabled on this site" surfaces the per-domain state. New i18n key
muga_disabled_for_domainin all four locales.
Codice sorgente rilasciato sotto licenza Solo GNU General Public License v3.0
Versione 1.10.1
Rilasciato 24 apr 2026 - 146,86 kBCompatibile con firefox128.0 e successive, android128.0 e successiveChanged- Remote rule updates no longer require the
alarmspermission. The weekly refresh now piggybacks on natural service-worker wake events (browser startup, page visits, popup messages) and is throttled by a storedfetchedAttimestamp — at most one fetch per 7 days, short-circuited immediately when the feature is off. This drops one permission from the manifest without changing the opt-in default or the privacy posture.
Removedalarmspermission frommanifest.jsonandmanifest.v2.json.
Codice sorgente rilasciato sotto licenza Solo GNU General Public License v3.0
- Remote rule updates no longer require the
Versione 1.10.0
Rilasciato 24 apr 2026 - 146,4 kBCompatibile con firefox128.0 e successive, android128.0 e successiveAdded- Optional weekly updates for the tracking parameter list, off by default. Ed25519-signed payloads fetched from a public GitHub Pages endpoint (
https://yocreoquesi.github.io/muga/rules/v1/params.json). Enable in Settings → Remote rule updates. Zero outbound requests on a default install. Seedocs/transparency.html. (#270)
Codice sorgente rilasciato sotto licenza Solo GNU General Public License v3.0
- Optional weekly updates for the tracking parameter list, off by default. Ed25519-signed payloads fetched from a public GitHub Pages endpoint (
Versione 1.9.10
Rilasciato 13 apr 2026 - 120,12 kBCompatibile con firefox128.0 e successive, android128.0 e successiveFixed- Firefox TDZ:
_contentPrefsdeclarations hoisted to top of the content script IIFE so early-firing event handlers (copy, click, runtime.onMessage) can no longer reference them before initialization (#298) - Security:
navigate()now enforces the 2000-char URL length cap before parsing - Security: hostname extraction in the affiliate toast wrapped in
safeHostname()— malformed URLs no longer throw inside event handlers
Added- Static-analysis regression tests asserting
_contentPrefs/_contentPrefsPendingdeclarations stay above any reader and within the first 120 lines ofcleaner.js
Codice sorgente rilasciato sotto licenza Solo GNU General Public License v3.0
- Firefox TDZ:
Versione 1.9.9
Rilasciato 10 apr 2026 - 118,63 kBCompatibile con firefox128.0 e successive, android128.0 e successiveFixed- Security: add URL payload length limit, reject non-HTTP schemes, harden sanitizeHTML
- Robustness: cache version counter prevents stale prefs, time-based rewrite loop eviction
- Firefox MV2: shim chrome.runtime.sendMessage, deduplicate browser-polyfill loading
- MutationObserver ping blocking debounced via requestAnimationFrame
- Document silent .catch() handlers in content scripts
- Safe manifest swap script with trap-based restoration
Added- Automated Firefox AMO submission on tag push
- Automated Chrome Web Store submission on tag push
- README: Chrome Web Store install badge (no longer "Coming soon")
Codice sorgente rilasciato sotto licenza Solo GNU General Public License v3.0
Versione 1.9.6
Rilasciato 5 apr 2026 - 110,59 kBCompatibile con firefox128.0 e successive, android128.0 e successiveVersion 1.9.6
Fixes:
- Click handler no longer intercepts all link clicks. Only intercepts clicks to affiliate store domains. Non-affiliate clicks pass through unmodified, preserving SPA navigation on YouTube, forums, and all other sites.
- Click, copy, and self-clean handlers now check if the extension is enabled before any interception. Extension is fully inert when disabled.
- Prefs loaded eagerly at content script init for synchronous access.
852 passing tests. No permission changes.Codice sorgente rilasciato sotto licenza Solo GNU General Public License v3.0
Versione 1.9.4
Rilasciato 1 apr 2026 - 109,57 kBCompatibile con firefox128.0 e successive, android128.0 e successiveVersion 1.9.4
Changes in this version:
- Consent gate: extension is now fully disabled (no URL processing, popup blocked, options redirected) until the user accepts the Terms of Use in onboarding. Enforcement points: service-worker.js (handleProcessUrl), popup.js (consent-gate overlay), options.js (redirect), content/cleaner.js (ping blocking).
- 120+ new domain-specific tracking parameters (Amazon, Facebook, TikTok, Google, LinkedIn, Reddit, eBay, YouTube, Spotify, Netflix, NYTimes, BBC, AliExpress, Bing, Yahoo, Twitter/X, Etsy). Sourced from ClearURLs, AdGuard Filter 17, Neat-URL, and Mozilla's built-in strip list.
- 5 new Shopify recommendation tracking params (pr_prod_strat, pr_rec_id, pr_ref_pid, pr_rec_pid, pr_seq) added to global tracking list.
- Fixed: double onboarding tab caused by both onInstalled and fallback IIFE opening tabs. Now uses a dedup flag (openOnboardingOnce).
- Fixed: Promise shim (shimChromePromises in storage.js) was probing each API call by invoking it without a callback. For side-effectful methods like chrome.tabs.create, this executed the action twice. Now detects environment once at startup.Codice sorgente rilasciato sotto licenza Solo GNU General Public License v3.0
Versione 1.9.2
Rilasciato 1 apr 2026 - 106,49 kBCompatibile con firefox140.0 e successive, android140.0 e successiveVersion 1.9.2
Changes in this version:
- Redesigned onboarding (privacy-first messaging, 3 features)
- Affiliate redirect unwrapping (Awin, Admitad, ShareASale, VigLink, Tradedoubler)
- Strip awc/wt_mc from redirect-based affiliate networks
- Fix collapsible store groups in Settings
- Rename "Report broken site" to "Report a bug or suggest an improvement"
- 730 passing tests
No permission changes from previous versionCodice sorgente rilasciato sotto licenza Solo GNU General Public License v3.0
Versione 1.8.0
Rilasciato 29 mar 2026 - 99,61 kBCompatibile con firefox140.0 e successive, android140.0 e successiveCodice sorgente rilasciato sotto licenza Solo GNU General Public License v3.0