A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live
executions.protocol
The live channel's contract
What it is
Where the WebSocket is, how a subscription and a reconnect are expressed, what the server writes, and the JSON Schema of every message — derived from the Rust types that implement it, so a client validating against this is validating against the implementation. OpenAPI cannot describe a socket; this is where that contract lives.
Descriptor
- Canonical id
executions.protocol- Module
executions- Kind
- query
- Stability
- behaviorallyverified
- Provenance
- declared
- Source
apps/majordomus-cli/src/capability/builtin/executions.rs- Cache
disabled- Benchmark
required- Tags
- executionscontrol-planeprotocol
Run
queryA query. It reads and changes nothing.
Projections
| Interface | As | Where |
|---|---|---|
| MCP tool | majordomus_execution_protocol | - |
| MCP resource | majordomus://executions/protocol | - |
| HTTP | GET /api/v1/executions/protocol | Swagger |
| Command line | majordomus executions protocol | - |
Schemas
Input · Empty
{
"type": "object",
"additionalProperties": false,
"description": "No input.",
"title": "Empty"
}Output · ProtocolReport
{
"type": "object",
"properties": {
"protocol_version": {
"type": "string",
"description": "The version of the event protocol this server speaks."
},
"websocket": {
"type": "string",
"description": "Where the live channel is: a path on this same server, not a second daemon."
},
"subscription": {
"type": "array",
"items": {
"$ref": "#/$defs/ParameterView"
},
"description": "How the subscription is expressed, and what a reconnect sends."
},
"heartbeat_seconds": {
"type": "integer",
"format": "uint64",
"minimum": 0,
"description": "How many seconds of quiet before the server pings."
},
"max_connections": {
"type": "integer",
"format": "uint",
"minimum": 0,
"description": "How many live channels this process serves at once."
},
"max_replay": {
"type": "integer",
"format": "uint",
"minimum": 0,
"description": "How many retained events a scoped connection replays before going live."
},
"event_types": {
"type": "array",
"items": {
"type": "string"
},
"description": "The event types a client may receive, from the one enum that defines them."
},
"stream_types": {
"type": "array",
"items": {
"type": "string"
},
"description": "The stream's own control messages."
},
"event_schema": {
"description": "The JSON Schema of an event, derived from the Rust type."
},
"stream_schema": {
"description": "The JSON Schema of a control message, derived from the Rust type."
},
"limits": {
"$ref": "#/$defs/LimitsView",
"description": "What the store keeps, so a client knows what it may ask for."
}
},
"required": [
"protocol_version",
"websocket",
"subscription",
"heartbeat_seconds",
"max_connections",
"max_replay",
"event_types",
"stream_types",
"event_schema",
"stream_schema",
"limits"
],
"description": "The answer of `executions.protocol`: the live channel's whole contract, derived from\nthe types that implement it.",
"title": "ProtocolReport",
"$defs": {
"ParameterView": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Its name."
},
"description": {
"type": "string",
"description": "What it does."
},
"required": {
"type": "boolean",
"description": "Whether it must be given."
}
},
"required": [
"name",
"description",
"required"
],
"description": "One query parameter of the live channel."
},
"LimitsView": {
"type": "object",
"properties": {
"max_executions": {
"type": "integer",
"format": "uint",
"minimum": 0,
"description": "How many executions are remembered."
},
"max_events": {
"type": "integer",
"format": "uint",
"minimum": 0,
"description": "How many events are retained per execution."
},
"max_log_chars": {
"type": "integer",
"format": "uint",
"minimum": 0,
"description": "The longest a single log line may be."
},
"max_running": {
"type": "integer",
"format": "uint",
"minimum": 0,
"description": "How many executions run at once."
},
"max_subscriber_queue": {
"type": "integer",
"format": "uint",
"minimum": 0,
"description": "How far a live channel may fall behind before it is told to resynchronise."
}
},
"required": [
"max_executions",
"max_events",
"max_log_chars",
"max_running",
"max_subscriber_queue"
],
"description": "What this process's execution store keeps."
}
}
}Examples
These are the capability's own benchmark cases: the same inputs the benchmark runs and the OpenAPI document shows.
default
{}