Skip to content

TestFlight — Build 84 (1.1.1)

Gate 1 Radio Check slice (Phase B) plus Last1 ID verification gate fixes, plus Phase C crisis UI built dark, plus Status/Progress on Home.

What changed (Build 84)

  • Status/Progress: Home completeness meter after coordination (Last1-aware veteran verification item).
  • Device QA: docs/testflight/BUILD_84_STATUS_PROGRESS.md.
  • Same build still carries Phase C crisis Debug-QA (launch arg only; no Release live flip).

What changed (Build 83)

  • Phase C: full Section 2 crisis UI (CrisisProtocolHandoffView, session reopen, detection, blocklist) built behind crisisLiveHandoffEnabled (default false).
  • Release / TestFlight stays on the Build 77 stub. No live flip in this build.
  • Debug QA: launch with -crisisLiveHandoffEnabled and walk docs/testflight/PHASE_C_CRISIS_QA.md.
  • Live flip still waits on Mic blocklist + reopen confirm + recorded crisis.blocklist_advisor_signed.

What changed (Build 82)

  • Last1 ID OAuth Allow sheet no longer appears twice: skip VA /link when a Last1 identity is already known, refresh silently when a Last1 refresh token exists, and dedupe verification-return handlers.

What changed (Build 81)

  • Stop VA session exchange from overwriting a Last1 ID Bearer session on launch (restores pipeline / program enrollments).
  • Clear stale confirmed verification when the active session row is missing last1_identity_id.
  • Pipeline shows Link Last1 ID when the API returns last1_identity_required instead of a blank enrollment message.
  • Coordination load failures show retry UI instead of fake empty state.

What changed (Build 80)

  • Radio Check no longer vanishes silently when the API returns 503 / OS disabled. Home shows a RADIO CHECK card with an explicit message instead of blank space above YOUR TURN.

What changed (Build 79)

  • If VA /link returns veteran not found (stale sandbox VA patient id), automatically retries with Last1 login (/veteran/callback) instead of looping on the gate.
  • After a successful Last1 login with verified status, skips the credentials browser (no DD-214 flash when already verified on Last1 ID).

Build 78 wired link; Build 79 fixes Last1-first accounts that had orphan VA tokens in Keychain.

See below for Radio Check device checks.

Verification gate (before Radio Check)

  1. On "Verify your veteran status", tap Open Last1 ID verification.
  2. If already signed in on Last1 ID, tap Continue on the link step (may appear before credentials).
  3. Complete or skip credentials if DD-214 already verified on Last1 ID.
  4. App should leave the gate (Home with Radio Check) without looping back to login.
  5. Refresh verification status should show progress or confirmed state, not a silent no-op.

  6. Weekly check-in: categorical responses only (I'm OK / Struggling / Need support). No free text.

  7. Schedule label from server (default: "Weekly check-ins, Sundays at 10 AM")
  8. Trailing 4-week dots + Active veteran badge when applicable
  9. Need support with crisis handoff flag off: minimal honest stub (not the legacy handoff UI)

Backend flags (prod, already live)

  • RADIO_CHECK_OS_ENABLED=true (default)
  • LASTVET_CRISIS_LIVE_ENABLED=false (default). Full Section 2 crisis card is not in this build.

Device verification checklist

Sign in with a verified veteran account on Release/TestFlight (hits https://api.last.vet/api).

Home / Radio Check

  1. Open Home. Confirm RADIO CHECK appears above YOUR TURN.
  2. Confirm schedule copy matches API, e.g. Weekly check-ins, Sundays at 10 AM.
  3. Confirm four small dots under the schedule (last 4 weeks). Green = responded that week.
  4. If API returns activeVeteran: true, confirm Active veteran badge on the card.

Check-in (enum only)

  1. When due, tap I'm OK or Struggling. Confirm card shows checked-in state; no text field anywhere.
  2. Pull to background and return (or leave Home and come back). Status should still show this week's response.

Need support + minimal stub (critical)

  1. On a fresh ISO week (or staging account that has not responded this week), tap Need support.
  2. Confirm check-in is recorded (checked-in state for Need support).
  3. Confirm stub copy:
  4. "Crisis handoff is not live in this build yet."
  5. "If you need help now, call 988 and press 1 for the Veterans Crisis Line."
  6. Call 988 button (places tel:988)
  7. Confirm stub does not show the legacy self-report handoff block (no "Need help right now?" header, no 911 paragraph, no chat/838255/TTY lines). Those belong to Phase C (Mic-signed), not this build.

Regression

  1. Your Turn / coordination sections still load below Radio Check.
  2. Self-report health entry (if used) may still show the legacy VeteransCrisisLineHandoff on its own path. That is unchanged and separate from Radio Check.

App Store Connect — What to Test (paste)

Gate 1 Radio Check on Home (above Your Turn). Verify weekly schedule label, 4-week dots, and check-in buttons (OK / Struggling / Need support). After Need support, confirm the minimal crisis stub says handoff is not live in this build and offers Call 988. No free-text check-in. Coordination sections below should still work.

Known limits (expected)

  • Crisis handoff flag off: minimal 988 stub only (Release/TestFlight). Phase C full Section 2 UI is built dark behind crisisLiveHandoffEnabled; flip waits on Mic confirm + recorded crisis.blocklist_advisor_signed (see PHASE_C_CRISIS_QA.md).
  • One response per ISO week (409 if duplicate).
  • Settings adjustment UI not in this slice (server defaults apply).