<!-- https://ios.app.promptugal.news/admin/releases.html · PrompTugal for iOS 0.4.106 -->

Developer area

# Release history

Each push to `dev` becomes a release: CI bumps `VERSION`, tags it and deploys this site. The current release is v0.4.106. Every app’s version is the same number without the v: the PrompTugal app is 0.4.106. CI passes it to the build, so the app, the tag and this site agree.

From git tags

## Releases, newest first

### [v0.4.106](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.106) 2026-11-15 11:52 UTC

- [`f683bad`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f683bad) briefs: going local, fold in what is settled on the web side (algarve/<town> paths, 17 places, agents draft and a person sends, who owns the web side)

### [v0.4.105](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.105) 2026-11-15 11:51 UTC

- [`d76b1ac`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d76b1ac) briefs: going local, conductor-report/v1 as VoiceDebrief reads it, plus proposed newsroom fields

### [v0.4.104](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.104) 2026-11-15 11:48 UTC

- [`b727abc`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b727abc) briefs: going local, a newsroom per city and the agents command centre (first plan)

### [v0.4.103](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.103) 2026-11-11 21:53 UTC

- [`ee29f6a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ee29f6a) ios@web-summit.silvio: brief gets the > summary line the website test requires

### [v0.4.102](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.102) 2026-11-11 21:35 UTC

- [`7d9ecbe`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7d9ecbe) Fringe: content pinned to the screen width (no sideways drift when scrolling); the offline line says why the feed did not load

### [v0.4.101](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.101) 2026-11-11 21:29 UTC

- No changes besides the version bump.

### [v0.4.100](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.100) 2026-11-11 21:24 UTC

- [`d1cffa8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d1cffa8) ios@web-summit.silvio: brief, CHAVE can unseal the key with three words (Web Crypto)
- [`16fd6dc`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/16fd6dc) ios@web-summit.silvio: RiskMandate opens the command centre full screen

### [v0.4.99](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.99) 2026-11-11 19:34 UTC

- [`a073a83`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a073a83) briefs: Fringe reply, correct the note: the conductor merged Indi's app (66a041e); ebd01a6 only adds the note
- [`ebd01a6`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ebd01a6) Merge work/appdev.indi-lisbon-tech-fringe 7bbb1ad: Indi's Lisbon Tech Fringe replaces Apps/Fringe (design E, logo 3, "Tech Fringe"); green in ios.yml run 500

### [v0.4.98](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.98) 2026-11-11 19:33 UTC

- [`fb0a26b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/fb0a26b) briefs: Fringe reply, merged after run 500
- [`7bbb1ad`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7bbb1ad) Remove the temporary Fringe check (green in its run 3: build, 21 tests passed)
- [`9057130`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9057130) Fringe tests: argument order
- [`725cd5c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/725cd5c) Fringe: change checks callable off the main actor (tests)
- [`3a8c9b9`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3a8c9b9) Temporary CI: Fringe check on the work branch, errors last in the log
- [`5be8bde`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5be8bde) Fringe: home screen name "Tech Fringe" (Indi's choice)
- [`a18ccaf`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a18ccaf) Brief: handover note to conductor.B on Indi's app in Apps/Fringe and the missing App Store Connect record
- [`8872dbb`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8872dbb) Fringe: replace the app with Indi's Lisbon Tech Fringe (design E), logo 3
- [`233e29a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/233e29a) Lisbon Tech Fringe: Indi's app (design E) in Apps/LisbonTechFringe

### [v0.4.97](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.97) 2026-11-11 18:55 UTC

- [`9355bf3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9355bf3) briefs: Fringe, reply to Indi's session (App Store Connect record exists, run 498 errors, the merge bar); add the stop report's summary line so the site builds again

### [v0.4.96](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.96) 2026-11-11 14:56 UTC

- [`1a01c95`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1a01c95) Fringe: Communities, an In Lisbon toggle (on by default), a Major badge, seed refreshed to 173 events
- [`087efd1`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/087efd1) Fringe: read lisbontechfringe.com (events, Join, Submit, About); the old host is dropped from the allow-list

### [v0.4.95](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.95) 2026-11-11 13:22 UTC

- [`998b5dc`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/998b5dc) Fringe: 'Moved by the storm' filter and a Today / Tomorrow / weekday control on Events

### [v0.4.94](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.94) 2026-11-11 12:51 UTC

- [`5d97041`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5d97041) PTFringe: read the served events.json (ISO times, id, cost, label, storm_moved, check); seed refreshed to 69 live events

### [v0.4.93](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.93) 2026-11-11 12:18 UTC

- [`e598bbf`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e598bbf) My plan in Fringe's words: MyProgramView takes optional wording (pt.news text unchanged)
- [`a551896`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a551896) ios.yml: fringe in the manual app choice
- [`0914822`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0914822) PTFringe: only the name is required; apps.json fringe testflight true
- [`ed6e377`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ed6e377) apps.json: PTFringe depends on PTCore only; the fringe app lists PTAgenda and PTFringe (as apps' branch has it)
- [`d0d2345`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d0d2345) Lisbon Fringe: the app (Apps/Fringe) and PTFringe (events, store, seed), apps.json entry
- [`94b3774`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/94b3774) Fringe, the fourth app: apps.json entry (key fringe, Apps/Fringe, bundle news.promptugal.fringe, TestFlight on) and the workflows
- [`a06f25d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a06f25d) Platform status: Event.showsAs green (run 420)

### [v0.4.92](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.92) 2026-11-11 10:45 UTC

- [`0b08172`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0b08172) conductor.B@ios.PrompTugal.dinis: brief: the Lisbon Fringe iOS app (a fourth app, internal TestFlight), at Dinis's word

### [v0.4.91](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.91) 2026-11-11 00:20 UTC

- [`4eea05a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4eea05a) conductor-newsapp@web-summit.indi: build 587 submitted for Beta App Review and in the external group

### [v0.4.90](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.90) 2026-11-11 00:17 UTC

- [`fc5e9c9`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/fc5e9c9) conductor-newsapp@web-summit.indi: please send PrompTugal 0.4.89 (587), rounds 5 and 6, to the external testers

### [v0.4.89](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.89) 2026-11-10 22:57 UTC

- [`5194b33`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5194b33) conductor-newsapp@web-summit.indi: round 6: make it pop (a red hero for For you, an interviews strip, colour, motion)

### [v0.4.88](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.88) 2026-11-10 22:29 UTC

- [`3f8f4b7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3f8f4b7) conductor-newsapp@web-summit.indi: round 5: light mode, articles open natively, interviews with Article and Transcript pills

### [v0.4.87](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.87) 2026-11-10 22:26 UTC

- [`3d1acfb`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3d1acfb) conductor-newsapp@web-summit.indi: Wednesday called off: its sessions leave Now, Explore, My program and the reminders

### [v0.4.86](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.86) 2026-11-10 22:17 UTC

- [`8d75d43`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8d75d43) conductor-newsapp@web-summit.indi: a notice at the top of Now, read from promptugal.news (Storm Charles first)

### [v0.4.85](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.85) 2026-11-10 17:11 UTC

- [`072928e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/072928e) conductor-newsapp@web-summit.indi: build 579 (videos) submitted for Beta App Review and in the external group

### [v0.4.84](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.84) 2026-11-10 16:47 UTC

- [`5ee6b9e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5ee6b9e) conductor-newsapp@web-summit.indi: please send PrompTugal 0.4.81 (579), the videos in News, to the external testers

### [v0.4.83](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.83) 2026-11-10 16:05 UTC

- [`0620af4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0620af4) conductor-newsapp@web-summit.indi: build 575 submitted for Beta App Review and in the external group

### [v0.4.82](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.82) 2026-11-10 16:02 UTC

- [`9452abc`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9452abc) conductor-newsapp@web-summit.indi: please send PrompTugal 0.4.78 (575), the softer look, to the external testers

### [v0.4.81](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.81) 2026-11-10 15:56 UTC

- [`f5b04cd`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f5b04cd) conductor-newsapp@web-summit.indi: videos fix: "the videos" for the loading state (videos and Videos made the same symbol)

### [v0.4.80](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.80) 2026-11-10 15:43 UTC

- [`201d269`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/201d269) conductor@web-summit.dinis: brief: the news app's default theme becomes The Front Page (design E), at Dinis's word

### [v0.4.79](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.79) 2026-11-10 15:18 UTC

- [`6c8ccd0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6c8ccd0) conductor-newsapp@web-summit.indi: videos in the app: watch promptugal.news's interview videos in News, natively

### [v0.4.78](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.78) 2026-11-10 14:55 UTC

- [`39e2061`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/39e2061) conductor-newsapp@web-summit.indi: round 3: Good morning, Good afternoon or Good evening, by the time in Lisbon
- [`e6de99b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e6de99b) conductor-newsapp@web-summit.indi: round 3 fix: the Look flag is isSoft (soft was both a case and a flag)
- [`8e08085`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8e08085) conductor-newsapp@web-summit.indi: round 3: "Good morning" on Now, and the widget in the softer look
- [`7551443`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7551443) conductor-newsapp@web-summit.indi: news app redesign, round 3: a softer, less formal look for the public app

### [v0.4.77](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.77) 2026-11-10 13:17 UTC

- [`42d2962`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/42d2962) conductor-newsapp@web-summit.indi: build 562 submitted for Beta App Review and in the external group

### [v0.4.76](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.76) 2026-11-10 13:17 UTC

- [`8d49867`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8d49867) conductor-map@web-summit.indi: brief for the venue map
- [`ad22ebc`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ad22ebc) conductor-map@web-summit.indi: venue map in the Where tab (MapKit, our own venue.geojson)

### [v0.4.75](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.75) 2026-11-10 13:15 UTC

- [`e436f72`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e436f72) conductor-newsapp@web-summit.indi: please send PrompTugal 0.4.72 (562), redesign rounds 1, 2 and 4, to the external testers

### [v0.4.74](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.74) 2026-11-10 12:58 UTC

- [`abaec3a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/abaec3a) conductor-newsapp@web-summit.indi: build 556 submitted for Beta App Review and in the external group

### [v0.4.73](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.73) 2026-11-10 12:55 UTC

- [`4bc411b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4bc411b) conductor-newsapp@web-summit.indi: please send PrompTugal 0.4.71 (556), the redesign's round 1, to the external testers

### [v0.4.72](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.72) 2026-11-10 12:45 UTC

- [`6a1189c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6a1189c) conductor-newsapp@web-summit.indi: What to Test for the redesign's round 1, and More in place of the gear
- [`cf491df`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cf491df) conductor-newsapp@web-summit.indi: news app redesign, round 4: meet RiskMandate at the stand, in More
- [`c92baae`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c92baae) conductor-newsapp@web-summit.indi: news app redesign, round 2: one tap picks a talk and adds it to the calendar

### [v0.4.71](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.71) 2026-11-10 12:26 UTC

- [`fc0ddaa`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/fc0ddaa) conductor-newsapp@web-summit.indi: news app redesign, round 1: five tabs, More on every tab, native talk from Now, Show on the map

### [v0.4.70](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.70) 2026-11-10 11:49 UTC

- [`03060ec`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/03060ec) conductor@web-summit.dinis: brief: every major feature set to TestFlight external testers; one story across the app, site, docs and help with Indi's team

### [v0.4.69](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.69) 2026-11-10 07:36 UTC

- [`d5ff1a8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d5ff1a8) devops.ios@web-summit.dinis: CI on one Mac: before/after (10 macOS jobs per dev push -> 1; ~40 min to TestFlight for a push that touches everything)

### [v0.4.68](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.68) 2026-11-10 06:09 UTC

- [`e5ca04a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e5ca04a) devops.ios@web-summit.dinis: build for the generic simulator destination (an id destination failed while simulators booted)

### [v0.4.67](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.67) 2026-11-10 05:28 UTC

- [`46f9577`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/46f9577) devops.ios@web-summit.dinis: one Mac job, builds first with no simulator running, then one simulator at a time

### [v0.4.66](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.66) 2026-11-10 04:43 UTC

- [`08d6140`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/08d6140) Brief: THE RESTART: Android's RiskMandate parity table for Wednesday (ABP in every layer and the Lab's case studies are the next iOS adds)

### [v0.4.65](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.65) 2026-11-10 04:16 UTC

- [`5212189`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5212189) devops.ios@web-summit.dinis: publish to TestFlight straight from dev, in ios.yml's one macOS job

### [v0.4.64](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.64) 2026-11-10 04:11 UTC

- [`de3d631`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/de3d631) devops.ios@web-summit.dinis: ios.yml: one macOS job per run (build once, test on iPhone and iPad, Release build, package tests)

### [v0.4.63](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.63) 2026-11-10 04:08 UTC

- [`e686bc1`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e686bc1) devops.ios@web-summit.dinis: measure CI (2 days): 10 macOS jobs per dev push, queue 3x run time, 47.5 min to TestFlight

### [v0.4.62](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.62) 2026-11-10 04:07 UTC

- [`df93aeb`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/df93aeb) Brief: THE RESTART: the iOS RiskMandate feature list for Android's demo parity table

### [v0.4.61](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.61) 2026-11-10 04:02 UTC

- [`b8cc358`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b8cc358) Brief: THE RESTART for the apps (location and map, Apple Intelligence, design rounds, publish from dev, devops.ios@, the app on the web, RiskMandate demo parity)

### [v0.4.60](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.60) 2026-11-10 00:03 UTC

- [`dc058d8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/dc058d8) conductor.B iOS: stop report (THE BIG STOP); hourly wake paused

### [v0.4.59](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.59) 2026-11-09 23:51 UTC

- No changes besides the version bump.

### [v0.4.58](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.58) 2026-11-09 23:36 UTC

- [`628d2f6`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/628d2f6) Brief: THE BIG STOP (Dinis, 9 Nov 23:30): pause every agent and wake until the team realigns; stop report wanted

### [v0.4.57](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.57) 2026-11-09 22:44 UTC

- [`00e1dd0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/00e1dd0) i18n: venue map and where-I-need-to-be strings in all cultures; Arabic right-to-left pass

### [v0.4.56](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.56) 2026-11-09 22:36 UTC

- [`dc583ce`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/dc583ce) Venue map: a Venue map destination (id map, in More); WhereToBeCard on Now for people with picks; the Practical card's Venue map row opens the native map

### [v0.4.55](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.55) 2026-11-09 22:20 UTC

- [`48f8127`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/48f8127) Team: knownRegions for the same 21 languages as the public app (the shared package catalogs)

### [v0.4.54](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.54) 2026-11-09 22:09 UTC

- [`dd56313`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/dd56313) PrompTugal: knownRegions and CFBundleLocalizations for the 21 languages
- [`fae0a09`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/fae0a09) briefs: i18n status, real regional counts
- [`d8f4352`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d8f4352) i18n: 19 more cultures for the public app (machine translation, placeholders and plurals checked)
- [`31ba682`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/31ba682) Languages and cultures: in-app culture (default en-GB, never the device's), globe button with the code and an EN shortcut on every main screen, 21 cultures each in its own language, Bundle override and locale environment, dates and times in the chosen culture, RTL for Arabic

### [v0.4.53](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.53) 2026-11-09 21:33 UTC

- [`9d509ea`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9d509ea) VenueMapTests: allSatisfy outside #expect
- [`bd8dd9c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/bd8dd9c) WhereToBe: no property captured in a closure before init finishes
- [`bf1751c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/bf1751c) Venue map: outlines from the shared OSM data, picks on the areas, the walks between them, where-I-need-to-be card, credit visible; tests
- [`50ea690`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/50ea690) PTAgenda: venue outlines for the map (OpenStreetMap, ODbL; from the team site's venue-map.js)
- [`65db4af`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/65db4af) Where I need to be: the next 10 and 20 minutes with the walk (WhereToBe model and card), tests, strings

### [v0.4.52](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.52) 2026-11-09 20:34 UTC

- [`7877779`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7877779) M-iPad Stage B prep: entitlement steps, model hosting proposal, reader status
- [`8eb6642`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8eb6642) RiskMandate: read the shared abp-tooltest/1 cases from PrompTugal__App__Mobile
- [`693c3bf`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/693c3bf) RiskMandate: stage the increased-memory entitlement for Gemma (not in use)

### [v0.4.51](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.51) 2026-11-09 20:05 UTC

- [`6fcdc96`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6fcdc96) DayPlanner: do not read the main-actor AgendaHub.showsAs from nonisolated code; the event's own showsAs is read
- [`ae6e24a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ae6e24a) shows_as: My program and the planner read the event's own showsAs (after the person's toggle, before the rule)
- [`3eb91e7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3eb91e7) DayPlanner: closure result type, BusyRule call with the shared signature; ProgramModel tolerates a repeated id
- [`3e6d0a4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3e6d0a4) ScheduleRulesTests: try outside #expect
- [`19723ea`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/19723ea) Schedule rules: vendored shared vectors run against BusyRule, DayPlanner.clashes (walking, split, leave-at); busy/free fallback is the shared title and length rule; My program shows travel clashes too
- [`fdf910e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/fdf910e) PTAgenda tests: vendor the shared schedule rules (PrompTugal__App__Mobile 7433286 formats/schedule-rules)
- [`8346c3c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8346c3c) My program: clashes shown where they are (both sessions say what they clash with, list of clashes at the top jumps to them); busy and free (the person's toggle, then shows_as, then the rule); I'll split my time with a leave-at time; planner ignores free picks

### [v0.4.50](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.50) 2026-11-09 19:51 UTC

- [`d519e10`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d519e10) Brief: languages and cultures for the news app (21 cultures on SG/Send's model; a visible globe button; default always English)

### [v0.4.49](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.49) 2026-11-09 19:27 UTC

- [`63333c6`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/63333c6) RiskMandate: Workbench screen with Apple Foundation Models

### [v0.4.48](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.48) 2026-11-09 19:17 UTC

- [`dff3c24`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/dff3c24) PTCore Event: optional showsAs, read from the feed's shows_as (free or busy), with decode tests

### [v0.4.47](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.47) 2026-11-09 18:47 UTC

- [`bf1065e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/bf1065e) M-iPad: reply with the plan, blockers and ETA

### [v0.4.46](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.46) 2026-11-09 18:45 UTC

- [`4596a03`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4596a03) briefs: reply on clashes, busy/free, the map and location in the news app

### [v0.4.45](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.45) 2026-11-09 18:03 UTC

- [`abf21ee`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/abf21ee) Brief: the pipeline view in the Team app (WS-205)

### [v0.4.44](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.44) 2026-11-09 18:02 UTC

- [`8605cba`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8605cba) Fix: tapping a notification crashed the app (PrompTugal and Team): finish the handler on the main queue

### [v0.4.43](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.43) 2026-11-09 17:58 UTC

- [`cccb687`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cccb687) Brief: Dinis is not a gate; ship on green (9 Nov, 17:55)

### [v0.4.42](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.42) 2026-11-09 17:40 UTC

- [`9f0a0ef`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9f0a0ef) Brief for conductor.B: redesign stages 2 to 4 are on dev, for review
- [`7306842`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7306842) Team app redesign, stages 2 to 4: Now, Where and Plan as in Indi's prototype
- [`89f10f3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/89f10f3) Wallet pass: the signed RiskMandate card (run 3) [skip ci]
- [`eeb1f31`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/eeb1f31) Wallet pass: commit the signed pass to briefs/2026-11-09__wallet-pass/ (the artifact store is not reachable from the team's session)

### [v0.4.41](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.41) 2026-11-09 17:09 UTC

- [`fd8ed90`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/fd8ed90) Wallet pass: the RiskMandate business card as an Apple Wallet pass, made through the App Store Connect API

### [v0.4.40](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.40) 2026-11-09 15:19 UTC

- [`2f3fb58`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/2f3fb58) Team app redesign 1.1: Plan titled "Plan", Mine counts as Now does, no quotes in task titles

### [v0.4.39](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.39) 2026-11-09 14:53 UTC

- [`f1a27e1`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f1a27e1) Brief for conductor.B: the shared schedule rules (Mobile 7433286); run cases.json in the iOS tests

### [v0.4.38](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.38) 2026-11-09 14:47 UTC

- [`ff7618d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ff7618d) Brief for conductor.B: update: the news app on the web; one reference for the schedule rules

### [v0.4.37](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.37) 2026-11-09 14:24 UTC

- [`a743e4d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a743e4d) Brief for conductor.B: update: shows_as coming in the events JSON; place and where already there

### [v0.4.36](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.36) 2026-11-09 14:23 UTC

- [`802ba88`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/802ba88) Brief for conductor.B: the news app from Dinis's first real use: clashes you can see, busy and free events, split my time, the venue map, and location while in use

### [v0.4.35](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.35) 2026-11-09 14:09 UTC

- [`e9c834a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e9c834a) Brief for conductor.B: the conductors' rota (you at :00) and the watch; everybody pushes to dev, only Dinis and the conductors to main

### [v0.4.34](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.34) 2026-11-09 14:05 UTC

- [`cf7f4e0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cf7f4e0) Brief for conductor.B: Indi's team's work is on dev, for review before main
- [`ac7127b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ac7127b) Team messaging v1: rename the avatar view (MessageAvatar), it clashed with the app's Avatar
- [`94a21f4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/94a21f4) Team app redesign, stage 1: five tabs, More as a sheet, a Tasks tab by day
- [`8a43d7e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8a43d7e) Team messaging v1 (WS-203): the core in PTLanes/Messages, the screens, tests

### [v0.4.33](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.33) 2026-11-09 13:59 UTC

- [`d02d826`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d02d826) Brief for conductor.B: Android's release workflow proposal, the same shape for iOS

### [v0.4.32](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.32) 2026-11-09 13:49 UTC

- [`50799a7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/50799a7) Brief for conductor.B: releases only from main, after the security review (Dinis, 9 Nov)

### [v0.4.31](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.31) 2026-11-09 13:17 UTC

- [`f71ba1b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f71ba1b) Brief for conductor.B: the shared mobile repository v0 (b607731): implement bridge/BRIDGE.md for M-iPad, Swift names per ops.json

### [v0.4.30](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.30) 2026-11-09 12:54 UTC

- [`fb2ad61`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/fb2ad61) Brief for conductor.B: team messaging in the Team app, built by Indi's team (WS-203)

### [v0.4.29](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.29) 2026-11-09 11:27 UTC

- [`0f6cb40`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0f6cb40) Brief for conductor.B: how we work (PKI on everything, QR and NFC key exchange, the live picture, the intranet)

### [v0.4.28](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.28) 2026-11-09 11:10 UTC

- [`c76acfb`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c76acfb) Brief for conductor.B: we are the power users (the Team app runs our own summit; where is everybody first)

### [v0.4.27](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.27) 2026-11-09 10:59 UTC

- [`8f0090d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8f0090d) Brief for conductor.B: M-iPad is yours; the three apps' line; Dinis's decisions of 9 Nov; the conductors

### [v0.4.26](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.26) 2026-11-09 01:14 UTC

- [`fa64846`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/fa64846) Website: privacy page for the App Store app (Data Not Collected, promptugal.news only, no Ask/Vault); support: notifications on first pick or Reminders

### [v0.4.25](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.25) 2026-11-09 00:10 UTC

- [`9d35705`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9d35705) PrompTugal: live updates glue (PTSync), no webcredentials, fresh agenda seed
- [`706e416`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/706e416) Public app: a promptugal:// link opens only PrompTugal.news pages, not the team site (ShellLink hosts parameter, publicHosts, tests)
- [`0e1103d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0e1103d) review: rc9 against acceptance-0.4.25 (go/no-go run 18)
- [`01ed752`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/01ed752) Merge design 2aff29e and team f9a4996; pt-PT and pt-BR for the onboarding screen and the Settings row; no você in pt-PT
- [`eeab533`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/eeab533) PrompTugal: drop Ask, Vault and dictation from the public app
- [`2aff29e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/2aff29e) ONB-1: final copy from ux (row 3 text, no Ask line)
- [`730c327`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/730c327) Live updates for the public app: LiveUpdates (PTSync), LiveContent (PTCore), ReaderStore reads kept content; host test; wiring notes for apps
- [`7256743`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7256743) ONB-1: one first-run screen (Choose talks / Not now), asks for nothing; "How PrompTugal works" row in Settings; -PTOnboarding in DEBUG
- [`022c2d4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/022c2d4) review: listing.json carries the copyright line
- [`cb1a103`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cb1a103) i18n: localize Official programme, event kind badges, the Siri follow-up sentence and PTNews segment labels; pt-PT uses sessão instead of palestra
- [`475ee3f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/475ee3f) review: privacy-first acceptance rules for 0.4.25
- [`19b284f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/19b284f) Polish: Explore > Talks reads "Explore" (AgendaView title parameter); graph nodes named by a URL show the site, not the raw address
- [`f9a4996`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f9a4996) My program day chips are short (weekday and day number, from a locale template); NextHoursCard time column is one line, minWidth 64
- [`0beac4b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0beac4b) review: submitted 0.4.24 (205); ready replies for App Review
- [`ffc62eb`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ffc62eb) review: FINAL GO for 0.4.24 (205), conditional on Dinis (Data Not Collected, Mac/Vision, IDFA)
- [`ec9b4a2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ec9b4a2) review: #37 6.9 set GO; all sizes from #37
- [`7db4c80`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7db4c80) review: go/no-go run 17 (rc8 screenshots: iPad without Ask, GO)
- [`4f7eaca`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4f7eaca) PrompTugal UI test: wait for the shell's identifier, not a PrompTugal text

### [v0.4.24](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.24) 2026-11-08 22:03 UTC

- [`6f1c209`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6f1c209) TestFlight text files: no Ask, no demo key, one host (split/review d21231d)
- [`d21231d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d21231d) review: rc8 without Ask: Data Not Collected, listings and notes without Ask, iPad screenshots need a re-run; go/no-go run 16
- [`4f58965`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4f58965) Public app: Ask only in DEBUG builds with debug mode on; the App Store build collects no data
- [`4b764cc`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4b764cc) TestFlight status: 21:24, 204 still waiting for Beta App Review
- [`518faaf`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/518faaf) TestFlight status: 20:25, 204 still waiting for Beta App Review
- [`fae5ee4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/fae5ee4) TestFlight status: 19:28, 204 still waiting for Beta App Review
- [`ee6fcbf`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ee6fcbf) TestFlight status: 18:33, 204 still waiting for Beta App Review
- [`e376428`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e376428) TestFlight status: 17:42, 204 still waiting for Beta App Review
- [`182bc67`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/182bc67) TestFlight status: 16:58, 204 waiting for Beta App Review
- [`b442864`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b442864) TestFlight status: 16:26, 204 in Beta App Review
- [`2de7846`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/2de7846) review: TestFlight external submitted
- [`d711ba4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d711ba4) review: dry run confirmed; status summary FINAL GO
- [`26838a4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/26838a4) review: FINAL GO for 0.4.23 (204), conditional on App Privacy, Mac/Vision and IDFA by Dinis
- [`b6ace6f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b6ace6f) review: build 0.4.23 (204) uploaded
- [`0f685e3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0f685e3) TestFlight status: 15:43 check, v0.4.22 failure and v0.4.23 run
- [`abc8424`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/abc8424) review: 15:40 status
- [`777e156`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/777e156) review: v0.4.23 noted
- [`c442c52`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c442c52) review: 15:13 status
- [`4e05421`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4e05421) review: M8 settled, G4 fallback on code evidence
- [`79e7b29`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/79e7b29) review: version string 0.4.22 noted
- [`7ad0120`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7ad0120) review: go/no-go run 15 (dev = rc7, run 398 green, screenshots applied; review notes on dev need step 4)
- [`95ae83b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/95ae83b) review: age rating read back, M7 GO
- [`57c9673`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/57c9673) review: go/no-go run 14 (store screenshots GO, 36 images; ASC metadata applied)
- [`5d64ad7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5d64ad7) review: next-version items from App Review and the screenshots
- [`aa6f9d4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/aa6f9d4) review: screenshot pass 2 (rc7 6.9"): store set of 4 per locale GO; talk, news and graph images left out (trademark in content)
- [`aefb1f1`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/aefb1f1) review: ASC dry run decisions (en-GB primary locale added to listing.json, no What's New on first version); go/no-go run 12

### [v0.4.23](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.23) 2026-11-08 15:18 UTC

- [`7b1260c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7b1260c) release-notes.sh: build the notes, then cut to 3,900 characters (head -c on a pipe broke the release with SIGPIPE under pipefail)
- [`70f6d44`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/70f6d44) TestFlight status: 14:50 check
- [`a793738`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a793738) review: listings match rc7 (My program, no planner claim, search scope); listing.json for asc.py; go/no-go run 11
- [`edccbb0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/edccbb0) review: rc7 535e9ba (Explore time one line), run 10 holds
- [`d091da5`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d091da5) TestFlight status: 14:07 check
- [`a073397`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a073397) review: rc7 0279acc test-only delta
- [`80a7d72`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/80a7d72) review: go/no-go run 10 (rc7 7f961a0 GO in repo: no launch prompt, time column one line)
- [`eb40b63`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/eb40b63) TestFlight text files: review notes step 4 (notification permission) from split/review 1b628bb
- [`1b628bb`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1b628bb) review: screenshot pass 1 (no-go: notification prompt without a tap covers 60 of 63 images; time column wraps); review notes step 4
- [`94f9da6`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/94f9da6) review: go/no-go run 8 (run 394 22/28 green; ASC plan corrected; screens and dry run pending)
- [`78149f0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/78149f0) review: go/no-go run 7 (binary rc4 56a630e: product code identical to d8a5020)
- [`926e13f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/926e13f) TestFlight status: 13:10 check
- [`7ed0cb8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7ed0cb8) review: go/no-go run 6 (binary rc4 d8a5020, screenshots rc5 706b153)
- [`797282a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/797282a) review: go/no-go run 5 (screenshots from a Debug build show debug badges and debug-only rows; content rights must be third-party); Languages lines stay
- [`0518362`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0518362) review: rc4 d8a5020 go/no-go run 4 (seed wired, N2 DEBUG-only; pending run 393, processing, screenshots)
- [`dc1ba49`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/dc1ba49) review: rc4 go/no-go run 3 (agenda seed not wired; screenshot risk from program titles)

### [v0.4.22](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.22) 2026-11-08 15:06 UTC

- [`535e9ba`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/535e9ba) Explore rows: time on one line (fixedSize, min width 64) so ranges and 12-hour times never wrap
- [`0d4a053`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0d4a053) Tests: WebPageHostTests and AgendaOpeningDayTests on the main actor
- [`7f961a0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7f961a0) PTWeb tests: WebPageHostTests on the main actor (leavesSite is main actor-isolated)
- [`e8b4379`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e8b4379) My program: no notification prompt when the screen is built; ask only when the person turns reminders on
- [`15083d5`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/15083d5) Now: the time column fits "88:88 AM" and never wraps in 12-hour locales
- [`d051bf5`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d051bf5) Screens test: tap Allow (last button) on the notification alert
- [`555b32e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/555b32e) Screens test: dismiss the notification permission alert before each shot
- [`63d7355`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/63d7355) screens.yml store mode: fix the id lookup (${dir}iphone-), run only ScreensTests, no crash on empty glob
- [`56a630e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/56a630e) Tests: PTExplore tests import PTCore (Event); PTWeb public-list test computes values outside #expect
- [`178bfbd`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/178bfbd) screens.yml: drop the store-order prefix from attachment ids; ASC plan per review (content rights, IDFA, Mac/Vision availability, listing files)
- [`706b153`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/706b153) Screenshots: debug mode off in the screens test; Vault and All websites are debugOnly (hidden with debug off)
- [`9ee142a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9ee142a) Screens test: forward PT_HIDE_TERM as -PTHideTerm
- [`72b0957`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/72b0957) Screenshot filter: agendaDidLoad gets the filtered agenda
- [`39ed85a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/39ed85a) Screenshot filter: -PTHideTerm drops matching events and news (Debug only), with tests
- [`58ef2cf`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/58ef2cf) screens.yml store mode: hide_term (PT_HIDE_TERM -> -PTHideTerm), default Web Summit
- [`9a93526`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9a93526) PrompTugal tests: the bundled agenda seed decodes (more than 150 events)
- [`d8a5020`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d8a5020) PrompTugal: set AgendaHub.seedAgenda to the bundled agenda (the seed was bundled but never wired)
- [`5e4ef2b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5e4ef2b) i18n: wrap the bare literals left in AgendaView and other package views (looked up in the app bundle, so pt users saw English)
- [`3e29fc3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3e29fc3) PrompTugal: bundle the agenda as a first-launch seed (offline first launch)
- [`f9a0bc0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f9a0bc0) review: rc3 go/no-go run 2 (GO in repo; pending run 391, processing, screenshots); N4 fixed
- [`ae30114`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ae30114) TalkScreens: agendaEvent is main-actor (it reads ReaderStore.agenda)
- [`ae69b94`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ae69b94) TalkScreens: agendaEvent on the main actor (ReaderStore.agenda is main actor-isolated; Release build of rc2 failed)
- [`ae618cf`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ae618cf) PTWeb: links out of the page's own site open in the browser, never in the app (main frame, target=_blank too); host rule tested
- [`4243d75`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4243d75) review: N2 accepted for this version
- [`b009f5e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b009f5e) i18n: InfoPlist catalog en values are the real English strings, not the key names
- [`f1be173`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f1be173) ux: status log
- [`f58435a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f58435a) ux: rc2 review follow-ups for the next version
- [`eef6afa`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/eef6afa) i18n: microphone and speech purpose strings in pt-PT and pt-BR (InfoPlist catalog)
- [`d411bd0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d411bd0) review: rc2 go/no-go run 1 (no-go: WebPage loads linked sites in the app; old review notes in rc2); network audit corrected (N4)
- [`a2cff1a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a2cff1a) briefs: i18n status update
- [`7106c3d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7106c3d) i18n: restore defaultLocalization in PTAgenda after the merge
- [`eeade18`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/eeade18) i18n: catalogs for the summit screens in PTAgenda, PTExplore, PTNews, PTCore and PTWeb
- [`6c3fd36`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6c3fd36) PTSync feeds: import PTCore where FeedItem is named; make the joined-refresh test deterministic
- [`d4bb283`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d4bb283) Now: three Ask questions on the Ask card when a key is saved; registration comes from the model's kind (team d310767)
- [`f498a66`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f498a66) i18n: catalogs for the summit screens in the app target and widget (Now, Explore talk, practical card)
- [`ce48341`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ce48341) team status: summit work (NowModel, PICK, My program, seed, clock) at 12:25 UTC
- [`bd79c07`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/bd79c07) Platform status: cookie fix folded into split/rc, no runs queued
- [`1996d7f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1996d7f) TestFlight ops: review notes from the summit store pack (privacy line: two hosts, no cookies, no telemetry)
- [`e80352b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e80352b) Status: testflight, first good public build 0.4.16 (197)
- [`fcb1089`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/fcb1089) review: status anchor fix
- [`8bef472`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8bef472) review: 12:16 check, where each fix is; review notes say a session opens its details
- [`d310767`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d310767) NowModel: first items are the first registration and the opening night; registration never takes an On now, Up next or Tomorrow slot (NOW-M-1, NOW-M-2)
- [`0f204ed`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0f204ed) ux: 12:15 check-in log
- [`1b5a0a7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1b5a0a7) Public app on team's NowModel, My program and AgendaClock; deck's TalkDetailView as the one talk detail (agenda, My program, Explore); NowNextRepublisher; pick toasts
- [`9b694ad`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9b694ad) PickTests: pickStore is main-actor (ScheduleStore init)
- [`2b23012`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/2b23012) Status: collab summit update (PTSync built, feeds and Ask changes local)
- [`1a425d7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1a425d7) PTAgenda: AgendaClock, one clock with a DEBUG override, used by the agenda, planner, My program, reminders and Now/next publishing
- [`fcf5d3f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/fcf5d3f) apps status: summit queue update
- [`7580c50`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7580c50) PrompTugal UI tests: ScreensTests, one screenshot per destination (now, team.schedule, explore, explore.talk, news.home, explore.people, explore.graph), clock and picks forwarded from PT_NOW and PT_SEED_PICKS
- [`cd1d188`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cd1d188) i18n: remove case-only duplicate catalog keys (they generate the same symbol)
- [`5e2ab6f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5e2ab6f) PTExplore: TalkDetailView, the one native talk detail (TalkRef from Event, pick id or entry; pick and calendar hooks)
- [`558bd42`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/558bd42) PublicFeatures: publish Now and next for the widget and Siri when the agenda loads and when picks change
- [`95bbba7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/95bbba7) Explore: ExploreScreen with the app's views (agenda talks, native talk detail, graph card, graph); explore.* ids; wrapsStack for screens with their own stack
- [`278675c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/278675c) Now per ux review: countdown and filters by event kind, a loading state, the time on the kicker line
- [`d0fcabd`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d0fcabd) PTAgenda: -PTSeedPicks parser and seeding, agenda opens on today during the summit, openSession hook for a native detail
- [`65c1878`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/65c1878) PrompTugal app: vault background refresh only in DEBUG; no second ScheduleStore (PublicFeatures owns the schedule)
- [`db548cd`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/db548cd) Revert "PTCore: one SecretStore and one SpeechDictation (public), both duplicates removed from PTAsk and PTLanes"
- [`7df2ca3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7df2ca3) Ask: tool description without the trademark
- [`b380734`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b380734) PTCore HTTPClient: no cookies (no cookie storage, no Set-Cookie handling, accept policy never), with a test
- [`a6d204c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a6d204c) Ask: public prompt names the Lisbon summit without the trademark
- [`90c4fb8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/90c4fb8) My program (PROG-1): ProgramModel with clash groups and free time, MyProgramView, tests
- [`89db252`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/89db252) Now per ux review: Practical card (six rows, links in Safari), countdown items, no registration in On now/Up next, a loading state, a smaller clock, readable width; strings as in the spec; story titles; Settings Ask label
- [`c391c4c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c391c4c) Design status: summit build progress
- [`439993e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/439993e) PICK: shared pick action with toast and clash warning (PickFeedback, PickStarButton, .pickToasts()), NowNextRepublisher, pick rules; AgendaView uses it
- [`bd26d86`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/bd26d86) i18n: Siri phrases and intent text in pt-PT and pt-BR (Intents catalogs)
- [`e9ee8c9`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e9ee8c9) TestFlight ops: use review's final What to Test for the public app
- [`628709d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/628709d) ux: review log
- [`3c99698`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3c99698) PrompTugal app: link PTExplore (package reference, product, apps.json)
- [`49a9fa8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/49a9fa8) Ask per ux: the last card on Now, the first row in Settings, a row in the iPad sidebar
- [`79f787f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/79f787f) News: a share button on every story (review finding F10)
- [`08d961f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/08d961f) ux: Practical card content and links; iPad two-column Now cut
- [`6f50cbb`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6f50cbb) PTExplore: fix manifest (defaultLocalization belongs to the package)
- [`21d2f6c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/21d2f6c) PTExplore: localizable strings (String(localized:bundle:), Localizable.xcstrings, defaultLocalization en)
- [`8ad3eb9`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8ad3eb9) Ask: no vault key copy in the public app, provider-owned audience wording, localized strings
- [`d2318d9`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d2318d9) PrompTugal app: collected data type in the privacy manifest (other user content, not linked, not tracking, app functionality); knownRegions en, pt-PT, pt-BR
- [`a0ea733`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a0ea733) TestFlight ops: use the summit store pack's review notes for Beta App Review (review.B's file)
- [`a8aee16`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a8aee16) i18n: stage pt-PT and pt-BR for the ux spec v1 copy (plain strings, app catalog)
- [`d58958c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d58958c) NOW-1: the Now screen by phase (countdown, For you, On now, Up next, Tomorrow, thank you), news, Ask and practical cards; -PTNow in DEBUG
- [`c029510`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c029510) PTAgenda: NowModel (spec NOW-1 data) replaces NowBoard: phase, for you, on now, up next, tomorrow, countdown, with tests at the spec's dates
- [`b506216`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b506216) briefs: i18n status page
- [`6ece567`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6ece567) PTAgenda: NowBoard (now and next for the venue and my program, clashes, stages, summit phase), offline agenda seed hook, DayPlanner.clashes
- [`4723ef2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4723ef2) i18n: String Catalogs (en, pt-PT, pt-BR) for the PrompTugal app, widgets and packages; Lisbon time labels stay locale-formatted
- [`1ce03c8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1ce03c8) PrompTugal app: extensions link PTNowNext (not PTAgenda), scene manifest from Info.plist (external display), public websites list, no Web Summit shortcut image
- [`af499aa`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/af499aa) NEWS-1: segments Latest, Newsletter, Stories; 'Offline · saved HH:MM' pill; the graph card leaves the news screen
- [`1a90e8e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1a90e8e) Ask: initial question parameter and a plain no-key card
- [`3f24dcc`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3f24dcc) Public shell to the ux spec: four tabs (Now, My program, Explore, News), no More tab, gear to Settings, Ask from Now and Settings, old ids routable
- [`49e56c5`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/49e56c5) PTExplore: ExploreStart, so the shell can open Explore at a segment, a talk or the graph
- [`8148d6a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8148d6a) PTSync: live feeds (RSS, Atom, JSON Feed, newsletter JSON) with offline store and syncer
- [`3e86329`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3e86329) screens.yml store mode: ux's id list, required ids, seed_picks for the screens test
- [`de9b120`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/de9b120) App Review: no Web Summit trademark in PTAgenda text; PTWeb shortcuts list injectable (WebsitesPublic.json for the public app)
- [`812a010`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/812a010) ux: exact seed slugs
- [`3d844c3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3d844c3) ux: App Store screenshot list and seeded program (§11)
- [`bbbed30`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/bbbed30) PTExplore: build to the ux spec (segments, grouped search, A to Z, hooks for agenda, talk detail and graph card)
- [`a1f1f1a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a1f1f1a) apps status: summit queue, runs 357 and 94
- [`ca86a91`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ca86a91) team: status page, summit priority
- [`7e3b1fb`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7e3b1fb) screens.yml store mode: ids (store order) and now (PT_NOW for the screens test); plan for the 15:40 run
- [`351797c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/351797c) ux: Ask leaves the tab bar (conductor ruling); NOW-1h Ask card
- [`1811803`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1811803) PTAgenda: NowBoard (now and next for the venue and my program, clashes, stages, summit phase), offline agenda seed hook, DayPlanner.clashes
- [`21c8fa2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/21c8fa2) ux: status page time
- [`2bbdb3a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/2bbdb3a) briefs: release status for the summit app (screenshots, App Store API plan)
- [`cd11e67`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cd11e67) ux: summit app spec v1 (tabs, Now screen, program flow, explore, states, owners)
- [`f77e99c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f77e99c) PTExplore: searchable talks, speakers, companies, organisations and places
- [`1d63554`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1d63554) Status: testflight, plan for the public app's external path
- [`87da380`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/87da380) PublicShell: All websites only in DEBUG builds (its list still names the team site)
- [`6ef8cec`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6ef8cec) PublicShell: Ask moves from the tab bar to More (it needs an OpenRouter key)
- [`4fe049a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4fe049a) PublicShell: the vault screen only in DEBUG builds (App Review: a dead end without a key)
- [`5051f9b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5051f9b) screens.yml: store=true makes App Store screenshots (6.9in and 6.5in iPhone, 13in iPad, native size, per locale, JPEG, size-checked)
- [`b02308a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b02308a) TestFlight ops: groups (read-only settings of beta groups and review details) and public-link (plan unless confirmed)
- [`58472d8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/58472d8) Platform status: dedupe parked, support role
- [`a02513c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a02513c) Platform status: SecretStore and SpeechDictation task, run 348
- [`1eb47bd`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1eb47bd) TeamNativeTests: typed arrays in integer comparisons (ambiguous == in the tested expansion)
- [`c95141b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c95141b) apps status: PTSync request from collab (waiting for conductor)
- [`e70d928`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e70d928) Team.xcodeproj: reference-only entry for PTNowNext (conductor-approved); status page, round 2
- [`86cf060`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/86cf060) PTSync: take the PrompTugal app wiring off this branch (apps owns it); the patch is in the status page
- [`7dc4298`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7dc4298) PTNowNext: NowNextSnapshot, SharedContainer and LisbonClock in their own package with no dependencies
- [`38c85cc`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/38c85cc) PTAsk: the question box hint and intro come from the provider (no team in the public app); dictation note says on device or Apple
- [`93279d1`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/93279d1) privacy and review notes: dictation in Ask (microphone, speech), camera; status 11:00
- [`cef4aa2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cef4aa2) Status: testflight, public app upload rejected (error 90683)
- [`4225261`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4225261) TestFlight ops: read-only inspect action (all builds incl. non-VALID, pre-release version, build uploads, for one version; build input carries the version)
- [`164cc21`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/164cc21) PTSync: PTCore ContentSource seam, manifest body hash when there is no ETag, PrompTugal app wiring, seed script
- [`063e3c2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/063e3c2) Team: native pages from markdown twins (reports, board health, pulse summary), wakes and pulse screens
- [`6accbbd`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6accbbd) PTSync: manifest delta sync, content store with atomic generations, build seed, offline outbox (PTCore only); in apps.json packages
- [`cfce712`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cfce712) Team: native stand-ups (list, agenda, items) and My command centre, read through TeamStore
- [`48d84f3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/48d84f3) PublicShell: the decks screen (id decks, DeckScreen, own navigation)
- [`5153877`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5153877) status: editor 10:40, merged dev v0.4.13
- [`a4ff33c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a4ff33c) release-notes.sh: per-app intro from scripts/release/notes/<app>.txt; Team's What to Test text
- [`58ce3ec`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/58ce3ec) release scripts: no default PROJECT/SCHEME/APP_NAME (apps.json is the source; the project moved to Apps/Team)
- [`8c741a0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8c741a0) Status: testflight, Team What to Test draft and plan
- [`96175a5`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/96175a5) App icons: a Team icon (blue, PT team) and a RiskMandate icon (dark, RM)
- [`e7a6ac4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e7a6ac4) PTCore: one SecretStore and one SpeechDictation (public), both duplicates removed from PTAsk and PTLanes
- [`ffd5b09`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ffd5b09) briefs: collab status, PTSync design (proposal, no code)
- [`d830524`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d830524) ios.yml: runner=auto (self-hosted when one is online, else macos-26); cancel the rest of a manual split run when a build fails
- [`45d26aa`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/45d26aa) TestFlight ops: set-whats-new action (What to Test only, plan unless confirmed) and a draft What to Test for the Team app
- [`569f4d7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/569f4d7) Design status: on dev, run 345 green
- [`3bd5b50`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3bd5b50) status: editor 10:15, merged dev v0.4.11
- [`ea27db3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ea27db3) status: release.B 09:45 UTC
- [`43d5426`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/43d5426) Status: testflight, first Team build 0.4.7 (182)
- [`7320844`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7320844) site labels: read ShellDestination, public features start with .publicFeatures(; merge dev v0.4.10
- [`c048050`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c048050) phase 4: PrompTugal review texts, version wording, status; merge dev v0.4.8
- [`ce2fbe0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ce2fbe0) Design status: phase 4 ready, run 342 green
- [`c255aa2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c255aa2) Platform status: phase 4 READY (run 338, dry run 81)
- [`a7b603c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a7b603c) Status: testflight, 08:48 check, no new upload
- [`e3f50b8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e3f50b8) Platform status: runs 338 and release dry run 81 in progress
- [`b453636`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b453636) status: editor 08:30, phase 4 preview
- [`d51cde4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d51cde4) Status: testflight, 0.4.6 build 180 on reader record
- [`7b94708`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7b94708) Status: testflight, 0.4.4 build 178 on reader and RiskMandate, entitlements kept
- [`0b46175`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0b46175) status: release.B 07:40 UTC
- [`29158b9`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/29158b9) privacy and support: widget, Siri answers, camera; status 08:05
- [`a4dde49`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a4dde49) status: editor 07:50, merged dev, checked against split/platform
- [`c04189e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c04189e) status: editor 07:35, build patches for dev
- [`a20ffd5`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a20ffd5) briefs: editor-build patches for dev (build code only)
- [`f8f6316`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f8f6316) site: find shortcut artwork wherever the Team move puts it; status for phase 4
- [`e6d18ff`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e6d18ff) Status: testflight, signing fix on dev, waiting for next release
- [`ccd09f4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ccd09f4) Status: testflight, 06:55 check, dev uploads blocked on signing fix
- [`abdb2d4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/abdb2d4) briefs: collab status, PTAsk quick run green, full run queued
- [`0e6bdb4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0e6bdb4) Status: testflight, run 71 failed on certificate limit
- [`9adcf3a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9adcf3a) status: editor 06:25, PTLanes checked
- [`a419ccf`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a419ccf) status: editor 05:55, PTNews checked
- [`8fb7028`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8fb7028) Status: testflight, certificate count after run 69 signing failure
- [`64dbb54`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/64dbb54) TestFlight ops: read-only certificates action (counts by type, no names)
- [`84637e0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/84637e0) Status: testflight, 05:18 check, no new upload
- [`bc9805b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/bc9805b) status: editor 05:20 check-in
- [`adebd13`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/adebd13) Status: testflight, 0.4.1 build 168 seen
- [`8900341`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8900341) status: editor 04:15 check-in
- [`a6be0df`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a6be0df) Status: testflight, run 67 results for all records
- [`8c2c07d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8c2c07d) Status: testflight, first 0.4.0 build (RiskMandate 167)
- [`57079c7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/57079c7) TestFlight ops: bundle input, so status can read the Team and RiskMandate records
- [`f954a79`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f954a79) site: read the new app project and its shortcut artwork; v0.4.0; status
- [`ad3bb3b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ad3bb3b) Status: testflight, build 163 seen
- [`20c6f17`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/20c6f17) Status: testflight, runs 63 and 64 in flight
- [`343a1f7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/343a1f7) status: editor 03:15 check-in
- [`3a274f9`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3a274f9) Status: testflight, build 161 seen
- [`31fa0cc`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/31fa0cc) status: editor 02:40 check-in
- [`e951303`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e951303) status: editor 02:10 check-in
- [`29b2de5`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/29b2de5) Status: testflight, 02:08 check
- [`a4a1df6`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a4a1df6) Status: testflight, conductor update
- [`f3ac2a1`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f3ac2a1) site: app version follows VERSION from v0.4; status update
- [`408c03d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/408c03d) Status: testflight, account B watching uploads
- [`a889cb9`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a889cb9) status: editor handoff
- [`9869149`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9869149) Status: testflight handoff
- [`27a6247`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/27a6247) support and review notes: contact address, answer within 48 hours
- [`0f58b2c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0f58b2c) Status: testflight, internal testers only during the summit
- [`5d6e8c7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5d6e8c7) testflight: PrompTugal-app review notes and What to Test, to replace the originals at phase 4
- [`7089550`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7089550) status: editor merged dev v0.1.67
- [`1575125`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1575125) status: editor merged PTVaultUI, vault labels follow the files
- [`e640c9e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e640c9e) status: editor merged phase 1, labels hold
- [`b98816d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b98816d) site: PublicShell counts as the PrompTugal app's root view
- [`e3ba68b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e3ba68b) site: follow the three-apps split (public app pages, Team app in the admin area)

### [v0.4.21](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.21) 2026-11-08 11:39 UTC

- [`683b6c5`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/683b6c5) review: review notes state the two hosts, no cookies, no telemetry
- [`ca9eaf6`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ca9eaf6) review: network audit of the public build (two hosts; N1 cookies off in HTTPClient, N2 vault background task, N3 Ask vault copy)

### [v0.4.20](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.20) 2026-11-08 11:35 UTC

- [`9e2e613`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9e2e613) briefs: summit app next version, Dinis's ideas (modes, graph, privacy, live timeline, billing, variations)

### [v0.4.19](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.19) 2026-11-08 11:35 UTC

- [`f156a3e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f156a3e) review: TestFlight What to Test for the public app (store/what-to-test.txt and scripts/release/notes/promptugal.txt)

### [v0.4.18](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.18) 2026-11-08 11:33 UTC

- [`d0af652`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d0af652) review: review contact secrets confirmed present
- [`eb8f277`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/eb8f277) review: review notes follow the four tabs (Now, My program, Explore, News; Ask from Now and Settings); exact PrivacyInfo keys for Ask

### [v0.4.17](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.17) 2026-11-08 11:32 UTC

- [`90dcc37`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/90dcc37) review: apply the conductor's rulings (Ask with review key, Vault hidden), final review-notes.txt, App Privacy with Ask, pt URLs

### [v0.4.16](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.16) 2026-11-08 11:32 UTC

- [`326147f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/326147f) PrompTugal app: microphone and speech recognition purpose strings (ITMS-90683: PTAsk dictation is linked)
- [`bc65b90`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/bc65b90) PrompTugal widgets and intents: privacy manifests (they now link PTAgenda, so they use UserDefaults and file-timestamp APIs; ITMS-91053)
- [`00fb555`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/00fb555) PrompTugal app: PTDeck package, external display scene configuration (presenter second screen)
- [`e024fce`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e024fce) PTDeck: decks, reader and presenter mode for the PrompTugal app
- [`7af3009`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7af3009) apps status: guard proof run 84
- [`49c80c7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/49c80c7) apps: promptugal testflight back to false (the guard dry run runs on 42d2aab)
- [`42d2aab`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/42d2aab) apps: promptugal testflight true for ONE release dry run (guard proof); set back to false next commit
- [`e081ed4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e081ed4) apps status: READY phase 4, release dry run 83
- [`ed85d6d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ed85d6d) apps status: phase 4 runs 337 and 340

### [v0.4.15](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.15) 2026-11-08 11:30 UTC

- [`304d500`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/304d500) review: correct the times in the store pack (11:30 UTC)
- [`f7b8ef1`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f7b8ef1) review: App Review checklist, store listing (en, pt-PT, pt-BR), App Privacy and age rating answers, review notes, go/no-go, persona walk-through 1

### [v0.4.14](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.14) 2026-11-08 11:22 UTC

- [`f893a58`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f893a58) briefs: summit app to the App Store today (plan, MVP, roles, rules)

### [v0.4.13](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.13) 2026-11-08 10:32 UTC

- [`134a559`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/134a559) briefs: three apps contracts §8, next round (PTSync, decks, Team native) rules

### [v0.4.12](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.12) 2026-11-08 10:08 UTC

- [`bbf7cd8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/bbf7cd8) apps.json: upload the public PrompTugal app to TestFlight (dev run 345 green; signing dry run 84 entitlements complete)

### [v0.4.11](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.11) 2026-11-08 09:41 UTC

- [`053e2e3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/053e2e3) briefs: three apps outcome, first Team build 0.4.7 (182) in TestFlight

### [v0.4.10](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.10) 2026-11-08 09:34 UTC

- [`c1daad2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c1daad2) briefs: three apps, outcome at 09:40 UTC (what reached TestFlight, merges, signing fix, what is left)

### [v0.4.9](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.9) 2026-11-08 09:32 UTC

- [`d7c728e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d7c728e) Design status: reword a line the site validator rejects
- [`b8716f4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b8716f4) PublicShell: ReaderStore is the news source in the public app
- [`a4c0d61`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a4c0d61) PublicShell: argument order in the debug destination
- [`b63cd43`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b63cd43) Design status: phase 4 run 333 in progress
- [`c025f83`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c025f83) PublicShell: Ask destination and Ask beside any screen, page context for Ask
- [`d9a8c13`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d9a8c13) Draft: PublicShell, public Destinations, settings, features; shared shell parts in PTCore (local only)
- [`e751c11`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e751c11) Design status: PublicShell drafted locally, needs list
- [`d88d87b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d88d87b) Design status: full run 323 green on bb50751, READY

### [v0.4.8](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.8) 2026-11-08 09:23 UTC

- [`a53e3cc`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a53e3cc) PrompTugalIntents: import PTAgenda (NowNext moved there)
- [`bb9e5dd`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/bb9e5dd) PrompTugal app, phase 4: widgets and intents targets, shortcut images, NowNextPublisher wiring
- [`375e867`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/375e867) PrompTugal app: file sharing and open-in-place keys (Files app shows the PrompTugal folder)
- [`86fe833`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/86fe833) apps status: NowNext in PTAgenda (phase 4 note)
- [`bb54ef1`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/bb54ef1) PrompTugal app: URL scheme, one schedule for AgendaHub, vault task id (prepared for phase 4)
- [`7d0225f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7d0225f) apps status: run 316
- [`44d74ac`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/44d74ac) apps status: shortcut images in phase 4 plan

### [v0.4.7](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.7) 2026-11-08 09:00 UTC

- [`cd02fa7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cd02fa7) Team tests: @testable import Team in AppReviewTests (the merge restored the old module name)
- [`f0c53a9`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f0c53a9) Fix merge: take team's NowNext files (conflict markers were committed); Team points SharedContainer at its own group name
- [`a2a1b31`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a2a1b31) Platform status: phase 4 pushed
- [`09623bd`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/09623bd) Phase 4: move the root project to Apps/Team (Team, news.promptugal.team, ptteam://)
- [`d599843`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d599843) PTAgenda: NowNext, SharedContainer, LisbonClock and NowNextPublisher move into the package (public), with their tests
- [`8d574df`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8d574df) team: status page, phase 4 review
- [`dcca18e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/dcca18e) Store and tests: ready for the Team move (scheme from AppLinks, StoreKit file found in either layout, tests set their own scheme)
- [`86ff569`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/86ff569) team: status page, run 313 green
- [`56db73e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/56db73e) Platform status: AppLinks.scheme on dev, waiting for phase 3
- [`95ae726`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/95ae726) Platform status: run 301 on self-hosted runner

### [v0.4.6](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.6) 2026-11-08 07:15 UTC

- [`b17edc3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b17edc3) website: admin pages read the Team app from Apps/Team once the project has moved
- [`cf4f548`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cf4f548) website: build finds the PrompTugal app project, artwork and Websites.json in Apps/ and Packages/

### [v0.4.5](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.5) 2026-11-08 07:06 UTC

- [`f3b0a1c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f3b0a1c) TeamAskProvider: return explicitly from every case
- [`781f6f4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/781f6f4) PTAsk: move AI/ into the package with AskContextProvider; PublicAskProvider in PTAsk, TeamAskProvider in Coordination/

### [v0.4.4](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.4) 2026-11-08 07:02 UTC

- [`266c7ba`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/266c7ba) testflight.sh: keep entitlements in the unsigned archive; print entitlements of the exported app and extensions
- [`cfffe8d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cfffe8d) testflight.sh: automatic mode archives unsigned and lets the export cloud-sign, so no Apple Development certificate is created per run
- [`46197df`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/46197df) status: release.B 02:55 UTC

### [v0.4.3](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.3) 2026-11-08 05:57 UTC

- [`c6e7a26`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c6e7a26) briefs: collab status, runs 314 and 322 fixed, run 324 queued
- [`99c3e91`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/99c3e91) PTLanes: hasWebsiteInbox for the debug panel; error-text test moves to the Team app tests
- [`0cdbebc`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0cdbebc) AI: SpeechDictation copy for AskView (PTLanes keeps its own)
- [`cc8be49`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cc8be49) briefs: collab status, PTLanes fixes after run 314
- [`44217b1`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/44217b1) PTLanes: own SecretStore copy, public LanesView.body, TeamNotes default argument off the main actor
- [`72c152c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/72c152c) PTLanes: install VaultCollabAccess from TeamLanesWiring, Swift 5 language mode
- [`5ab5eb2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5ab5eb2) status(vault): run 310 dispatched on b614118
- [`457bb54`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/457bb54) briefs: collab status, CollabSeams green (run 302)
- [`fb8cdfc`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/fb8cdfc) status(vault): waiting for CollabSeams on dev
- [`53d9a78`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/53d9a78) status(vault): waiting for CollabSeams on dev
- [`b71f8f0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b71f8f0) briefs: collab status, collab.B took over, run 291 still queued
- [`4ff6d47`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4ff6d47) vault: check VaultCollabAccess against CollabSeams; status
- [`0ddf084`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0ddf084) briefs: collab status, handoff section
- [`d24514e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d24514e) status(vault): handoff to account B
- [`b73c5a6`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b73c5a6) vault: VaultCollabAccess moves into PTVaultUI (public, install()); needs CollabSeams in PTCore
- [`d0218e1`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d0218e1) status(vault): waiting for CollabSeams
- [`f2fb585`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f2fb585) Coordination: keep team-only hooks, drop what moved to PTCore (prepared, not pushed)
- [`9dc572b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9dc572b) PTLanes: move Lanes/ into the package (prepared, not pushed)
- [`d369089`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d369089) PTCore: CollabSeams.swift (prepared locally, not pushed until PTCore is on dev)
- [`e48bf9d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e48bf9d) status(vault): move green in run 272
- [`5da5f05`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5da5f05) briefs: collab status 00:10 UTC
- [`38d857b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/38d857b) briefs: collab status, public provider uses ScheduleStore
- [`a17cd95`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a17cd95) briefs: collab status, cover AskView schedule in provider
- [`64161fa`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/64161fa) briefs: collab status, conductor rulings
- [`1786ceb`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1786ceb) briefs: collab status page and plan for PTAsk and PTLanes

### [v0.4.2](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.2) 2026-11-08 05:20 UTC

- [`bb50751`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/bb50751) Design status: PTNews fixes, quick run 319 queued
- [`83f761f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/83f761f) PTNews: GraphExplorer.version is public (the Team debug panel reads it)
- [`4c18d6b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4c18d6b) PTNews: previews use NewsFeeds, own NewsRow instead of the dashboards' InfoRow
- [`df7894d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/df7894d) Design status: run 312 queued on b1ef07a
- [`b1ef07a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b1ef07a) ReaderStore+News: import PTAgenda explicitly
- [`1700e60`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1700e60) Shell: take the link scheme from AppLinks.scheme; status
- [`cc9774d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cc9774d) Design status: waiting for team's run 300
- [`1a1f81d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1a1f81d) Design status: design.B takeover, run 294 cancelled, waiting for team's PTWeb
- [`d7e6a69`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d7e6a69) Design status: handoff section
- [`4430e67`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4430e67) PTNews: Swift 5 language mode, like the code it moved from
- [`e1d3cf1`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e1d3cf1) PTNews: move the news screens and the graph into the package
- [`efda4e5`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/efda4e5) Design status: merged split/apps
- [`8b742bd`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8b742bd) Design status: 01:08 check
- [`f79f867`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f79f867) Design status: 00:46 check
- [`5747e37`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5747e37) Design status: 00:25 check
- [`62e7f43`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/62e7f43) Design status: markers for the editor
- [`7c8884b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7c8884b) Design status: conductor answers
- [`49938f7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/49938f7) Design: status page with the PTNews map and the PrompTugal shell plan

### [v0.4.1](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.1) 2026-11-08 04:13 UTC

- [`3899bb1`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3899bb1) Reminders take their URL scheme from AppLinks.scheme; status page
- [`9de7a61`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9de7a61) AppReviewTests: the bounded load calls loadProducts, not itself
- [`63ad66f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/63ad66f) AppReviewTests: bound the StoreKit product load to 15 s so a simulator without products records the known issue instead of hitting the 60 s limit

### [v0.4.0](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.4.0) 2026-11-08 03:31 UTC

- [`8132bec`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8132bec) status: release.B takeover
- [`b5565d9`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b5565d9) status: release handoff head
- [`c66bcdb`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c66bcdb) VERSION: v0.4 again (a conflict marker slipped into the handoff merge; dev's own bump stays on dev)
- [`0ed75bc`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0ed75bc) ios-release: skip cleanly, before the archive, when an app has no App Store Connect record
- [`d0ad4d6`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d0ad4d6) workflows: grant the changes call actions: read (startup failure)
- [`43207a8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/43207a8) ios.yml: quick input for manual runs; packages follow the branch diff
- [`6c26a23`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6c26a23) release-setup, status: one version number
- [`279dbca`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/279dbca) One version number: app version = repo release version; build the release commit after website.yml

### [v0.1.82](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.82) 2026-11-08 03:28 UTC

- [`cceddbf`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cceddbf) apps status: run 303
- [`5a62177`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5a62177) apps status: runs 289 and 290
- [`e97530b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e97530b) apps: riskmandate testflight true (same Apple account); status
- [`f5dc0ed`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f5dc0ed) apps status: handoff
- [`eab1d7a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/eab1d7a) apps status: phase 4 plan for extensions
- [`7d28094`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7d28094) Apps/PrompTugal: PublicShell moves to Shell/ (design's folder, synchronized group)
- [`7dea0d8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7dea0d8) Apps: new RiskMandate and PrompTugal projects (bundle ai.riskmandate.app, news.promptugal.reader, 0.4.0)

### [v0.1.81](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.81) 2026-11-08 03:26 UTC

- [`fb9a42a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/fb9a42a) briefs: Beta App Review approved PrompTugal 0.3.1 (4) in about 24 hours

### [v0.1.80](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.80) 2026-11-08 03:14 UTC

- [`11ab789`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/11ab789) website: find app files in Packages/ too (Websites.json moved to PTWeb)
- [`17a160c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/17a160c) tests: put each test where it can see what it tests
- [`cbb3074`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cbb3074) team: status page after run 293
- [`115ba30`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/115ba30) PTWeb: own the schedule storage key and change event (PTWeb cannot see ScheduleDocument); reminder taps accept ptteam links
- [`8d216f3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8d216f3) team: status page, account B notes
- [`203c598`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/203c598) team: handoff section in the status page
- [`6cccf88`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6cccf88) team: move PTWeb (Bridge, WebPage, WebsiteView, Websites.json) and PTAgenda (Schedule, Notifications, AgendaView, ReaderStore) into packages
- [`bc2733b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/bc2733b) team: status update
- [`3f9d5b8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3f9d5b8) team: status update, still waiting for PTCore
- [`c90b83b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c90b83b) team: add AgendaView, ReaderStore and URL scheme to plan
- [`97e05e9`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/97e05e9) team: record conductor answers
- [`26c13f7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/26c13f7) team: status page with PTWeb and PTAgenda dependency plan

### [v0.1.79](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.79) 2026-11-08 03:06 UTC

- [`11acc2e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/11acc2e) PTCore: CollabSeams.swift (collab seams: vault access protocol, hooks, identity, page context, error text)

### [v0.1.78](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.78) 2026-11-08 02:54 UTC

- [`15a0970`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/15a0970) Platform status: handoff section
- [`ce3602e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ce3602e) PTCore: AppLinks.scheme, the app's own URL scheme
- [`90a98e8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/90a98e8) Platform status: phase 4 plan
- [`4abe4e2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4abe4e2) Platform status: phase 2 green

### [v0.1.77](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.77) 2026-11-08 02:24 UTC

- [`3e960df`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3e960df) ios.yml trial: on a self-hosted Mac each test job gets its own simulator and deletes it
- [`4784b50`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4784b50) ios.yml trial: runner choice for manual runs (macos-26 or self-hosted); Xcode selection without sudo

### [v0.1.76](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.76) 2026-11-08 01:47 UTC

- [`f824d76`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f824d76) briefs: three apps handoff, Team and RiskMandate App Store Connect records exist

### [v0.1.75](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.75) 2026-11-08 01:34 UTC

- [`e98c51f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e98c51f) briefs: three apps handoff, final heads of all nine sessions

### [v0.1.74](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.74) 2026-11-08 01:31 UTC

- [`a6c1a68`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a6c1a68) briefs: three apps, handoff to conductor.B (state of dev, branches, merge protocol, decisions)

### [v0.1.73](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.73) 2026-11-08 01:22 UTC

- [`1d954dc`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1d954dc) briefs: three apps, internal testers only during the summit

### [v0.1.72](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.72) 2026-11-08 01:21 UTC

- [`7375364`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7375364) briefs: three apps, RiskMandate publishes from the same account

### [v0.1.71](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.71) 2026-11-08 01:20 UTC

- [`f1be270`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f1be270) PTCore: escaping action, StateView title and FreshnessLabel failed in public inits; apps.json all += .github/scripts
- [`441142e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/441142e) PTCore: fix generated init with a trailing comment
- [`8327a21`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8327a21) Platform phase 2: move design, HTTP client, feed models, Lisbon time and build info into PTCore

### [v0.1.70](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.70) 2026-11-08 01:12 UTC

- [`8f8b09a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8f8b09a) TestFlight ops: review contact from secrets only; demo vault key and lane optional
- [`bd675de`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/bd675de) Status: testflight, build 152 uploaded and processed

### [v0.1.69](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.69) 2026-11-08 01:00 UTC

- [`c160f4f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c160f4f) screens.yml: manual runs only (runner load)

### [v0.1.68](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.68) 2026-11-08 00:59 UTC

- [`059a01f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/059a01f) briefs: three apps, one version for every app (v0.4.n), Screens by hand during the split

### [v0.1.67](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.67) 2026-11-08 00:57 UTC

- [`5c5ce57`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5c5ce57) Status: testflight, real state of builds 4, 5, 6
- [`adfdff3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/adfdff3) tf.py status: ask for the relationships it includes

### [v0.1.66](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.66) 2026-11-08 00:55 UTC

- [`5464518`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5464518) TestFlight ops: tf.py, manual workflow, review-info files, status page

### [v0.1.65](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.65) 2026-11-08 00:52 UTC

- [`e83a083`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e83a083) ios.yml: do not run on pushes to split/**; dispatch by hand
- [`109225f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/109225f) status: release green
- [`8e2fab1`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8e2fab1) status: release
- [`9300427`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9300427) status: release, screens names
- [`96dfa70`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/96dfa70) release-setup: three apps; release notes use the app's tag
- [`a411f6a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a411f6a) status: release
- [`b5d2afb`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b5d2afb) ci: build, test and upload only the apps a change affects

### [v0.1.64](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.64) 2026-11-08 00:41 UTC

- [`e5328ff`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e5328ff) vault: move Vault/ into PTVaultUI; public API; background task id is a parameter
- [`b04c280`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b04c280) status(vault): CollabVaultAccess conformance planned
- [`bf24903`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/bf24903) status(vault): phase 1 trigger, keychain note for release notes
- [`a8d6340`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a8d6340) status(vault): map of Vault/ dependencies and plan for PTVaultUI

### [v0.1.63](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.63) 2026-11-08 00:03 UTC

- [`8555016`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8555016) Platform phase 1: workspace, seven empty packages, apps.json, check scripts

### [v0.1.62](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.62) 2026-11-07 23:48 UTC

- [`ecf8a4a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ecf8a4a) briefs: three apps, rulings from the first plans (PTCore additions, NewsSource, seams, schemes, keychain)

### [v0.1.61](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.61) 2026-11-07 23:44 UTC

- [`6254ada`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6254ada) briefs: three apps, one repository (plan and contracts for tonight's split)

### [v0.1.60](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.60) 2026-11-07 22:48 UTC

- [`62381b2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/62381b2) iOS release: upload to TestFlight on every push to dev that builds

### [v0.1.59](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.59) 2026-11-07 18:06 UTC

- [`8dfacde`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8dfacde) Status: platform, final run 263 green
- [`aa64031`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/aa64031) Status: platform, item 6 done, StoreKit outcome, ready to merge
- [`02176c0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/02176c0) StoreKit experiments: keep the scheme setting, drop what did not help
- [`60b4070`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/60b4070) StoreKit probe: try the .storekit as a test-bundle resource

### [v0.1.58](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.58) 2026-11-07 17:13 UTC

- [`5c23770`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5c23770) briefs: App Review readiness outcome, every list on dev

### [v0.1.57](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.57) 2026-11-07 17:12 UTC

- [`c270bfa`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c270bfa) App: install the notification delegate in init (Q6); use Lisbon.day (Q8)
- [`b324734`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b324734) CI unit tests: sign the test host ad hoc so StoreKit testing answers
- [`2ecc2fc`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/2ecc2fc) Scheme: StoreKit configuration on the Test action; StoreKit probe test

### [v0.1.56](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.56) 2026-11-07 17:08 UTC

- [`54cc568`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/54cc568) Review status: Lisbon.day switch done, run 252 green
- [`cc3f4ae`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cc3f4ae) Use Lisbon.day(_:) (team's shared helper) in AIContext, AITools and CoordinationStore

### [v0.1.55](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.55) 2026-11-07 17:05 UTC

- [`e7cfc2c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e7cfc2c) After design's merge: review notes, privacy and support match the app's UI text (sample data, Settings links, debug switch); checklist shows what is on dev

### [v0.1.54](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.54) 2026-11-07 17:03 UTC

- [`89b17e8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/89b17e8) Design status: runs 249 and 251 green on 842e7f7
- [`ebdb149`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ebdb149) Design App Review status: done, design tests green (run 237)
- [`8c3ba61`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8c3ba61) Design App Review status 15:22
- [`cbf75c2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cbf75c2) Design App Review status 14:55
- [`920ad9e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/920ad9e) Team notes: Reading credit only when available (R5); WebPage refuses checkout pages on every navigation and new-window link (3.1.1); reminder links open the session or briefing (Q6); TeamEndpoints.base replaces TeamSite (Q8); tests
- [`4cb7122`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4cb7122) Sample mode keeps and restores the previous 'who am I'; PreviewSamples.data() no longer writes it (previews use previewData()); no -PTMe persistence
- [`3b9b099`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3b9b099) App Review readiness (design): sample data and the reader path for reviewers, debug off in release and guarded links, graph index safety, privacy cover in the app switcher, privacy/support links and independence note, Split View widths, smaller fixes, with tests

### [v0.1.53](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.53) 2026-11-07 16:31 UTC

- [`e29e349`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e29e349) After team's merge: Reading credit 'Debug builds only'; support FAQ on blocked checkouts and reminder permission; privacy reminders line

### [v0.1.52](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.52) 2026-11-07 16:29 UTC

- [`768cae2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/768cae2) Status: App Review list done, CI green (run 242)
- [`853425b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/853425b) Merge origin/dev; keep DayPlanner.lisbonDay as a forwarder to Lisbon.day for collab's call sites
- [`c5fc748`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c5fc748) Status: CI history for the App Review list
- [`92446ca`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/92446ca) Tests: StoreKitTest returns no products on the CI simulator; record it as a known issue, keep every check when products load
- [`3a59e95`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3a59e95) Tests: hold the SKTestSession for the whole test; test ReminderInbox's hold/take without notifying the host app
- [`de93864`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/de93864) Tests: label the gate helper's host parameter (fixes the test build)
- [`a39b136`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a39b136) Fix two more compile errors: a guard re-declaring a local, await inside a ternary
- [`c6a7719`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c6a7719) Bridge gate: Gate has no message property; use one refusal text (fixes the build)
- [`9597337`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9597337) App Review readiness: team status
- [`9471fa9`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9471fa9) App Review readiness (team): Q1, Q3, R5, Q6, 3.1.1, S7, Q8, Q10

### [v0.1.51](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.51) 2026-11-07 15:55 UTC

- [`dd4a394`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/dd4a394) Privacy and support pages checked against collab's merge: Ask consent wording, Report… and Block as the app has them

### [v0.1.50](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.50) 2026-11-07 15:53 UTC

- [`de54497`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/de54497) Review status: collab list done, run 233 green on iPhone and iPad
- [`7ca0a00`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7ca0a00) Tests: build the me.json fixture with a plain string (the raw-string concatenation did not parse)
- [`d61158b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d61158b) Review status: builds 203, 209, 214 green; unit tests dispatched
- [`41e8a78`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/41e8a78) App review readiness: collab status page
- [`5afdf59`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5afdf59) One set of team models (Q8): Ask's team context and the people list read TeamStore's TeamPerson and CommandCentre
- [`197061d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/197061d) Tests: import UIKit for the pasteboard test
- [`83722c0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/83722c0) Ask: links in answers need confirmation showing the full URL (https and mailto only); Copy is local-only and expires after two minutes (S7)
- [`12b8d6b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/12b8d6b) Messages: report and block (1.2), lanes only to dev.send.sgraph.ai, tokens in the Keychain, crypto off the main actor, short error text
- [`a442442`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a442442) Tests: fake vault keeps its files under contents
- [`ae1909b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ae1909b) S5: my key, plan and notes only from and to my own vault, never a teammate's imported one
- [`aa1397e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/aa1397e) Ask: consent before anything goes to OpenRouter (App Review 5.1.2(i), R2/S2)

### [v0.1.49](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.49) 2026-11-07 15:18 UTC

- [`8dac137`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8dac137) Product pages follow the App Review fixes: features with code markers, Reading credit 'Debug builds only', release-setup and summary corrections, build-log entry

### [v0.1.48](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.48) 2026-11-07 15:07 UTC

- [`7f4ebfa`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7f4ebfa) Vault review status: done, CI green (206, 213, 221, round trip 14)
- [`da2344c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/da2344c) Vault app: strict readers with pinned signers (S1), no unprotected Keychain items (S3), explicit 'my vault' (S5), SecureField (S6), readable errors (Q7), clipboard clear (S7); review demo vault script
- [`93de6d4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/93de6d4) SGitVault: enforce signatures and pin signer keys (S1); readable errors (Q7); size and depth caps (S7)

### [v0.1.47](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.47) 2026-11-07 14:50 UTC

- [`45016b1`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/45016b1) Status: platform, CI run 210 green
- [`99c4e1c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/99c4e1c) Status: platform, design handback and Q9
- [`aaa6a34`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/aaa6a34) Hand LaunchOptions/WebPage/AppShell back to design; Websites column fits Split View (Q9)
- [`6b2a0ba`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6b2a0ba) Status: platform, App Review readiness
- [`1827ccd`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1827ccd) Entitlements: drop applinks: until promptugal.news serves its AASA file
- [`f3eb41d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f3eb41d) ReaderStore: decode content.json off the main thread; cap cached details
- [`c5ccde7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c5ccde7) HTTPClient: cap response bodies at 10 MB, adjustable per call (S7)
- [`66081e3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/66081e3) Release builds: launch arguments and web inspector are Debug only; CI builds Release
- [`a0147e8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a0147e8) Purpose strings and background modes match what the app does

### [v0.1.46](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.46) 2026-11-07 14:33 UTC

- [`bec2ee3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/bec2ee3) App Review readiness: privacy page matches the code, support contact, review notes, privacy labels, pack status on the dashboard

### [v0.1.45](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.45) 2026-11-07 14:26 UTC

- [`8c7fad1`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8c7fad1) briefs: App Review readiness pack (security, guidelines, stability findings and owners)

### [v0.1.44](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.44) 2026-11-07 13:51 UTC

- [`b3c7b5c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b3c7b5c) Site: credit RiskMandate's Agent Behaviour Policies for the 100+ agent team

### [v0.1.43](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.43) 2026-11-07 13:48 UTC

- [`9adbad8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9adbad8) Site: Powered by RiskMandate, encrypted vaults by sgit

### [v0.1.42](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.42) 2026-11-07 13:47 UTC

- [`f671b81`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f671b81) Site: sgit is ours, so product pages may name it

### [v0.1.41](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.41) 2026-11-07 13:43 UTC

- [`7093042`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7093042) Site: Overnight page — the night's work, screen by screen, with CI screenshots

### [v0.1.40](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.40) 2026-11-07 10:21 UTC

- [`eedb28a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/eedb28a) Status: platform final facts at 10:02
- [`dbdf416`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/dbdf416) Status: collab final (09:55), all on dev and green
- [`70a7bd0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/70a7bd0) Status: final (dev runs 180 and 188 green; bridge e2e rerun)

### [v0.1.39](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.39) 2026-11-07 09:18 UTC

- [`434764e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/434764e) Morning summary final (09:20); build log checkpoint 12, wrap-up
- [`8f95a01`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8f95a01) Status: release engineering final, dev runs 37 and 38 green
- [`45a33b2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/45a33b2) Design status 09:15
- [`e384447`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e384447) Graph: fit the view to the 2nd–98th percentile of node positions so outliers don't shrink the graph; fewer labels when zoomed out
- [`1f0916b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1f0916b) Status: final platform page for the overnight push
- [`2a22b52`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/2a22b52) Status: collab 09:05, all on dev and green
- [`c26e517`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c26e517) Status: release engineering final (08:45): what Dinis does next, done list with run numbers, open items
- [`31dc9f4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/31dc9f4) Status: what works without keys and what needs which key
- [`b7ea2a6`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b7ea2a6) Design status: wrap-up

### [v0.1.38](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.38) 2026-11-07 09:00 UTC

- [`e87c96b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e87c96b) Screenshots: iPad from run 16, not 15 (run 15 ran before platform's fix was merged)

### [v0.1.37](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.37) 2026-11-07 08:50 UTC

- [`b0a21e3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b0a21e3) Screenshots: iPad on from screens run 15 (the first dev run with platform's whole-screen capture)
- [`2c8442d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/2c8442d) Status: 08:52 platform update
- [`0616379`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0616379) Screens: capture the whole screen and rotate iPad PNGs by their EXIF orientation
- [`6b9019e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6b9019e) Status: 08:15 platform update

### [v0.1.36](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.36) 2026-11-07 08:43 UTC

- [`7a26bf0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7a26bf0) Morning summary in its final shape; build log checkpoint 11 (08:45)

### [v0.1.35](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.35) 2026-11-07 08:40 UTC

- [`2d315b5`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/2d315b5) Status: dev runs 160 and 173 green; bridge e2e rerun
- [`2ff053a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/2ff053a) Editor status: run 173 and the iPad screenshot check (still rotated)
- [`939cbfa`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/939cbfa) Status: how to use Ask, plans, team notes and lanes, for the team
- [`a68417b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a68417b) Status: collab 08:32
- [`f49c83c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f49c83c) Design status 08:20
- [`6a39f08`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6a39f08) SGitVault tests: key classification as team keys arrive (spaces, legacy prefixes, bare forms)
- [`89cc33e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/89cc33e) Status: release engineering 08:16
- [`becaa75`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/becaa75) Build log checkpoint 10 (08:15): run 160 fully green; bridge end-to-end test on dev; the graph bug the screenshots found

### [v0.1.34](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.34) 2026-11-07 08:12 UTC

- [`9258087`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9258087) Screens: strip EXIF orientation from PNGs; check stored size from IHDR
- [`0965bfc`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0965bfc) Ask: turn role names as a property
- [`e326df8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e326df8) Ask: opt-in "keep this conversation on this device" (words only, file protected while locked; never key, context or system prompt)
- [`41b67ae`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/41b67ae) Screenshots: leave out and refuse PNGs with an EXIF orientation tag; keep iPad off
- [`ea0d411`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ea0d411) Graph: edge rows mix numbers and a date string, so decode each cell leniently (it failed with real data); Wall header smaller on iPhone
- [`c5040ad`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c5040ad) Morning summary: iPhone and iPad unit-test jobs checked in runs 150 and 154
- [`78abfac`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/78abfac) Screenshots from the newest run with iPhone images, whatever its overall result; gallery lists missing screens in one line
- [`f526c07`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f526c07) Status: team features wrap-up (green on dev, bridge checked live)
- [`ee2a31d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ee2a31d) CI: skip the macOS jobs on night/** pushes whose commit is already on dev
- [`befe96d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/befe96d) Morning summary: what is still in progress (draft)
- [`90389ca`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/90389ca) Status: release engineering 07:40
- [`e9ca109`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e9ca109) Status: collab 07:40
- [`121754c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/121754c) Vault status: wrap-up (done, how to open a team vault, not done, needs)
- [`0335d6e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0335d6e) Status: platform at 07:36
- [`a009bf2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a009bf2) Design status 07:30: what native taught us, for the website
- [`1f6b47d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1f6b47d) Build log checkpoint 9 (07:15): bridge end-to-end against the live site (team's report), screenshots per screen, CI queue
- [`55ae88f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/55ae88f) Bridge end-to-end check against the live website (Tools/bridge-e2e)
- [`3eda457`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3eda457) Previews of My day and Wall get teamFeatures() for NextHoursCard
- [`1434ab7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1434ab7) My day and the Wall: the team session's NextHoursCard (my next three hours, with a Lisbon countdown)

### [v0.1.33](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.33) 2026-11-07 07:12 UTC

- [`3fff23e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3fff23e) CI: night/** pushes run only the build job; unit tests on dev, PRs and by hand

### [v0.1.32](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.32) 2026-11-07 07:11 UTC

- [`7f726d0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7f726d0) Ask: sessions named in an answer listed under it, with pick (star) and open
- [`ec4b447`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ec4b447) Status: release engineering 07:08

### [v0.1.31](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.31) 2026-11-07 06:49 UTC

- [`d33acfe`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d33acfe) Agenda: fast with 200+ sessions and VoiceOver — grouping, filtering and labels worked out once per change, small rows with stable ids, one accessibility element per row with open and pick actions, a minute tick instead of a timeline around the whole list

### [v0.1.30](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.30) 2026-11-07 06:47 UTC

- [`7fc12ec`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7fc12ec) Screens: one UI test per screen, screenshot before the check, PNGs only
- [`2bc4f6a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/2bc4f6a) Messages on iPad: two columns (send on the left, team notes, inbox, sent and log on the right); iPhone keeps one list
- [`fb222d3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/fb222d3) Status: team features at 06:45
- [`c56eb68`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c56eb68) Design status 06:30
- [`e97868a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e97868a) Planner: cache the plan and the teammate index; Today card for the next 3 hours
- [`777b943`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/777b943) Accessibility: one element per row in Messages, team notes and Where is everyone; labels for clashes, tool calls, my questions and icon-only buttons
- [`e186f20`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e186f20) Status: collab 06:18, run 117 green

### [v0.1.29](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.29) 2026-11-07 06:41 UTC

- [`ddb3f3c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ddb3f3c) Status: release engineering 06:40
- [`a6270ad`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a6270ad) Morning summary: what to test first, ten steps, checked against the code
- [`670e152`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/670e152) Build log checkpoint 8 (06:20): first screenshots and the bugs they found; CI queue
- [`0695a5e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0695a5e) README: CI signs and uploads (release setup); build number is set by the iOS release workflow

### [v0.1.28](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.28) 2026-11-07 06:14 UTC

- [`491de8d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/491de8d) Screens: list the files in the summary before failing the export step
- [`94f726f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/94f726f) Screens: keep dotted ids whole in PNG names; require 13 per device
- [`80f0b83`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/80f0b83) Shell: an accessibility identifier pt.destination.<id> on every opened screen, for the screenshot test
- [`ce684b2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ce684b2) Screens: design's 13 destination ids, fail on a screen that didn't open, upright iPad PNGs
- [`9582dd9`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9582dd9) Fixes from the first screenshots: 'in in 1 day', future 'updated' times, the web twin as a sheet on iPhone (its title leaked into the nav bar), short iPhone tab titles

### [v0.1.27](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.27) 2026-11-07 06:14 UTC

- [`6fb9021`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6fb9021) Status: release engineering 06:15
- [`3874921`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3874921) SGitVault: VaultPicks.union and VaultLanes.fileName, with tests
- [`870f1d8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/870f1d8) Screenshots: publish only files whose id is a registered screen (run 4 cut dotted ids)
- [`1e860f9`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1e860f9) Screenshots: publish iPhone only until the rotated iPad shots are fixed (website/screens.json)
- [`08d64a9`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/08d64a9) Ask: key check reads the key once before building the request
- [`c7f142f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c7f142f) Ask settings: Check key (OpenRouter /api/v1/key: works, usage, limit), logged as ai.key.check
- [`e8503a8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e8503a8) Morning summary: release's 45-minute TestFlight checklist as Dinis's first action; install from Xcode until then
- [`43263fb`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/43263fb) Release: notes start with each session's status summary; morning checklist for the first internal TestFlight build; install section covers the two extensions; status 06:05
- [`2798a55`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/2798a55) Status: release engineering 05:52
- [`c8e7548`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c8e7548) Vault status: how a teammate opens a team vault; CI fully green at 92f948d
- [`b5955d2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b5955d2) Reading credit: an Open PrompTugal.news button while the balance is unread or credit is pending
- [`1cad112`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1cad112) Checkpoint 7: merge time 05:40, not 05:35
- [`784ed58`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/784ed58) Build log checkpoint 7 (05:40): first fully green run of the integrated app; the Wall in the feature list
- [`e61d145`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e61d145) iPad: Ask beside any screen (collab's askAnywhere) on the detail view

### [v0.1.26](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.26) 2026-11-07 05:41 UTC

- [`d4c6fd6`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d4c6fd6) CI: upload the 60 MB test result bundle only when tests fail; status 05:40
- [`cb41ff9`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cb41ff9) Ask: hold-to-talk dictation in the composer; "Where should we meet today?" prepared prompt
- [`de01eab`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/de01eab) Design status 05:30
- [`15a13c8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/15a13c8) Status: release engineering 05:30
- [`17efc3d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/17efc3d) Reminders: ask once at the first pick or identity; refill on foreground
- [`7458ec4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7458ec4) Status: dev green with team features (run 104); hooks on dev
- [`c3df569`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c3df569) Release CI: never cancel a started run (dev merges were cancelling archives mid-way); status 05:18
- [`f7178e1`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f7178e1) Collab hooks: current page from WebPage for Ask, Debug → Collaboration and AI, and its key presence in Keys (names only)
- [`b006051`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b006051) Status: collab 05:20, shell requests for design
- [`beace5f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/beace5f) Ask: askAnywhere() for the shell (toolbar button, ⌘K, iPad side panel, iPhone sheet), readable width on iPad, ⌘↩ to send, copy and share on answers; Messages: form-sized sheets on iPad
- [`cccf7e5`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cccf7e5) Status: release engineering 05:10
- [`4622f04`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4622f04) Wall: the team, the agents' 24 hours, the pipeline, runs and the next stand-up on one self-refreshing screen
- [`92f948d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/92f948d) Vault status 05:05; merge dev
- [`80792d3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/80792d3) Release: dry_run input (sign + export, no upload) and a profile-vs-entitlements check before the signed archive; status 04:55

### [v0.1.25](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.25) 2026-11-07 05:16 UTC

- [`3439270`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3439270) Screens: per-job concurrency so a started screenshot run finishes

### [v0.1.24](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.24) 2026-11-07 05:15 UTC

- [`9f1edf3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9f1edf3) Restore the feature-claim negative control with a synthetic unbuilt feature; checkpoint 6 (all 19 features on dev)
- [`89b6d63`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/89b6d63) Developer area: link the morning summary
- [`05838da`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/05838da) Morning summary: first draft (04:55), completed through the night
- [`f3a4128`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f3a4128) Build log checkpoint 5 (04:45); Progress in the overnight README; count Swift in every target

### [v0.1.23](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.23) 2026-11-07 05:13 UTC

- [`f06304c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f06304c) Website tests: skip the not-yet-shipped check when every feature has shipped

### [v0.1.22](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.22) 2026-11-07 05:12 UTC

- [`4409607`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4409607) Lanes: descriptor writes format only when set; header values drop empty pieces from CR LF
- [`e520a70`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e520a70) Status: collab 05:00
- [`877127f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/877127f) Team notes through vaults: append to lanes/team in my vault (vault's append), read mine and linked teammates'
- [`fec99b4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/fec99b4) Status: plan for vault-folder team notes
- [`c5a1664`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c5a1664) Status: collab 04:15
- [`7e097f2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7e097f2) Wire collab to dev: vault glue (VaultCollabAccess over VaultSession), picks and day plan from the team stores, entry views registered
- [`e40664d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e40664d) Ask: read-only tools over the app's data (agenda search, now, picks, team, agents, teammates' plans), each call shown
- [`17e608e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/17e608e) Status: collab 04:10
- [`35506ae`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/35506ae) Collaboration debug panel: keys by presence, hooks, Ask requests, lanes log
- [`1083e6a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1083e6a) Lanes: pure helpers nonisolated
- [`b29b53e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b29b53e) Messages: sgi1 inbox links, the account inbox from the master vault (PKCS#8), list pagination
- [`4cbb81a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4cbb81a) Pick ids are the bare slug (contracts §3, 03:45 change); older forms are read and converted
- [`65cd9a4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/65cd9a4) Messages: append lanes (sgit hybrid envelope), my inbox lane, newsroom notes, voice dictation, LanesLog
- [`c3f1ac0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c3f1ac0) Where is everyone: overlaps, clashes and meet-here slots from vault-shared picks; status page
- [`0957fe7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0957fe7) Ask: native OpenRouter chat with streaming, Keychain key, context toggles and prepared prompts

### [v0.1.21](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.21) 2026-11-07 04:59 UTC

- [`5d4c7ca`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5d4c7ca) CI: per-job concurrency so started test jobs always finish

### [v0.1.20](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.20) 2026-11-07 04:42 UTC

- [`e8ed288`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e8ed288) Build log checkpoint 4 (04:35): the app opens on the shell, 16 of 19 features in the beta
- [`d7da3c6`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d7da3c6) Launch arguments to open any screen directly, with sample data, for screenshots and UI tests
- [`f9e4df5`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f9e4df5) Design status 04:30
- [`15f865c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/15f865c) Shell: teamFeatures() once, at the app root
- [`5f9b17f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5f9b17f) One identity: the design screens' 'who am I' follows the team session's TeamIdentityStore, both ways
- [`e83ad42`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e83ad42) Shell: screens with their own navigation (the vault's split view) are not nested: iPad hides the shell sidebar, iPhone opens them full screen
- [`3519827`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3519827) Agenda: a native agenda in the shell with picks on the one schedule, instead of nesting the old reader

### [v0.1.19](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.19) 2026-11-07 04:41 UTC

- [`07170bb`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/07170bb) Status: platform at 04:42
- [`c53c2c0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c53c2c0) Privacy manifest for the app (TestFlight blocker ITMS-91053)
- [`bb7c75c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/bb7c75c) Screens: lowercase iphone/ipad file names and 1600 px longest side
- [`7c6cb33`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7c6cb33) Release setup: TestFlight purchases are sandbox, not charged
- [`923f7e7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/923f7e7) Release: privacy manifest draft (UserDefaults, file timestamps) and a missing-manifest warning in every package run; checklist covers NFC, background modes, IAP products; status 04:35
- [`bba162e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/bba162e) Screens: UI test that screenshots every main screen; screens.yml on dev

### [v0.1.18](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.18) 2026-11-07 04:41 UTC

- [`500b5ad`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/500b5ad) Schedule JSON: fixed key order, as the website writes it
- [`70de9d8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/70de9d8) .teamFeatures() applied twice (app root and shell) now injects and presents once
- [`e8b9179`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e8b9179) Status: team features at 04:15 (merged into dev; hooks pending; CI)

### [v0.1.17](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.17) 2026-11-07 04:30 UTC

- [`ea06a2e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ea06a2e) Real screenshots: website.yml downloads the newest screens-* artifact; screens page gallery, feature cards and the home iPad use them

### [v0.1.16](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.16) 2026-11-07 04:25 UTC

- [`0e03ef3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0e03ef3) CI: run SGitVault's swift test in the build job (3 macOS runners per push, not 4)
- [`5ada82a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5ada82a) Vault app: files(in:) and append(_:to:) for collab's append lanes
- [`027413b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/027413b) Status: platform at 04:16
- [`5365593`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5365593) Wire the shell, team and vault into the app
- [`a3c2aa6`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a3c2aa6) Vault: merge dev; pull on foreground from VaultSession; status
- [`5cdbe95`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5cdbe95) Keys: the vault session's key inventory (names, store, protection; never values)
- [`156c3d7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/156c3d7) Wire the team session's features: .teamFeatures(), schedule, planner, team home, credit, reminders, bridge log, and the bridge in WebPage

### [v0.1.15](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.15) 2026-11-07 04:11 UTC

- [`8a881ab`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8a881ab) Features count only what the app can reach: screens need AppShell as root, bridge and reminders need .teamFeatures(); checkpoint 3
- [`273f533`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/273f533) Features: view:<Name> evidence (a real registration using that view); Where is everyone needs TeamPlansView in the shell
- [`6cdae35`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6cdae35) Features: Face ID counts only when the vault screen is built, not just the Keychain code
- [`3d2bc38`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3d2bc38) CI page: show Xcode 2660 as 26.6

### [v0.1.14](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.14) 2026-11-07 04:09 UTC

- [`471916c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/471916c) Vault: log each decrypt pipeline step; smoother unlock
- [`a05471e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a05471e) Schedule ↔ vault: pull picks when a reader vault opens; save on request
- [`6c7cedb`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6c7cedb) App: register and schedule the vault's background refresh
- [`9ddc8ba`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9ddc8ba) Wire the vault session: VaultHomeView in the registry, and its VaultTrafficLog for Debug
- [`6d93eb6`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6d93eb6) promptugal:// URL scheme; widget opens the schedule; Siri phrases
- [`aba36e4`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/aba36e4) Debug: native and web balance, screen by screen
- [`396968c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/396968c) Tests: break up two expressions the type checker timed out on
- [`ab3a0d5`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ab3a0d5) Design status 03:45
- [`ce5b535`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ce5b535) Stand-up card stacks at accessibility text sizes
- [`a2d4ba8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a2d4ba8) Graph: the legend folds on iPhone so the graph gets the screen
- [`2e176b3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/2e176b3) Native command centre: a person's board issues by workstream, with filters and a status bar
- [`8dc3995`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8dc3995) Lossless ISO times for the website round trip; vault sync with loadPicks/savePicks
- [`1b45934`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1b45934) Agents: my agents' last actions on one time line
- [`a3ee6f9`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a3ee6f9) Design status: green on CI, news, graph, observability, debug, widget designs
- [`1fd3c7d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1fd3c7d) Debug on by default for the team; previews at iPhone and iPad sizes for every screen; compact layouts for the wake grid and team header
- [`1927210`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1927210) Widget and Live Activity designs as plain SwiftUI views
- [`52a1bad`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/52a1bad) Sample data for previews of every dashboard
- [`63fb2d0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/63fb2d0) News in every form (feed, native newsletter reader, stories) and native observability charts
- [`461783e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/461783e) Debug panels: network with timing bars, vault traffic with the decrypt pipeline, bridge, storage, keys (names only), build
- [`a44c198`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a44c198) Native graph explorer: the whole graph in one Canvas, search, neighbours as sentences, paths
- [`d1d2291`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d1d2291) Use the shared HTTPClient and BuildInfo; stubs for news, graph, observability and debug so CI compiles the shell
- [`142b581`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/142b581) Native dashboards: my day, the team, agents with the wake grid, briefed, newsroom
- [`912e2b6`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/912e2b6) Design system, shell registry, web page and feeds for the native dashboards
- [`7091ad7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7091ad7) SGitVault package skeleton; entitlements, StoreKit and usage strings
- [`4605bd2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4605bd2) Exclude folder placeholders from the app; HTTPClient with a request log
- [`44bb245`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/44bb245) Project: iOS 18, folder-synchronized groups, unit tests, build info
- [`47dcca6`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/47dcca6) CI: iOS workflow that builds and tests the app on a macOS runner
- [`7c72c8c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7c72c8c) Status: conductor's ruling on shortcuts; iPad time line, vault mirror, badge
- [`514eca2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/514eca2) iPad: the day as a time line beside My day and the planner; lists stay the iPhone layout
- [`9723c0d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9723c0d) Schedule mirror to the vault's agenda/picks, against closures, with a test
- [`f1ff134`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f1ff134) App icon badge from me.json; refreshTeam() for background refresh
- [`e66f07a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e66f07a) Where is everyone: teammates' sessions per day, from their command centres
- [`5f34440`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/5f34440) Bridge relay also carries its payload in a DOM attribute; status update
- [`7ecc168`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7ecc168) Tests for team data, reminders and the planner; Add to Calendar; App Intents; widget feed
- [`6308035`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6308035) Status: team features, first report
- [`1cedc22`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1cedc22) Bridge, team data, reminders, planner, meter and native top-up
- [`823d502`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/823d502) Schedule: one store on the website's nr.schedule.v1 format, with saved.json migration and tests
- [`947d8d5`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/947d8d5) Schedule: one store on the website's nr.schedule.v1 format, with saved.json migration and tests

### [v0.1.13](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.13) 2026-11-07 04:08 UTC

- [`c04d2d5`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c04d2d5) Status: release engineering 04:10
- [`93339e6`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/93339e6) Release CI: push trigger on dev only (night branches: ios.yml or a manual run); status 03:52

### [v0.1.12](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.12) 2026-11-07 03:58 UTC

- [`309e02a`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/309e02a) CI: slim ios-vault.yml to the Swift-writes/sgit-reads round trip
- [`069c8e6`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/069c8e6) SGitVault tests: export the Swift-written vault through a fresh reader
- [`f314891`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f314891) Vault status: views, background, picks, CI state
- [`34f9d3c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/34f9d3c) SGitVault tests: expect Python's \u00e1 escape (the literal had been unescaped)
- [`894c933`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/894c933) Vault app: read-modify-write with retry, picks mirrored at apps/agenda/picks.json
- [`54b5cc0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/54b5cc0) Vault app: VaultBackground.register()/schedule() for BGAppRefreshTask
- [`ccb167d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ccb167d) Vault app: native unlock and vault browser for iPhone and iPad
- [`97daedd`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/97daedd) Vault status: writer, app code, what is blocked
- [`291af1b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/291af1b) Vault app: Secure Enclave commit signer, per-device branch, commit from VaultSession
- [`0152282`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/0152282) SGitVault: Swift commit builder and push, with sgit reading it back on Linux
- [`8bdf3f3`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8bdf3f3) Vault app glue: Keychain behind Face ID, Secure Enclave wrapping, passkey PRF, session; CI type-check
- [`4996faa`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4996faa) SGitVault: passkey door (port of the website's door.js), account unlock, account fixture
- [`19c25f9`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/19c25f9) SGitVault: Swift sgit vault reader, throwaway fixtures, tests, interim CI

### [v0.1.11](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.11) 2026-11-07 03:42 UTC

- [`3157e40`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3157e40) Build log checkpoint 2 (03:45 UTC); contracts: pick id is the bare slug, places.json
- [`c8a69b8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c8a69b8) Editor status: collect items for the morning summary (pick removal decision)
- [`6e0a9ec`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6e0a9ec) Editor status: tell release the website.yml latest-build step is done

### [v0.1.10](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.10) 2026-11-07 03:40 UTC

- [`b7949af`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b7949af) Status: release engineering 03:35
- [`e34d687`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e34d687) Release CI: list each target's entitlements next to its profile secret in the package summary
- [`b65fa98`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b65fa98) Release setup: Time Sensitive Notifications capability (new app entitlement on dev)
- [`ee9f110`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ee9f110) CI: don't run iOS jobs for briefs, website, root Markdown or VERSION
- [`a3bc665`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a3bc665) Status: platform on dev at 03:12; next hooks
- [`ece3e53`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/ece3e53) CI: cap the simulator boot wait at 5 minutes

### [v0.1.9](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.9) 2026-11-07 03:24 UTC

- [`d6b9cd2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d6b9cd2) Website: show braces quoted in briefs as entities
- [`4cff36e`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4cff36e) Status: release engineering 03:25
- [`2da0484`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/2da0484) Release CI: run on dev and night/release only, skip docs/site-only pushes (macOS runners are the bottleneck)
- [`3a7db45`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3a7db45) Release CI: record the source branch in build-info; name the manual-signing secrets when skipping; status 03:15
- [`aff6bed`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/aff6bed) Release CI: internal_only (TestFlight internal testing only) and source_ref (build another branch's project) inputs; docs internal-first
- [`c8c2496`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c8c2496) Release CI: pushes never cancel a manual or tag run
- [`686a6ec`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/686a6ec) Release: per-target App Store profiles via a CI-only xcconfig (app, widgets, intents); list targets to sign in every package run
- [`608a386`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/608a386) Status: release engineering 03:05; setup doc covers submit workflow
- [`d817557`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d817557) Release: latest-build.sh for the website's latest CI build panel
- [`4077a29`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4077a29) Release: App Store Connect API client (stdlib + openssl); TestFlight job answers export compliance and sets What to Test; App Store submit workflow (dry run by default)
- [`020ffdb`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/020ffdb) Release CI: size check against dev and budgets; release notes from git log
- [`7f7755c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7f7755c) Release setup checklist: portal, App Store Connect, secrets, TestFlight, side-loading, gotchas
- [`e0bb7e2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/e0bb7e2) Release CI: unsigned archive, .ipa and simulator app; TestFlight job gated on secrets

### [v0.1.8](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.8) 2026-11-07 03:13 UTC

- [`088052b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/088052b) Screens page: screens registered on night/* branches that dev does not have yet
- [`a5283d6`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a5283d6) Contracts §3: pick 'at' is ISO 8601 (app reads ms too); vault mirror at apps/agenda/picks.json; Changes log
- [`a7699b6`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a7699b6) Editor status: next checkpoint time
- [`fc9a4c8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/fc9a4c8) Push dashboard: read each session's status from its own night/* branch when newer than dev
- [`f2d0982`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f2d0982) CI page: latest iOS build panel from release's latest-build.sh; site publishes ios-build.json

### [v0.1.7](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.7) 2026-11-07 03:12 UTC

- [`4541361`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/4541361) Contracts §3: pick 'at' is ISO 8601 (app reads ms too); vault mirror at apps/agenda/picks.json; Changes log
- [`97947d1`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/97947d1) Editor status: next checkpoint time
- [`2a105d7`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/2a105d7) Push dashboard: read each session's status from its own night/* branch when newer than dev
- [`76e44bb`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/76e44bb) CI page: latest iOS build panel from release's latest-build.sh; site publishes ios-build.json

### [v0.1.6](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.6) 2026-11-07 03:12 UTC

- [`72587a0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/72587a0) Website: follow the new project layout; show GitHub expressions on the CI page
- [`7de8210`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7de8210) Info: background refresh for the vault (BGTaskScheduler)
- [`6ba5515`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/6ba5515) Status: platform at 03:08
- [`663e140`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/663e140) Defaults: PrompTugal and the team site only; team's Info and entitlements
- [`105a525`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/105a525) CI: let a running iOS run finish instead of cancelling it on push
- [`64b288d`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/64b288d) Info: ITSAppUsesNonExemptEncryption = NO (iOS-provided crypto only)
- [`a1580e2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/a1580e2) CI: drop the simulator .app job; artifacts belong to ios-release.yml
- [`df3711f`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/df3711f) CI: run the unit tests on an iPhone and an iPad simulator
- [`2de4579`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/2de4579) App Intents extension skeleton: Next session
- [`1557034`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1557034) SGitVault: take the vault session's package as is
- [`8d0e477`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8d0e477) CI: boot the simulator first, no parallel testing, test time limits
- [`9a562ac`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9a562ac) Default shortcuts: PrompTugal, the team site and the newsroom only
- [`462f658`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/462f658) Now and next widget reading the App Group; docs and CI tweaks
- [`66b2add`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/66b2add) SGitVault package skeleton; entitlements, StoreKit and usage strings
- [`cb63780`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cb63780) Exclude folder placeholders from the app; HTTPClient with a request log
- [`3933a2c`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/3933a2c) Project: iOS 18, folder-synchronized groups, unit tests, build info
- [`7d2d0ff`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/7d2d0ff) CI: iOS workflow that builds and tests the app on a macOS runner

### [v0.1.5](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.5) 2026-11-07 02:55 UTC

- [`483a0be`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/483a0be) Home and llms.txt: describe what is being built, not what is done
- [`cfeb985`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/cfeb985) Site: say plainly that this version is the team's internal app; the two platforms are where it is going
- [`8323d15`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/8323d15) Editor status: route Websites.json to team, contact address to Dinis

### [v0.1.4](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.4) 2026-11-07 02:52 UTC

- [`251f69b`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/251f69b) Site and plan: native on iPhone and iPad, install via Xcode or TestFlight; release engineer session in the overnight plan
- [`9410e04`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/9410e04) Home: claim only what dev has (frameworks), plainer first-customer line
- [`f9bc6e0`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/f9bc6e0) Brief 08: record Dinis's decisions D1-D7 and the positioning; pack status is decided
- [`df85137`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/df85137) Site: PrompTugal product site for readers and teams, features labelled from the code, generated admin pages

### [v0.1.3](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.3) 2026-11-07 02:39 UTC

- [`b3721c8`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/b3721c8) Overnight push plan: positioning, decisions, sessions and contracts

### [v0.1.2](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.2) 2026-11-07 02:26 UTC

- [`21bbb96`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/21bbb96) Add brief pack: native vs web, team first; publish briefs in a developer area

### [v0.1.1](https://github.com/PrompTugal/PrompTugal__App__iOS/tree/v0.1.1) 2026-11-07 01:51 UTC

- [`c361995`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/c361995) CI: release v0.1.n on every push to dev, then build and deploy it
- [`bd7aaa9`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/bd7aaa9) Deploy the website from dev to ios.app.promptugal.news via GitHub Actions
- [`d94e089`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/d94e089) Add product website for ios.promptugal.news
- [`1b0ecdd`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/1b0ecdd) Import PrompTugal iOS app 0.3.1 from sgit vault i9mbeqwb
- [`2bd40e2`](https://github.com/PrompTugal/PrompTugal__App__iOS/commit/2bd40e2) Initial commit
