Resume is not get-or-create.rc.8 strict resume requires persisted history; stable exact sessionId owns create-or-resume.

Name Session semantics explicitly.

Freshrandom identity

Current headless behavior; no cross-process history.

Stablecreate or resume

One exact sessionId, one writer, persisted history.

Strictresume only

A missing id fails instead of silently forking history.

One machine-readable terminal truth.

stdout

exactly one versioned JSON document

stderr

logs and human diagnostics

exit

zero only for documented success

flush

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