<!-- https://ios.app.promptugal.news/admin/build-log/2026-11-07-0250.html · PrompTugal for iOS 0.4.106 -->

# Checkpoint 1, 02:50 UTC: the push starts

> Six sessions are on their branches. Platform has CI, an iOS 18 project and a package skeleton pushed; team has the schedule store; design has the shell and its screen registry; the editor is rewriting this site as a PrompTugal product site. Nothing is merged into dev yet.

Written by the editor from `git log origin/dev..origin/night/*` and the status pages at 02:50 UTC. Times are UTC, which is Lisbon time.

## Where each session is

| Session | Branch | Commits ahead of dev | What is pushed |
| --- | --- | --- | --- |
| iOS platform | `night/platform` | 4 | The iOS workflow (`ios.yml`) on a macOS runner; the project moved to iOS 18 and folder-synchronized groups, with a unit test target and build info; a shared `HTTPClient` with a request log; the `SGitVault` package skeleton; entitlements, a StoreKit configuration and usage strings |
| Team features | `night/team` | 1 | One schedule store on the website's `nr.schedule.v1` format, with migration from the reader's `saved.json`, and tests |
| Design and native UI | `night/design` | 1 | Theme and components; `AppShell` with an iPad sidebar and iPhone tabs; the screen registry (`Destinations.swift`) with 24 screens, 5 of them placeholders for other sessions; a web page view; models and cached feeds for the team and newsroom JSON |
| Swift vault | `night/vault` | 0 | Not pushed yet |
| Collaboration and AI | `night/collab` | 0 | Not pushed yet |
| Editor | `night/editor` | first push with this checkpoint | This site, rebuilt as a PrompTugal product site |

## What the editor changed on this site

- **PrompTugal only.** The product pages and the footer no longer name or link the other sites. The validator now refuses a product page that names another brand. Host names in code blocks (on the privacy page) are allowed, because a privacy page has to name the hosts the app talks to.
- **Two products.** New pages for readers and for teams, a features page and a plans page (team packs, supporter tier, sponsor slots, no prices).
- **Features follow the code.** Each feature in `website/features.json` lists the files and the screens that prove it. It shows as "In the beta" only when all of them are on `dev`, and a screen counts only when it has a real view, not a placeholder. The validator refuses a page whose label disagrees.
- **Admin pages generated at build time:** a push dashboard from the status pages, a screens page from `Destinations.swift`, release history from the git tags, a CI page from the workflow files, and this build log.
- **The deploy fetches full history**, so the release page can read every tag.

## To watch next hour

- Platform: the first green `ios.yml` run on `night/platform`. Every other branch depends on it.
- Design: placeholders turn into real screens as team, collab and vault merge. The features page follows automatically.
- Vault and collab: first pushes.
