PrompTugal for iOS

Status · Design (App Review readiness)

Done. All design items are fixed, merged with dev 8c6bfcb and fully green: build run 249, unit tests on iPhone and iPad plus the Release build in run 251.

Branch: night/design (merged from origin/dev, no rebase) · Last update: 16:00 UTC

Done

#ItemWhat changedTest
R1Demo accessTry with sample data on Who are you? (always shown, also offline): fills the app with made-up people, agents and stories (PreviewSamples), shows a Sample data banner on every screen with Leave. Sample feeds are pinned and never replaced from the network. Works in release builds (no launch arguments). I am not on the team now opens the reader's Today: the agenda, with News one tab away; Settings offers "Not on the team (reader)". Sample people have no command centre, so that card is hidden in sample mode.SampleDataTests
S4Debug in releaseDebugMode.defaultOn is true only under #if DEBUG. Destinations.openable(_:debug:) refuses debug-only screens unless debug mode is on; used by promptugal://open/…, launch arguments and restored selections. WebPage.isInspectable only under #if DEBUG. My LaunchOptions read as absent in release builds.DebugLinkTests
Q2Graph crashReplacing the graph index resets selected, path, pathStart and the sheet. Every use of a node index is checked (GraphIndex.contains), and path(from:to:) refuses nodes outside the graph. JSON numbers become indices only through GraphIndex.slot (finite, whole via Int(exactly:), in range).GraphIndexSafetyTests
S6App-switcher snapshotPrivacyCover covers the whole app whenever scenePhase is not .active.UI only
R3Privacy and supportSettings → About: Privacy (ios.app.promptugal.news/privacy.html), Support (…/support.html), and a visible note: "PrompTugal is independent. It is not affiliated with, endorsed by or sponsored by Web Summit."SupportLinkTests
Q9Split View widthsWall: two columns only from 760 pt of real width, the side column 280–380 pt. Graph: the node detail sits beside the graph from 700 pt (260–340 pt wide), otherwise opens as a sheet. Both measure the space they have, not the device.SplitViewLayoutTests
—Header tapA tap on the wake grid's hour header no longer selects row 0 (WakeGrid.row(at:…)).WakeGridTapTests
—Dynamic TypeThe Wall's stand-up time and the avatar initials use @ScaledMetric.—
—Colour-only dotThe sidebar's native/web/hybrid dot is now a symbol (shape and colour) with a text label and tooltip.—

Also done after team's and platform's notes:

ItemWhat changedTest
R5Reading credit is in the shell only when ReadingCredit.isAvailable (debug builds).TeamNotesTests.readingCredit
3.1.1WebPage refuses every navigation, in every frame, and every new-window link to a checkout (CheckoutPolicy.isBlocked) or a page the bridge handles.TeamNotesTests.checkout
Q6promptugal://open/team.schedule?session=<slug> opens that session's page; ?url= opens a briefing, only on promptugal.news and web-summit.sgit.ai.TeamNotesTests.links
Q8TeamEndpoints.base replaces design's TeamSite.—
PlatformNo -PTMe persistence; PreviewSamples.data() no longer writes "who am I"; sample mode saves and restores the previous choice.SampleDataTests

CI

RunCommitResult
2053b9b099 (all eight items)build green
2114cb7122 (sample identity)build green
217920ad9e (after merging night/team 9471fa9)red, only in team's Bridge/AppBridge.swift:164-166; team fixed it (c6a7719, a39b136)
22094aa2ef (night/team c6a7719 merged)build green
224a0b940c (night/team a39b136 merged)build green
229a0b940c, unit tests by handtest target did not compile (team's AppReviewTests.swift, fixed by team in de93864)
237a3ee648, unit tests by hand (iPhone and iPad)167 tests pass; all 7 design suites green. 3 failures, all team's StoreKit tests (AppReviewTests.swift:184, 194, 209: products do not load in CI); team told
249842e7f7 (origin/dev 8c6bfcb merged)build green
251842e7f7, unit tests by handall green: iPhone and iPad unit tests, Release device build, SGitVault tests

In progress

Nothing. The design list is done and night/design 842e7f7 (dev 8c6bfcb merged) is green on runs 249 and 251; ready for the conductor to merge.

Blocked / needs from others

  • Team (Q8), agreed, next after review: team's TeamModels become the only models for me.json and data.json (TeamPerson has every field design uses); design moves My day, Team, Briefed, Wall and Command centre to TeamStore and deletes Wire.Me/Person/CommandCentre. Wire.* stays for the newsroom JSON. Left until after review, at the conductor's preference.
  • Collab: use DebugMode.defaultOn in AskView.swift:13 and LanesView.swift:9 (sent).
  • Platform: keep PreviewSamples out of #if DEBUG (the R1 button uses it in release); the other fixed font sizes are in Team/TeamHomeView.swift:174 and App/Web/WebsiteShortcuts.swift:143, 150.

Questions for Dinis

  • None from design. The reviewer path is: launch → Who are you? → Try with sample data, or I am not on the team for the reader experience.