forked from Mike/freno-dev
marketing: correct the /privacy copy against the FRE-333 inventory
FRE-333's egress inventory landed after this patch was first written, and its own §G proposed a page text. This is that text corrected against the inventory it cites, six differences, each forced by a row: - the opening no longer says prompts are "never sent to us" (sealed frames transit our relay; a remote machine carries them by design) - (d) Weather states that it registers with the relay even with Phone off, and that a licensed Mac presents its license key there - SidecarController.weather() goes through the same relayCredential(licenseKey:) as the phone path - (a) adds /deactivate (key + UUID) and the trial email (email + UUID, once) - (i) stops saying a trial email delivers a license key; it is one reminder before the trial ends, the key is issued at checkout - (b) keeps today's build (on every launch, no off switch, IP + macOS username); the opt-in form is the Contingency swap, so the page is true on the build it deploys with - (j) carries the CTO's FRE-322 §2 code fact, with the remote-machine exception; he may still cut it Page file untouched, nothing published. Patch re-checked with git apply --check and parse-checked with esbuild; the site's own suite is `bun test` and this host has no bun, so that stays an apply-time obligation. Verification is FRE-354; the Sentry opt-in is proposed as FRE-355.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
diff --git a/src/routes/nook/privacy.tsx b/src/routes/nook/privacy.tsx
|
||||
index da0cc1d..6a0acc0 100644
|
||||
index da0cc1d..f357ded 100644
|
||||
--- a/src/routes/nook/privacy.tsx
|
||||
+++ b/src/routes/nook/privacy.tsx
|
||||
@@ -1,9 +1,17 @@
|
||||
@@ -23,7 +23,7 @@ index da0cc1d..6a0acc0 100644
|
||||
*/
|
||||
import { buildMainSiteUrl } from "~/lib/subdomain-url";
|
||||
import { PageHead } from "~/components/PageHead";
|
||||
@@ -21,39 +29,109 @@ export default function NookPrivacyPolicy() {
|
||||
@@ -21,39 +29,118 @@ 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>
|
||||
@@ -60,9 +60,12 @@ index da0cc1d..6a0acc0 100644
|
||||
+ the app; the device name is so you can recognize the Mac among
|
||||
+ your activations. While you are on the trial, this is sent at
|
||||
+ each launch. Once you are licensed, each launch re-checks only
|
||||
+ that your key has not been revoked. These calls fail open: with
|
||||
+ no connection, the app keeps working, because license
|
||||
+ verification itself is offline.
|
||||
+ that your key has not been revoked. Deactivating a Mac sends the
|
||||
+ license key and that Mac's UUID. If you add an email during
|
||||
+ the trial, that request carries the email and the UUID, and it
|
||||
+ is sent once. All of these calls fail open: with no connection,
|
||||
+ the app keeps working, because license verification itself is
|
||||
+ offline.
|
||||
+ </div>
|
||||
+ <div class="pb-2">
|
||||
+ <div class="-ml-6">(b) Crash and error reporting:</div> Crash
|
||||
@@ -92,7 +95,9 @@ index da0cc1d..6a0acc0 100644
|
||||
+ rounded to a 0.1° grid — about 11 km — and the rounding happens
|
||||
+ on your Mac before anything is sent. The Weather module
|
||||
+ registers with the relay for this even if you never turn on the
|
||||
+ phone connection. "My Location" asks macOS for your
|
||||
+ phone connection, and on a licensed Mac that registration
|
||||
+ presents the license key, exactly as the phone connection's
|
||||
+ does. "My Location" asks macOS for your
|
||||
+ approximate position, and naming or searching for a place uses
|
||||
+ Apple's Maps service, so Apple sees those lookups. Neither
|
||||
+ feature sends us your precise location.
|
||||
@@ -134,9 +139,10 @@ index da0cc1d..6a0acc0 100644
|
||||
- checkout is used to deliver your license key and to look up your
|
||||
- order.
|
||||
+ <div class="-ml-6">(i) Your email and payment:</div> The email
|
||||
+ you give at trial start or checkout delivers your license key
|
||||
+ and looks up your order. Payments are processed by Stripe; we
|
||||
+ never see or store your card details.
|
||||
+ you give at checkout delivers your license key and looks up your
|
||||
+ order. An email you add during the trial is used for one
|
||||
+ reminder before the trial ends. Payments are processed by
|
||||
+ Stripe; we never see or store your card details.
|
||||
</div>
|
||||
<div class="pb-2">
|
||||
- <div class="-ml-6">(d) Payment:</div> Payments are processed by
|
||||
@@ -144,15 +150,18 @@ index da0cc1d..6a0acc0 100644
|
||||
+ <div class="-ml-6">(j) What does not leave your Mac:</div> The
|
||||
+ hook and the bridge that connect your agents to The Nook talk to
|
||||
+ nothing but your Mac — the hook dials the local bridge socket,
|
||||
+ and the bridge only listens. The exception is deliberate and
|
||||
+ yours: if you add a remote machine, the hook on that machine
|
||||
+ dials this Mac, and that is the one case where agent traffic
|
||||
+ crosses the network. The privileged helper that controls fans
|
||||
+ and charging has no networking code at all.
|
||||
+ and the bridge only listens. Two paths carry agent data across
|
||||
+ the network, and both are switched on by you: if you add a
|
||||
+ remote machine, the hook on that machine dials this Mac over
|
||||
+ SSH; and if you use the phone connection, the session updates,
|
||||
+ approvals and replies described in (c) travel through the relay,
|
||||
+ sealed end to end.
|
||||
+ The privileged helper that controls fans and charging has no
|
||||
+ networking code at all.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -63,9 +141,11 @@ export default function NookPrivacyPolicy() {
|
||||
@@ -63,9 +150,11 @@ export default function NookPrivacyPolicy() {
|
||||
<span class="-ml-4 pr-2">2.</span> How We Use It
|
||||
</div>
|
||||
<div class="pb-2 pl-4">
|
||||
@@ -167,7 +176,7 @@ index da0cc1d..6a0acc0 100644
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -74,9 +154,11 @@ export default function NookPrivacyPolicy() {
|
||||
@@ -74,9 +163,11 @@ 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