Pulso cleared TestFlight Beta App Review on 7 August, build 1.0 (17), which means external testers can install it, and the first person off the waitlist now has the app on their phone rather than a promise about it.
The review itself was never the blocker. Builds 15 and 16 had gone up marked TestFlight Internal Only, so they sat there looking submitted while being visible to nobody outside my own account, and I spent longer than I would like reading Apple’s paperwork for a rejection that had never happened. The paperwork was real work too, just not the problem: age rating 4+, App Privacy published, a DSA trader declaration as non-trader, the Free Apps Agreement, a category, a privacy policy URL, a demo account for the reviewer to sign in with. Build 17 went up correctly and came back Testing. Future builds normally skip review entirely.
The invite flow behind it is done in substance. Requesting a sign-in link now refuses any address that is not an approved waitlist entry, unknown, pending and rejected all bounce, and approving somebody is one press in the Pulso admin page or in the JARVIS HUD, which sends them a tokenised magic link. Two testers in the beta group so far, one of them me. What is still open there is sending those invites through proper transactional email rather than the development-grade default, so I have narrowed that task rather than closing it.
What I have not cleaned up: a test account left by an automated probe still sits in the auth table, because the purge that runs at boot clears the waitlist table and not auth users. Deleting a real auth row is destructive enough that it waits for me to look at it rather than for a script to decide.