Skip to content

v0.24.0

Choose a tag to compare

@vasilyoshev vasilyoshev released this 25 Sep 12:41
6fc470b

0.24.0 (2026-09-25)

Features

  • capture: the capture job seeds a staging account itself, behind an allowlist that fails closed (#2730) (#2749) (b1d49d5)
  • db: drop record_days (#2459) (#2720) (8248142)
  • modules: the module gate and the three explainer pages fail together, and the readiness bar moves to where the lifter reads (#2716) (122aa51)
  • policies: redden when production holds a policyVersion that main does not ship (#2737) (#2739) (9d2ee48)
  • privacy: §8 names what a programme leaves behind, in en and bg (#2554) (#2611) (625868e)
  • releasing: one hold-out register, a merge gate that makes a hold-out findable, and a weekly alarm when its condition comes true (#2717) (5be1270)
  • reminders: the general and DBT reminders start arriving - the hold-out list is empty for the first time (#2698) (7b64e96)
  • review: the App Review account gets an owner-only production seed and a weekly staleness alarm (#2731) (#2750) (3069fa7)
  • routines: the six DBT tools become routine steps - the write hold-out is lifted (#2713) (7bc7ca8)
  • store: the App Store release notes get a file, a corpus join and a README row (#2604) (#2634) (5413345)
  • store: the Play feature graphic loses beat two, and its README stops citing a retired clause (#2610 item 10) (#2637) (52a9f27)

Bug Fixes

  • a11y: the modal Escape rendered under the status bar, because SafeAreaView measures zero in a Modal (#2650) (3a83b54)
  • auth: the age gate's Continue sat under the keyboard, because nothing padded for it (#2649) (6531c8f)
  • ci: recover from the two flakes that have cost the iPad half its runs (#2651) (2270d58)
  • ci: the App Store capture job stops reporting into production Sentry as a user (#2726) (#2727) (f0f551c)
  • ci: the capture flow reaches sign-in by deep link, and the phone's age gate actually submits (#2645) (adf7bd7)
  • ci: the capture job's flake fixes land, and its header stops saying it cannot capture (#2704) (6007a55)
  • ci: the dormant screenshot flow is corrected to the decided five (#2610 item 16) (#2642) (a3ab320)
  • ci: the screenshot flow predated the age gate, and that was the real blocker (#2610 item 16 follow-up) (#2644) (ba8bfc0)
  • sentry: screen the spoofed device farm in beforeSend, because Sentry cannot filter it inbound (#2577) (#2612) (8dcfbd5)
  • sound: the web bed plays again - require() of an audio file is a URL string on web (#2509) (#2748) (a42a724)