Skip to content

Gate 1 — Status/Progress slice 1 (iOS)

Gate: Gate 1 sandbox OS (Status/Progress activation)
Stack: R940 — api.last.vet client; no API or migration changes
VA data: Sandbox until VA production case #00015000 clears


Scope

Deliverable Detail
StatusProgressSection Home card after coordination block (Your Turn / Pipeline / Completed)
ProfileCompletenessCalculator Activated on Home; item 3 Last1-aware ("Veteran verification")
Tests ProfileCompletenessTests — Last1 path, VA path, partial completeness
Runbook This file

Explicitly not in scope: Your Loops, Missions, last1.app Radio Check bridge (Phase E).


Home placement (coordination-first)

Welcome header
RADIO CHECK
YOUR TURN / Pipeline / Completed
STATUS / PROGRESS          ← this slice
FIND CARE
Service Matches
Community

Status/Progress is a supporting card (Gate 0 UI addendum). Coordination stays the headline.


Completeness model (5 items)

Item Complete when Profile alignment
VA health record Patient Health capability ready or manual identity fallback Profile "VA health record — connected"
Service history VSH&E ready or local service history / branch Profile service history
Veteran verification Last1 Title 38 or VA verification capability or veteranStatusConfirmed Profile veteran status + VA verification lines
Health record sync lastVASyncAt or clinical data in SwiftData Record sync
Profile basics Call sign + email Profile identity

Last1-first detail: When Title 38 confirmed without VA OAuth, item 3 shows "Verified via Last1 ID" and counts complete.

Percent: Equal weight across five items. No server persistence.


Visibility

Session Home behavior
Not authenticated Section hidden (onboarding)
Authenticated, not verified Compact card: "Complete verification to unlock your profile progress meter." No fake %.
Verified (isVeteranVerified) Full meter + checklist when < 100%; compact success at 100%

Data sources (client only)

  • SwiftData: VeteranProfile, HealthRecord
  • AuthManager.vaCapabilities (same source as Profile VA Connections)
  • AuthManager.isVeteranVerified (Last1 Title 38)
  • VAConnectionStatus shared helpers

iOS files

File Role
LastVet/Features/OperatingSystem/StatusProgressSection.swift Home UI
LastVet/Features/OperatingSystem/ProfileCompleteness.swift Calculator + Last1-aware item 3
LastVet/Features/OperatingSystem/OperatingSystemShellView.swift Wire section after coordination
LastVetTests/OperatingSystem/ProfileCompletenessTests.swift Unit tests

Build and test (local)

cd last.vet-ios
xcodebuild test \
  -scheme LastVet \
  -destination 'platform=iOS Simulator,name=iPhone 16' \
  -only-testing:LastVetTests/ProfileCompletenessTests

Device verification (TestFlight)

Account: Last1 curryrg@gmail.com
Veteran id: 8daac85a-87fb-428f-bc16-738bbfd3504f

Checklist

  1. Home scroll order: Radio Check → Your Turn → Status/Progress → Find Care.
  2. Status card shows live % from real session state (not static stub).
  3. Item 3: Veteran verification with "Verified via Last1 ID" when Title 38 confirmed.
  4. Incomplete VA rows (health record, sync, etc.) show open circles and honest < 100%.
  5. Continue in Profile switches to Profile tab.
  6. At 100%: compact "Profile connections ready" (checklist collapsed).
  7. Profile VA Connections lines match Home item 1 / VA verification capability for same session.

See last.vet-ios/docs/testflight/BUILD_83_STATUS_PROGRESS.md.


  • docs/runbooks/gate-1/RADIO_CHECK_SLICE_1.md (prior Gate 1 OS slice)
  • docs/runbooks/gate-1/RADIO_CHECK_SLICE_2_LAST1APP_BRIDGE.md (next bridge — not urgent)
  • lastvet-gates/gates/GATE_0_UI_ADDENDUM.md (Status supporting card rule)
  • lastvet-gates/gates/GATE_1_sovereign_profile_and_os.md

Queue after this slice: Your Loops → Missions → last1.app bridge (one at a time).