Six site clauses to flip when the iPhone build is approved #3

Open
opened 2026-08-31 13:43:29 +00:00 by paulhitt · 3 comments
paulhitt commented 2026-08-31 13:43:29 +00:00 (Migrated from gitlab.com)

Six clauses on the public site are written for "iPhone build not yet approved"
and need flipping the day it is:

  • Resources/Views/comparison.leaf — 5
  • Resources/Views/metadata.leaf — 1
$ grep -ic 'once apple approves\|comes to iPhone once\|not yet on iPhone' Resources/Views/*.leaf
comparison.leaf: 5
metadata.leaf:   1

Also flamenet-messenger-ios/SCOPING-v1.md carries a landing-page TODO waiting
on the TestFlight link.

⚠️ Do not flip these early. Each one is currently accurate.

Done when

  • Apple approves
  • All six reworded and deployed through the staging gate
  • SCOPING-v1.md TODO resolved
Six clauses on the public site are written for "iPhone build not yet approved" and need flipping the day it is: - `Resources/Views/comparison.leaf` — 5 - `Resources/Views/metadata.leaf` — 1 ``` $ grep -ic 'once apple approves\|comes to iPhone once\|not yet on iPhone' Resources/Views/*.leaf comparison.leaf: 5 metadata.leaf: 1 ``` Also `flamenet-messenger-ios/SCOPING-v1.md` carries a landing-page TODO waiting on the TestFlight link. ⚠️ Do not flip these early. Each one is currently accurate. ### Done when - [ ] Apple approves - [ ] All six reworded and deployed through the staging gate - [ ] SCOPING-v1.md TODO resolved
paulhitt commented 2026-08-31 13:44:49 +00:00 (Migrated from gitlab.com)

mentioned in issue #5

mentioned in issue #5
paulhitt commented 2026-09-08 18:13:29 +00:00 (Migrated from gitlab.com)

Everything that can be done before Apple is done (!97, merged and deploying).

Approval day, in full

ssh ovh
sudo sed -i 's/^\(\s*\)FN_RELAY_AUDIENCE:/\1FN_IOS_LIVE: "true"\n\1FN_RELAY_AUDIENCE:/' \
  /srv/prod/messenger/docker-compose.yaml     # or add FN_IOS_LIVE by hand
cd /srv/prod/messenger && sudo docker compose up -d --no-deps relay

Then check it took:

curl -s https://flamenetmessenger.com/comparison | grep -c 'once Apple approves'   # expect 0
curl -s https://flamenetmessenger.com/comparison | grep -c 'Both apps'             # expect 6

No code change, no deploy, no staging gate. Reversible by removing the variable.

What it flips

All seven clauses at once — six in comparison.leaf (the column marker plus the availability sentence) and one in metadata.leaf about group names. Measured on a running relay:

FN_IOS_LIVE unset FN_IOS_LIVE=true
"Android now" 6 0
"Both apps" 0 6
"once Apple approves" 6 0
metadata.leaf claims 1 0

⚠️ The issue said six clauses; there were seven. It drifted between filing and now, which is exactly why this is a flag rather than a list of line numbers — and why the test asserts every "once Apple approves" claim sits inside a gate rather than counting them. A partial flip is no longer possible.

Still to do, and not automatable

  • Apple approves
  • All clauses reworded — now one switch, deployed
  • flamenet-messenger-ios/SCOPING-v1.md TODO — needs the real TestFlight link, which does not exist yet

Leaving this open until Apple actually approves; the remaining work is the flip and the SCOPING link.

Everything that can be done before Apple is done (!97, merged and deploying). ## Approval day, in full ``` ssh ovh sudo sed -i 's/^\(\s*\)FN_RELAY_AUDIENCE:/\1FN_IOS_LIVE: "true"\n\1FN_RELAY_AUDIENCE:/' \ /srv/prod/messenger/docker-compose.yaml # or add FN_IOS_LIVE by hand cd /srv/prod/messenger && sudo docker compose up -d --no-deps relay ``` Then check it took: ``` curl -s https://flamenetmessenger.com/comparison | grep -c 'once Apple approves' # expect 0 curl -s https://flamenetmessenger.com/comparison | grep -c 'Both apps' # expect 6 ``` No code change, no deploy, no staging gate. Reversible by removing the variable. ## What it flips All **seven** clauses at once — six in `comparison.leaf` (the column marker plus the availability sentence) and one in `metadata.leaf` about group names. Measured on a running relay: | | `FN_IOS_LIVE` unset | `FN_IOS_LIVE=true` | |---|---|---| | "Android now" | 6 | 0 | | "Both apps" | 0 | 6 | | "once Apple approves" | 6 | 0 | | metadata.leaf claims | 1 | 0 | ⚠️ **The issue said six clauses; there were seven.** It drifted between filing and now, which is exactly why this is a flag rather than a list of line numbers — and why the test asserts every "once Apple approves" claim sits *inside* a gate rather than counting them. A partial flip is no longer possible. ## Still to do, and not automatable - [ ] Apple approves - [x] All clauses reworded — now one switch, deployed - [ ] `flamenet-messenger-ios/SCOPING-v1.md` TODO — needs the real TestFlight link, which does not exist yet Leaving this open until Apple actually approves; the remaining work is the flip and the SCOPING link.
paulhitt commented 2026-09-09 11:49:49 +00:00 (Migrated from gitlab.com)

The six clauses no longer say "once Apple approves", so the grep in the
description returns zero:

$ grep -ic 'once apple approves|comes to iPhone once|not yet on iPhone' \
    Resources/Views/comparison.leaf Resources/Views/metadata.leaf
comparison.leaf: 0
metadata.leaf:   0

They were reworded on 2026-09-08 when the TestFlight beta opened, and now read
"Out now on Android, and on iPhone as a TestFlight beta". That is accurate
today and does not need flipping.

What is still waiting on Apple is the final state: FN_IOS_LIVE stays OFF,
because turning it on rewrites those clauses to "Both apps" and "On Android and
iPhone", which states general availability. The trigger for this ticket is now
App Store approval, not the beta.

The six clauses no longer say "once Apple approves", so the grep in the description returns zero: ``` $ grep -ic 'once apple approves|comes to iPhone once|not yet on iPhone' \ Resources/Views/comparison.leaf Resources/Views/metadata.leaf comparison.leaf: 0 metadata.leaf: 0 ``` They were reworded on 2026-09-08 when the TestFlight beta opened, and now read "Out now on Android, and on iPhone as a TestFlight beta". That is accurate today and does not need flipping. What is still waiting on Apple is the final state: `FN_IOS_LIVE` stays OFF, because turning it on rewrites those clauses to "Both apps" and "On Android and iPhone", which states general availability. The trigger for this ticket is now App Store approval, not the beta.
Sign in to join this conversation.