Resume is not get-or-create.rc.8 strict resume requires persisted history; stable exact sessionId owns create-or-resume.
Name Session semantics explicitly.
Current headless behavior; no cross-process history.
One exact sessionId, one writer, persisted history.
A missing id fails instead of silently forking history.
One machine-readable terminal truth.
exactly one versioned JSON document
logs and human diagnostics
zero only for documented success
durability before success
A model name is not a route.
Resolve provider, credential, endpoint, capability, and persisted selection policy before dispatch.
Keep the complete embedding contract.
The canonical guide includes identity modes, route semantics, JSON schema, exit mapping, current rc.8 evidence, sixteen acceptance gates, and safer choices today.
Read the complete guide