Highlights
Give specific sites their own location with Per-site locations, and add whole site groups (like all of Google's sites), exact addresses or lists from a link to your Allowlist or Denylist (Firefox and Chrome). The Filters tab is now Sites, Settings has been redesigned, and Location Precision is now Randomize location, which can also pick a new random point every session, hour or day. This release also covers inline web workers started before settings load (#101), fixes document.lastModified with Engine-level Spoofing (#188), matches Chrome 156's timezone offsets, and adds Traditional Chinese.
Upgrade impact: None. Update normally; your settings and lists carry over.
What's Changed
- Attach provenance bundle to releases; upload-artifact v5 by @anthonysgro in #145
- CI hardening: Dependabot audit, release split by privilege, zizmor by @anthonysgro in #146
- Run AMO signing in the tag-only release environment by @anthonysgro in #150
- Attach and attest a CycloneDX SBOM on every release by @anthonysgro in #152
- Stop the geolocation override from calling the page's Math.random by @anthonysgro in #153
- Relicense to Apache-2.0 (copyright GeoSpoof LLC) by @anthonysgro in #156
- Document repo security and maintenance; current release steps by @anthonysgro in #157
- Require a Highlights paragraph in every release's notes by @anthonysgro in #158
- Update tr46 version references to 7.0.0 by @anthonysgro in #162
- cdk: scope CDN publish roles to release tags and main by @anthonysgro in #163
- build: ignore dependency install scripts in npm by @anthonysgro in #164
- feat(precision): pick a new approximate point on a cadence by @anthonysgro in #166
- Privacy policy: disclose the app's Apple Maps search by @anthonysgro in #167
- feat(cdk): APNs relay for Live Activity push by @anthonysgro in #175
- feat: Site locations (per-site location overrides) by @anthonysgro in #178
- chore(popup): drop the cadence explanation hint by @anthonysgro in #179
- fix(popup): quieter Site locations UI (#177 follow-up) by @anthonysgro in #180
- fix(popup): call Site locations "Per-site locations" by @anthonysgro in #181
- Serve the prod APNs relay on push.geospoof.com by @anthonysgro in #193
- fix: harden per-site locations across browsers and the popup by @anthonysgro in #202
- fix(timezone): accept hyphenated IANA zones and GMT by @anthonysgro in #200
- feat(app-bridge): push the region once when the app asks by @anthonysgro in #201
- fix(timezone): match Chrome 156's fractional getTimezoneOffset by @anthonysgro in #203
- build(deps): patch undici, node-forge and fast-uri in dev tooling by @anthonysgro in #204
- fix: order settings writes and deliveries with a settings revision by @anthonysgro in #205
- fix(engine-level): cover cross-origin iframes and lastModified by @anthonysgro in #207
- docs(privacy): describe purchase records kept by the site by @anthonysgro in #208
- chore(security): clear zizmor #28, record accepted advisories by @anthonysgro in #209
- feat(i18n): add Traditional Chinese (Taiwan) by @anthonysgro in #210
- docs: correct favorites cap, Engine-level and backend claims by @anthonysgro in #211
- feat(filters): site groups, exact addresses and lists from a link (#206) by @anthonysgro in #212
- fix(workers): hold early inline workers until settings arrive by @anthonysgro in #213
- chore: ignore local agent notes and worktrees by @anthonysgro in #214
- Popup: Sites tab (formerly Filters) and per-site locations redesigned (design H) by @anthonysgro in #216
- fix(popup): group the two protection toggles in one card by @anthonysgro in #217
- Popup: redesign the Settings screen by @anthonysgro in #218
- fix(popup): separate the protection toggles again; join the location and Sync with VPN by @anthonysgro in #219
- Settings: replace Location Precision with Randomize location by @anthonysgro in #220
- 2.3.0 by @anthonysgro in #221
Full Changelog: v2.2.3...v2.3.0