From 7c40c49b1a6f97a24034484bc1df387f43feb47b Mon Sep 17 00:00:00 2001 From: jay Date: Fri, 15 May 2026 06:56:38 +0200 Subject: [PATCH] chore: freeze IC-1..IC-4 interface contracts Resolved OQ-1 (drop tree event), OQ-2 (defer resize), OQ-3 (per-session control-mode, T-1.1 to decide final), OQ-4 (sonnet-4-5 for T-1.0). IC-3: clarified deviceToken/environment optional pre-Phase-2, mandatory from Phase 2 onward. --- docs/PHASE-1-sidecar.md | 7 +++++-- docs/SYNC.md | 8 ++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/docs/PHASE-1-sidecar.md b/docs/PHASE-1-sidecar.md index e2800c9..42778d1 100644 --- a/docs/PHASE-1-sidecar.md +++ b/docs/PHASE-1-sidecar.md @@ -127,7 +127,8 @@ type ClientToServer = type ServerToClient = | { type: "state"; value: "thinking" | "tool" | "idle" | "awaiting-input"; tool?: string; ts: number } - | { type: "tree"; nodes: TreeNode[]; current: string } // optional, read-only + // tree event dropped — out of iOS scope. Revisit if a dashboard wants it. + // resize ClientToServer deferred — fixed 120×40 for v1. | { type: "snapshot"; seq: number; data: string } // base64 ANSI snapshot | { type: "session-meta"; name: string; description?: string; createdAt: string } | { type: "error"; code: string; message: string }; @@ -159,7 +160,9 @@ QR encodes a `pi-remote://` URL: pi-remote://:?pair=&fp=&name= ``` -Pairing exchange: client `POST /pair` with `{ pairingToken, deviceToken?, environment?, deviceName? }` → server replies `{ bearerToken, sidecarId }`. Owner: T-1.3. +Pairing exchange: client `POST /pair` with `{ pairingToken, deviceToken?, environment?, deviceName? }` → server replies `{ bearerToken, sidecarId }`. + +`deviceToken` and `environment` are **optional** pre-Phase-2, **mandatory** from Phase 2 onward. Owner: T-1.3. ### IC-4 — Config schema (TOML) diff --git a/docs/SYNC.md b/docs/SYNC.md index ca56ea6..34ca9fd 100644 --- a/docs/SYNC.md +++ b/docs/SYNC.md @@ -99,10 +99,10 @@ Phase 2 kicks off. | ID | Defined in | Status | Frozen at | Owner of changes | |---|---|---|---|---| -| IC-1 — WebSocket frame protocol | `PHASE-1-sidecar.md` §Interface Contracts | **draft** — needs orchestrator sign-off before T-1.5 starts | — | T-1.5 lead, with sign-off from any active T-2.x owner | -| IC-2 — HTTP REST shape | `PHASE-1-sidecar.md` §Interface Contracts | **draft** | — | T-1.5..T-1.7 leads | -| IC-3 — Pairing payload | `PHASE-1-sidecar.md` §Interface Contracts | **draft** | — | T-1.3 lead | -| IC-4 — Config TOML schema | `PHASE-1-sidecar.md` §Interface Contracts | **draft** | — | T-1.7 lead | +| IC-1 — WebSocket frame protocol | `PHASE-1-sidecar.md` §Interface Contracts | **frozen** | 2026-05-15 | T-1.5 lead, with sign-off from any active T-2.x owner | +| IC-2 — HTTP REST shape | `PHASE-1-sidecar.md` §Interface Contracts | **frozen** | 2026-05-15 | T-1.5..T-1.7 leads | +| IC-3 — Pairing payload | `PHASE-1-sidecar.md` §Interface Contracts | **frozen** | 2026-05-15 | T-1.3 lead | +| IC-4 — Config TOML schema | `PHASE-1-sidecar.md` §Interface Contracts | **frozen** | 2026-05-15 | T-1.7 lead | | IC-2.1 — `SessionConnection` Swift surface | `PHASE-2-ios-mvp.md` §Interface Contracts | **draft** — freeze at Phase 2 kickoff | — | T-2.5 lead | **Freeze protocol:** when the orchestrator is ready to fan out work that