The Night Desk, the intake sheet, The Cut and the You tab, against
peregrine-spec-addendum-entry-and-you.md. Captured on device, 7 Sep 2026.
manifest.coat — generated into AvatarCatalog and verified against the manifest byte for byte.testAPIKeySavesToKeychain, which now asserts the input collapses too.testReducedMotionEntryStillLands drives the player's own switch.@FocusState through every control on three screens. Left as the system default — say the word and it becomes a task.| Call | What I did, and why |
|---|---|
| Type | The addendum names Lora / Nunito / IBM Plex Mono, which is what the mockups could load. The app ships Gelasio / Reddit Sans / JetBrains Mono in exactly those three roles, so every size and tracking is authored against the bundled faces. The roles carry over; the foundry does not. |
| Create button | Pinned to the floor of the intake sheet. The contact sheet scrolls inside the page, so on a phone every ordinary centre swipe lands on it and the Create button below was genuinely unreachable without dragging in the margins. Field order is unchanged; only the button left the scroll. |
| Captured library | The second Questions option is gated on a key on file and an owner profile to copy from. Offering it with no source would be a dead choice. |
| Game counts | Only The Lineup has knobs in this build. The other ten rows read "No settings yet" and open on a sentence naming what will land there, rather than promising three settings and opening on nothing. Header meta reads 11 games — the playable set; the Trap Atlas and The Usual Suspects are dossiers. |
| Test key | Kept, as a quiet text button under the saved row. §7.3 doesn't mention it, but it is the only way to tell a typo from an outage. |
| Build identifier | Kept, as a row under Your record. The pre-session card asks for it and says not to hand-write it. |
| The Docket | Routes to Cases Closed. The addendum names the row and its count subline but not its destination — redirect it if that's wrong. |
Per §5.4 the sheet dismisses and the credential lands on the roster — "Filed under tonight's roster" — and entry is a separate act. On a first launch that is one extra tap. Two UI tests assumed create-then-enter and now tap the new card.
.task in NightDeskView.VigilanceUITests.testClearTheRoomPlanSmoke and
testClearTheRoomLiveStrikeThenBackOutReopens both fail on "Into the room" not
existing. I confirmed they fail identically on the unmodified tree (stashed the branch, re-ran,
same failure), on a freshly erased simulator. Everything else is green: 329 core tests, all
11 profile UI tests, all 4 in PeregrineUITests.