mhome-core-api
Canonical internal wire protocol for MeowCore, host services, Nodes, and
provider runtimes. Public /app/* contracts belong to
mhome-app-facade-api; this crate owns internal MWS, authentication, LLM,
Messaging normalization, Node runtime, and Storage contracts.
interaction_flow defines the serializable Core-to-Node flow definition and
handler protocol. Definitions name logical operations only; MeowCore chooses
and pins the Node instance and fixed transport routes for each session.
The Node owns the source session returned with a definition. Core closes that
session through the fixed close route after completion, cancellation, expiry,
or a failed start. Close is idempotent, and Nodes must also expire abandoned
source sessions so a Core restart cannot leak them. Execute operations are
idempotent within a source session: replaying the same operationId and
request returns the original result, while reusing the ID for a different
request is rejected.
Storage separates backing-filesystem capacity from Storage-owned logical usage. Namespace is an internal protocol term; user-facing clients present it as a Folder.
Playground Provider (core-api 1.10.0)
External protocol 15 removes the dedicated Playground webhook method and payload.
Playground Provider delivers events through the standard subscription webhook,
using GeneralWebhookPayload. Update the Core service shell and runtime together;
mixed external protocol versions are not supported.
Stable recipients (core-api 1.8.0)
RecipientId provides canonical Messaging (m:p: / m:g:) and Node (n:)
addresses. See the contract and the packaged
cross-language conformance vectors.
This is additive; the external Host transport protocol remains version 14.
Consumers must explicitly migrate their identities after this release is available.
Host delivery (core-api 1.7.1)
Core resolves logical recipients; the Host executes a concrete App connection, Node connection or Messaging destination. Delivery responses distinguish queue or provider acceptance, intentional skips, definite failure and unknown completion. Acceptance is not a user-read receipt. Connection close has a separate typed control request.
External protocol 14 replaces effect notifications with request/completion events. ServiceCoreOutput contains only its response and rejects the old effects field. Messaging returns the same typed outcome, not a delivered boolean. Skipped means handled without a send and must not be reported as provider acceptance. There is no old-protocol compatibility path. Consumers must upgrade together; version 1.7.1 must be published before updating registry-backed consumer locks.