privacy: name the IP address and describe the TestFlight build as it ships (FRE-1480)
CTO verdict at FRE-1480: two sentences atdb3e695were false. (b) sendDefaultPii = false does not stop Sentry receiving the connection IP (sentry-cocoa 9.26.1 sets infer_ip = auto for Cocoa; only the Sentry project's Prevent Storing of IP Addresses switch stops it) — the shipped Settings rows already say so. The IP sentence is restored. The iPhone paragraph described an opt-in build no tester has: the build in TestFlight (ios-v0.3.2, 2026-10-22) predates FRE-355 and starts Sentry on every launch with no off switch. The paragraph now says that. Header comment and marketing/drafts/privacy-page.md rows corrected to match (release range narrowed to 0.3.0-0.15.0; evidence rows record the IP and the TestFlight provenance). privacy-page.patch regenerated. Suite: merge tree ofa0e6ff1+ this branch runs the same failure set as cleana0e6ff1(2 junit failures, the known Lineage-redirect environmental pair); the host's env-validation aborts account for the count noise. Zero new failures.
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
diff --git a/src/routes/nook/privacy.tsx b/src/routes/nook/privacy.tsx
|
||||
index da0cc1d..d0fe761 100644
|
||||
index da0cc1d..db27d8c 100644
|
||||
--- a/src/routes/nook/privacy.tsx
|
||||
+++ b/src/routes/nook/privacy.tsx
|
||||
@@ -1,9 +1,33 @@
|
||||
@@ -1,9 +1,38 @@
|
||||
/**
|
||||
* The Nook privacy policy — `nook.freno.me/privacy`.
|
||||
*
|
||||
@@ -19,17 +19,22 @@ index da0cc1d..d0fe761 100644
|
||||
+ * releases v0.15.1 and later — FRE-355 (merge `6e74b261`) first shipped in
|
||||
+ * `v0.15.1` (2026-11-04), and the live appcast serves `v0.15.2`. When enabled,
|
||||
+ * Sentry receives crash and error reports, session pings, and performance
|
||||
+ * traces at a 0.1 sample rate (`tracesSampleRate = 0.1`), and no IP address is
|
||||
+ * attached (`sendDefaultPii = false`, `Sources/NookApp/main.swift` and
|
||||
+ * `Sources/NookCore/System/CrashReporting.swift`). Builds before `v0.15.1`
|
||||
+ * started Sentry on every launch with `sendDefaultPii = true` and no off
|
||||
+ * switch; this page describes the current release.
|
||||
+ * traces at a 0.1 sample rate (`tracesSampleRate = 0.1`), and it also receives
|
||||
+ * the connection's IP address (`sendDefaultPii = false` is the SDK default and
|
||||
+ * does not suppress it — sentry-cocoa 9.26.1 sets `infer_ip = auto` for Cocoa,
|
||||
+ * and only the Sentry project's *Prevent Storing of IP Addresses* switch stops
|
||||
+ * that; FRE-1480). Releases 0.3.0 through 0.15.0 started Sentry on every
|
||||
+ * launch with `sendDefaultPii = true` and no off switch; this page describes
|
||||
+ * the current release. The iPhone paragraph describes `ios-v0.3.2`
|
||||
+ * (2026-10-22, the build in TestFlight) until an `ios-v*` tag carries
|
||||
+ * FRE-355's opt-in code.
|
||||
+ *
|
||||
+ * The *Contingency* in `marketing/drafts/privacy-page.md` fired with `v0.15.1`
|
||||
+ * and is applied in this commit, with two corrections against the pre-written
|
||||
+ * swap text: the shipped build still sends session pings and traces while
|
||||
+ * enabled, so they are named (the contingency's own completeness warning), and
|
||||
+ * `sendDefaultPii = false` means the IP sentence is dropped rather than kept.
|
||||
+ * the IP sentence is kept — the pre-written swap text already had it, and
|
||||
+ * `sendDefaultPii = false` does not stop Sentry receiving the IP (FRE-1480).
|
||||
+ *
|
||||
+ * Corrected against the CTO's /privacy verdict (FRE-354): no macOS username
|
||||
+ * from Sentry (sendDefaultPii sets the IP only), session pings named, (a)
|
||||
@@ -39,7 +44,7 @@ index da0cc1d..d0fe761 100644
|
||||
*/
|
||||
import { buildMainSiteUrl } from "~/lib/subdomain-url";
|
||||
import { PageHead } from "~/components/PageHead";
|
||||
@@ -21,39 +45,141 @@ export default function NookPrivacyPolicy() {
|
||||
@@ -21,39 +50,139 @@ export default function NookPrivacyPolicy() {
|
||||
<SubdomainHeader />
|
||||
<div class="min-h-screen px-[8vw] py-[10vh]">
|
||||
<div class="py-4 text-xl">The Nook's Privacy Policy</div>
|
||||
@@ -95,9 +100,8 @@ index da0cc1d..d0fe761 100644
|
||||
+ and a sample of performance traces to Sentry, our
|
||||
+ crash-reporting processor. Each report carries the app version,
|
||||
+ the macOS version, the Mac model and what the app was doing
|
||||
+ when it failed. Your IP address is not attached to the reports.
|
||||
+ They never include your prompts, your code or your session
|
||||
+ content.
|
||||
+ when it failed. Sentry also receives your IP address. They
|
||||
+ never include your prompts, your code or your session content.
|
||||
+ </div>
|
||||
+ <div class="pb-2">
|
||||
+ <div class="-ml-6">(c) Phone connection:</div> The phone
|
||||
@@ -186,13 +190,12 @@ index da0cc1d..d0fe761 100644
|
||||
- <div class="-ml-6">(d) Payment:</div> Payments are processed by
|
||||
- Stripe. We never see or store your card details.
|
||||
+ <div class="-ml-6">The iPhone companion.</div> The iPhone and
|
||||
+ Apple Watch app is in TestFlight beta. Its crash reporting is
|
||||
+ the same opt-in: off unless you turn it on in its settings.
|
||||
+ When it is on, it sends crash reports, session pings and a
|
||||
+ sample of performance traces to Sentry — the app version, the
|
||||
+ iOS version and the iPhone model, with no IP address attached.
|
||||
+ Those reports never include your prompts, code or session
|
||||
+ content.
|
||||
+ Apple Watch app is in TestFlight beta. The build in TestFlight
|
||||
+ starts Sentry on every launch, with no setting that turns it
|
||||
+ off: it sends crash, error and hang reports, session pings,
|
||||
+ performance traces, the app version, the iOS version, the
|
||||
+ iPhone model and your IP address. Those reports never include
|
||||
+ your prompts, code or session content.
|
||||
+ Its other network traffic is the phone connection in (c) — the
|
||||
+ relay, or a direct LAN/tailnet link — plus, if you allow
|
||||
+ notifications, the push token it gives the relay so Apple can
|
||||
@@ -200,7 +203,7 @@ index da0cc1d..d0fe761 100644
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -63,9 +189,11 @@ export default function NookPrivacyPolicy() {
|
||||
@@ -63,9 +192,11 @@ export default function NookPrivacyPolicy() {
|
||||
<span class="-ml-4 pr-2">2.</span> How We Use It
|
||||
</div>
|
||||
<div class="pb-2 pl-4">
|
||||
@@ -215,7 +218,7 @@ index da0cc1d..d0fe761 100644
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -74,9 +202,13 @@ export default function NookPrivacyPolicy() {
|
||||
@@ -74,9 +205,13 @@ export default function NookPrivacyPolicy() {
|
||||
<span class="-ml-4 pr-2">3.</span> Data Security
|
||||
</div>
|
||||
<div class="pb-2 pl-4">
|
||||
|
||||
Reference in New Issue
Block a user