docs(brief): decouple Coach SSE from the v1.5 ship gate per iOS-team pivot

§5b "Coach SSE" and §6 "Coach SSE drawer iOS implementation" both
reframed per `.planning/RESPONSE-TO-IOS-TEAM-2026-05-16.md` §3 R6.
The server endpoint `GET /api/insights/chat` stays live indefinitely
for PWA users, future iOS reevaluation post-MDR, and any other
client that adopts the SSE protocol. v1.5.0 iOS ships Apple
Foundation Models on-device Daily Briefing + Trend Observations as
the primary assistant surface; a native server-Coach drawer is
deferred pending MDR Class-IIa pre-review.
This commit is contained in:
Marc-André Bombeck committed 2026-05-16 13:11:26 +02:00
1 parent 0378e8e99d
commit 15cbc10278
1 file changed
+24 -10
+24 -10
View File
@@ -493,11 +493,18 @@ Mode-switching is iOS-local; the server has no concept of "this user
is in standalone mode". The server just answers whatever the iOS app
asks.
### Coach SSE — the v1.5 differentiator
### Coach SSE — server endpoint stays live; iOS native drawer deferred
By v1.5.0 the iOS Coach drawer is the native implementation of
`GET /api/insights/chat`. Reference web implementation in
`src/components/insights/coach-panel/`. Contract specifics:
Coach SSE remains live as a server endpoint. iOS native server-Coach
drawer is deferred pending MDR Class-IIa pre-review. v1.5.0 ships
iOS with Apple Foundation Models on-device Daily Briefing + Trend
Observations as the primary assistant surface. The server's
`GET /api/insights/chat` SSE endpoint stays live for: PWA users on
non-AFM-capable devices, future iOS reevaluation post-MDR, any other
client that adopts the SSE protocol.
Contract for any future iOS adoption (or for the PWA + non-iOS
consumers today):
- Server-Sent Events stream
- Token-by-token streaming text
@@ -506,6 +513,8 @@ By v1.5.0 the iOS Coach drawer is the native implementation of
- 429 `coach.budget.exceeded` on rate-limited paths
- 403 `assistant.disabled.coach` if the operator-side flag is off
Reference web implementation: `src/components/insights/coach-panel/`.
### Push notifications (post-APNs `.p8` paste)
The APNs scaffolding exists server-side. After the operator pastes
@@ -545,12 +554,18 @@ pasting the `.p8` into the deployment environment.
This blocks push notifications only; everything else functions
without it.
### Coach SSE drawer iOS implementation
### Coach SSE drawer iOS implementation — deferred past v1.5
Per R-E C-1, the iOS Coach drawer has zero native code today. The
server-side SSE endpoint at `/api/insights/chat` is live and tested.
The v1.5 differentiator is the native Coach drawer. The iOS side is
the implementation:
server-side SSE endpoint at `/api/insights/chat` stays live and
tested. v1.5.0 ships iOS with Apple Foundation Models on-device
Daily Briefing + Trend Observations as the primary assistant
surface; a native server-Coach drawer is deferred pending the MDR
Class-IIa pre-review. No server-side coordination needed for the
deferral — the SSE endpoint is already shaped for the PWA + any
future client that re-enters this work.
If a future iOS revisit lands post-MDR, the contract is:
- `CoachService` actor over `URLSession.bytes`
- `CoachStreamEvent` AsyncThrowingStream
@@ -561,8 +576,7 @@ the implementation:
- `coach.budget.exceeded` 429 surface
Pattern reference: `src/components/insights/coach-panel/` (web
implementation) is the model. The iOS implementation should mirror
the user experience while consuming the same SSE stream.
implementation) stays the model whenever iOS reopens the work.
### Source-priority editor