Latest verified handoff status (2026-07-21): the full monetization stack is now integrated: backend via
#522 into
dev (plus fixes #523/#524), admin via
#168 into
dev, and iOS via
#317 into
develop (including #309/#311/#312). The original “15 PRs, none merged” snapshot below is historical and has been superseded.
🛠 Offer-ladder dismissal fix pushed: iOS branch fix/offer-ladder-dismiss-pop, commit c6305160. It prevents sheet swipes from bypassing the ladder, routes Close through standard → save50 → save65 → dismiss, and refuses to show standard pricing as a fake discount when an exact RevenueCat offering is missing.
⚠️ Required before the discount screens can visibly appear: create exact RevenueCat offerings save50 and save65, attach valid App Store products/packages and paywalls, merge the dismissal-fix branch, upload a new build, and run the sandbox sequence. Until those exact offerings exist, the client safely skips unavailable discount stages.
Historical implementation snapshot (2026-07-20; now merged as noted above): backend entitlement + quota + enforcement engine complete & hardened; grandfathering does both cohorts
and hand-picked users (+ audit); iOS has the full Phase-4 surface — the
offer-stage rescue ladder, entitlement gates, trial banner, usage nudges, and live per-meter balances. On top of that foundation, the
Pro creator features are now built too — creator export (transcript / script / audio), advanced transcript tools (search / tap-to-seek / copy), source monitoring (backend foundation + iOS Sources screen +
pro_sources paywall), DB-driven plan config + a plan-config editor UI, and soundscape per-tier cataloging. All remain
observe-only / capability-gated / flag-gated / dark until configuration and rollout are completed. The billing foundation's review comments were fixed and its recorded validation was
356 unit tests passing together (Xcode 26.5).
↗ Backend #514 quota/enforcement → dev 17
↗ Backend #515 grandfathering (cohort + users + audit) → dev 4
↗ Admin #163 grants + multi-select + audit → dev 11
↗ iOS #309 plan contract → develop 9
↗ iOS #311 offer ladder → develop 6
↗ iOS #312 Phase 4 (gates/trial/nudges/balances) → develop 12
🆕 Newest round — Pro creator features (new stack, all observe-only / capability-gated / dark):
↗ Backend #518 creator export (transcript/script/audio)
↗ iOS #313 export UI
↗ iOS #314 advanced transcript (search/seek/copy)
↗ Backend #520 source-monitoring foundation
↗ iOS #315 Sources screen + pro_sources paywall
↗ Backend #519 DB-driven plan config + API
↗ Admin #166 plan-config editor UI
↗ Backend #521 soundscape per-tier cataloging
↗ Admin #167 soundscape tier UI
Billing foundation (prior round): offer-stage rescue ladder (standard→50%→65% downsell, persists & resumes, resets on purchase, commits a stage only after its offering loads); select individual users → bulk grandfather from the admin Users page + a grandfathering audit page; backend grandfather-by-user-IDs + campaign audit; iOS gates (transcript/speed/soundscape/explore-time/file size+count), trial countdown banner, usage nudges, and Plan & Billing on live balances.
✅ Review comments — all addressed, re-reviews green: #514/#515 backend P1/P2 (atomicity, idempotency, filter hash, @-domain, require-filters 400, past-expiry); #309 decode/trial/coverage; #163 grant-mutation gate (security); #311 ladder P1s (commit-after-load, re-entrancy guard, no-loaded-signal-while-busy); #312 (live trial clock, nudge animation, reserved-aware balance). #311 & #312 Greptile re-reviews now COMPLETED / SUCCESS with no open comments.
⏭ What's left: merge the iOS dismissal fix c6305160 → finish product sign-offs → create the App Store + RevenueCat catalog (including exact save50 / save65 offerings) → configure paywalls/placements and production webhook → upload a new build → run sandbox lifecycle QA → flip enforcement flags gradually. Still deferred/unbuilt: the source-monitoring polling / auto-generation pipeline and sound-effects cataloging.