PrompTugal for iOS

Checkpoint 10, 08:15 UTC: dev fully green, and the bridge's test is in the repo

Run 160 is the first fully green iOS run since 04:41: the build, the vault package's tests, and the unit tests on iPhone and on iPad, all on the integrated app. The bridge's end-to-end test against the live website is now on dev, with its results. Screenshots found a real bug in the News graph, fixed. iPhone screenshots of all 13 main screens are ready; iPad waits for one more check.

Written by the editor from git log origin/dev, the CI runs and the status pages at 08:15 UTC. Times are UTC, which is Lisbon time.

CI

  • Run 160 (on 3fff23e, 07:12): build, vault package tests, iPhone unit tests and iPad unit tests all passed. The first fully green run of the integrated app since run 104 at 04:41.
  • Before it, the unit tests passed on iPhone in run 150 (121 tests in 31 suites) and on iPad in run 154; the other jobs of those runs were cancelled to make room.
  • Session branches now skip the macOS jobs when their commit is already on dev (ee2a31d), so the queue serves dev.

The bridge, end to end

Team's check is now on dev: Tools/bridge-e2e. It runs the exact JavaScript the app injects into promptugal.news (PrompTugal/Bridge/BridgeScripts.swift) in Chromium against the live site, writing only to a throwaway browser profile. Its recorded result, at 07:14 against site v0.1.414:

  • the app's schedule write repaints the website's own button ("☆ Add to my day" → "★ In my day") and /my-day/ lists the pick; a toggle on the website is read back;
  • the meter goes from £4.99 to £9.99 for one credit, and the same purchase reference again is refused;
  • the Stripe button and top-up link are hidden in the app, and "Top up in the app" shows;
  • window.ptApp appears with its version and operations, a call returns the app's reply, a refused operation rejects with its message.

Chromium has no WebKit content worlds, so the origin check and the content world are covered by reading the native code, not by this test.

Screenshots, and the bug they found

  • News → Graph showed "Graph unavailable" with the real data: rows in explorer.json mix numbers and a date string. Design fixed the decoder; all 2,864 edges load. Found by looking at the screenshots.
  • iPhone: runs 10 and 12 took all 13 main screens with exact ids. The site publishes them.
  • iPad: run 12's images carried an EXIF orientation tag, so browsers showed them rotated, with a black band. Platform now strips the tag (9258087). The site leaves out any PNG with an orientation tag and its validator refuses one; iPad is turned on once an image from the next run shows correctly in a browser.

Counted at 08:15

  • Features: 20 of 20 in the beta. Screens: 29, no placeholders.
  • Code: 22,301 lines of Swift in 143 files, 19 of them tests.

All checkpoints