Files
Richard Courtman da3ce9142c Make telemetry consent a setup choice and retire the payload banner
The setup wizard's telemetry card only ever offered a way out: it led
with "enabled by default", gave no reason the data exists, and told the
reader to set PULSE_TELEMETRY=false before starting a process that had
already sent its first ping two minutes after boot. The payload-update
banner paired "we now collect more" with a one-click Disable button, was
keyed to schema v2 from July and never re-triggered across fifteen later
bumps, and its text was rewritten in August so anyone who had dismissed
it never saw the new wording. Nothing on either surface said what the
data is for. No GitHub issue or discussion has ever complained about the
default-on posture, so the defensive framing was answering a question
nobody asked while quietly nudging people to opt out.

Setup now says what the daily summary is for, names concrete exclusions
(hostnames, credentials, IP addresses), and puts a real Usage statistics
toggle on the admin-account step. The toggle defaults to on and, when
switched off, is applied through the canonical system-settings endpoint
once the admin token exists, so there is no setup-only side channel and
the account is created either way. The env-var instruction moves to
PRIVACY.md where a reader can still act on it, alongside a note that the
first ping fires about two minutes after start.

The payload-update banner is retired along with its telemetryAction deep
link that changed the preference on arrival. Payload changes are now
disclosed in a dated changelog in PRIVACY.md (back-filled from schema v2
to v17 from the telemetry package's own version notes) and in release
notes; an in-app notice is reserved for a change in kind. Settings leads
with what the data is for and makes Preview payload the primary action,
because the exact runtime payload is the disclosure an operator can
verify. The security-privacy, deployment-installability, and
frontend-primitives contracts record the new rules, and a telemetry
proof test pins the setup choice and the changelog row for the current
schema so a future bump cannot land undisclosed.

Demand ledger: repos/pulse-pro FEATURE_REQUESTS.md "Telemetry consent as
a real setup choice" (named bet, pulse-pro PR #40).
2026-09-02 18:45:05 +01:00
..
2026-09-01 01:02:17 +01:00