Name Apple and Google on the metadata and privacy pages #225

Merged
paulhitt merged 1 commits from docs/what-the-platform-sees into main 2026-09-25 14:26:34 +00:00
paulhitt commented 2026-09-25 13:58:48 +00:00 (Migrated from gitlab.com)

Apple and Google each learn something about this app that no amount of protocol design removes, and neither page said so. The privacy policy named no third party at all, which for a privacy policy is a gap rather than a stylistic choice.

What the pages now say

  • Apple reviews and distributes the iOS build and carries its wake-ups. The wake-up holds the fixed words "Flamenet" and "New message", a sound, and at most a count of waiting envelopes: never a sender, never a thread, never any content.
  • Google is not in the delivery path. The Android app has no Firebase, no Play Services and no push service, and holds its own connection instead. What Google can still see is that the app is installed, because Play Protect scans every app on a certified device whichever way it arrived.
  • From 2027, Google intends to require a registered identity, package name and signing key before an app installs smoothly on a certified device. Four countries from 30 September 2026, the rest from 2027. An unregistered developer's app stays installable after a one-time device setup that includes a 24-hour wait.

Which way this project answers that last point is left open deliberately. The page says it will state the answer; it does not pre-announce one.

The Signal comparison is stated whole

Signal prefers Google's FCM where Play Services exist and falls back to its own socket where they do not, and on iOS Apple occupies exactly the position that paragraph describes Google occupying for Signal on Android. Stating only the first half would have flattered this project by omission, which is precisely the mistake the comparison table already made once about phone numbers. Verified from Signal's own repository, not from a news write-up.

Tests

PlatformDisclosureTests renders all four pages. Nothing rendered the Spanish ones before: PublicPagesTests reads those templates as text, which catches a broken link and not a template that fails to render. One test pins the fairness of the Signal paragraph and fails if a future edit trims it to the flattering half.

Falsified both ways: renaming the Spanish heading fails naming /es/privacy, and cutting "falls back to its own socket" fails the fairness pin.

The APNs payload needed no new test. Three files already pin it, one asserting the alert is exactly title Flamenet and body New message with the badge as the only addition, so the metadata page's existing "held still by a test, not a promise" is literally true.

Copy

Ran the de-slop pass before landing. The draft had used one construction four times across the four files, twice in the exact shape of "flag it rather than let you discover it later", which advertises forthrightness instead of disclosing anything. Cut, with a performed-fairness frame and two "at all" intensifiers. The 2027 paragraph also had its two dates in the wrong order and read as a contradiction.


754 tests in 78 suites, no failures.

🤖 Generated with Claude Code

Apple and Google each learn something about this app that no amount of protocol design removes, and neither page said so. The privacy policy named **no third party at all**, which for a privacy policy is a gap rather than a stylistic choice. ### What the pages now say - **Apple** reviews and distributes the iOS build and carries its wake-ups. The wake-up holds the fixed words "Flamenet" and "New message", a sound, and at most a count of waiting envelopes: never a sender, never a thread, never any content. - **Google** is not in the delivery path. The Android app has no Firebase, no Play Services and no push service, and holds its own connection instead. What Google can still see is that the app is installed, because Play Protect scans every app on a certified device whichever way it arrived. - **From 2027**, Google intends to require a registered identity, package name and signing key before an app installs smoothly on a certified device. Four countries from 30 September 2026, the rest from 2027. An unregistered developer's app stays installable after a one-time device setup that includes a 24-hour wait. Which way this project answers that last point is left open deliberately. The page says it will state the answer; it does not pre-announce one. ### The Signal comparison is stated whole Signal prefers Google's FCM where Play Services exist **and** falls back to its own socket where they do not, and on iOS Apple occupies exactly the position that paragraph describes Google occupying for Signal on Android. Stating only the first half would have flattered this project by omission, which is precisely the mistake the comparison table already made once about phone numbers. Verified from Signal's own repository, not from a news write-up. ### Tests `PlatformDisclosureTests` renders all four pages. Nothing rendered the Spanish ones before: `PublicPagesTests` reads those templates as **text**, which catches a broken link and not a template that fails to render. One test pins the fairness of the Signal paragraph and fails if a future edit trims it to the flattering half. Falsified both ways: renaming the Spanish heading fails naming `/es/privacy`, and cutting "falls back to its own socket" fails the fairness pin. The APNs payload needed no new test. Three files already pin it, one asserting the alert is exactly title `Flamenet` and body `New message` with the badge as the only addition, so the metadata page's existing "held still by a test, not a promise" is literally true. ### Copy Ran the de-slop pass before landing. The draft had used one construction four times across the four files, twice in the exact shape of "flag it rather than let you discover it later", which advertises forthrightness instead of disclosing anything. Cut, with a performed-fairness frame and two "at all" intensifiers. The 2027 paragraph also had its two dates in the wrong order and read as a contradiction. --- **754 tests in 78 suites, no failures.** 🤖 Generated with [Claude Code](https://claude.com/claude-code)
paulhitt (Migrated from gitlab.com) merged commit f2027fb551 into main 2026-09-25 14:26:34 +00:00
paulhitt commented 2026-09-25 14:26:35 +00:00 (Migrated from gitlab.com)

mentioned in commit f2027fb551

mentioned in commit f2027fb551815ad93e7a0bd6f3c1bdccff090ce9
Sign in to join this conversation.