M-act-2a — Provider deliverer inbox (provider.last.vet)¶
Branches: feature/m-act-2a-provider-inbox on last.vet-api + last.vet-provider
DoD: Provider sees and responds to a coordination concern on provider.last.vet (never last1.app admin).
Engine: last1.app remains SoR when last1_* IDs are set. Demo rows without those IDs are labeled demo projection.
Pre-users lane policy (2026-09-16)¶
Until real orgs/users exist: demo and Meridian proof run on production (api.last.vet + provider.last.vet).
LastVet iOS TestFlight already targets prod. Keep staging in lockstep (same API commit + same Harbor bridge env) so cutover later is not a fire drill.
When real users arrive: invert. Stage first, promote to prod.
Live: API both lanes on feature/m-act-2a-provider-inbox (cd8575c+); Harbor bridge MERIDIAN_HARBOR_PROVIDER_CODE=LV-MEZVC (Test Provider / ryan@last1.enterprises).
Demo provider account¶
Current (pre-users): reuse ROI Test Provider (ryan@last1.enterprises, code LV-MEZVC) on prod.
Later: Harbor MH Demo plus-alias if multi-org still blocked.
Multi-org: Not supported today (one email → one provider). Parked:
last.vet-provider/docs/gates/PROVIDER_MULTI_ORG_PER_ACCOUNT.md.
Then set on API env:
Harbor synthetic matcher id: 00000000-0000-4000-8000-000000000101.
Seed a demo concern (ops)¶
After migration 063_provider_coordination_inbox.sql is applied:
curl -sS -X POST "$API/api/ops/provider-coordination/seed-demo-concern" \
-H "Authorization: Bearer $LASTVET_INTERNAL_ADMIN_SECRET" \
-H "Content-Type: application/json" \
-d '{"providerCode":"LV-XXXXX","body":"M-act-2a seed concern"}'
Provider test¶
- Sign in to provider.last.vet (dev or prod matching API env)
- Open Coordination in the sidebar
- See open concern → Send response
- Confirm status becomes responded; copy says demo projection if no last1 IDs
Out of scope (this slice)¶
- last1.app-admin as proof surface
- Auto-share / live m1
- Full last1.app internal respond-by-secret (stubbed; not required for demo-projection DoD)
- Provider multi-org / Geist
M-act-2b — Start coordination posts Harbor kickoff¶
iOS Continue on a Harbor match POSTs /api/veteran/me/meridian/coordination/concern before writing the local demo program. Fail loud (no local row) if Harbor is missing or the POST fails.
Harbor walk:
- Veteran: Meridian Harbor match → Start coordination → Continue
- Provider: provider.last.vet Coordination as Test Provider (
LV-MEZVC) → open kickoff → Send response - Veteran: Home Your Turn → open card → pull to refresh → provider reply in the thread