Three iPhone simulator suites passed yesterday: 124 tests for BillQuill, 148 for Vestloop, and 137 for NightHours. That is 409 passing tests. NightHours also skipped six StoreKit cases on iOS 26.5 because that runtime does not hand the test configuration to storekitd; the same StoreKit cases passed separately on iOS 17.5. After those runs, ordinary persistent-state walkthroughs found one open defect in each app.
| App | Green suite | Persistent-state sequence | Finding |
|---|---|---|---|
| BillQuill | 124 passed | Complete ordinary first-run setup, continue without relaunching, then relaunch. | The profile saved, but the setup screen could stay visible. Relaunch opened the correct saved profile. |
| Vestloop | 148 passed | Create the first backup and follow the required recovery-code confirmation. | The recovery sheet and Files exporter were presented together. The sheet won, and the exporter never appeared. |
| NightHours | 137 passed, 6 runtime-gated | Interrupt a drive before one displayed minute, recover it, and save it. | The drive could save as 0 minutes and still consume one of the five free drive slots. |
The green runs prove the assertions they executed. They did not settle what remained visible after a successful first save, which presentation survived when two system surfaces were requested together, or whether a boundary value changed a free-tier counter. The walkthroughs tested those sequences directly.
- Step 01
Start with truly fresh app data
Complete the real first-run path without seeded records or launch overrides. After the first save, keep using the app before relaunching it. Compare the visible state before and after relaunch.
- Step 02
Cross every presentation boundary
When a flow moves from an in-app sheet to Files, Photos, Share, Print, or another system surface, verify the final surface is actually visible after the in-app confirmation closes.
- Step 03
Use boundary inputs against quotas
Interrupt an action just below the smallest displayed unit. Save it, then check the stored value, the visible value, and any free-tier counter that changed.