Expand description
The frame:dev-management@v1 vocabulary: the S1/S2 schema frame dev
and the generated host SHARE (F-7b R5 — frame-cli adapts this
vocabulary; it does not fork it).
S1 is one typed request-response operation riding frame-conv’s
frame:conv-request@v1 pattern: the dev client asks the running node
to stage and activate candidate component bytes, and receives exactly
one typed outcome under the caller’s declared deadline. S2 is the
typed status event stream riding frame:conv-subscription@v1:
readiness, lifecycle, reload generation, and failure, observed by
content.
§The authority boundary (tear condition, ruling C3)
Pushing candidate bytecode is the most privileged operation a node can
expose. The vocabulary exists in every host build — types are not the
door — but the DOOR is dev-wiring only: a host started in
NodeMode::Production carries no path from this request to an
activation, answers StageRefusal::NotADevNode typed, and that
refusal is pinned by a red-first test BEFORE any door works. Embedded
initial bytes remain the SOLE boot source in every mode; remote
management stays the named not-here seam whose price of admission is
authentication, designed there, never defaulted here.
Structs§
- Barrier
Engine - The barrier engine: one per dev node, owned by the management adapter.
- Candidate
Bytes - One candidate: the compiled component and FFI BEAM files of one build generation, with the content digest that identifies the snapshot they were built from (constraint 8 — stale completions are recognized by identity, never by timing).
- DevManagement
Conversation - The node-side conversation: opened by the dev host, served by the adapter loop.
- DevNode
Control - The barrier’s node seam over the real registry and runtime.
- DevResume
Store - In-memory resume state for the dev management conversation. A dev session deliberately does NOT resume across processes — the operator reruns the one command (R2’s recovery guidance) — so durable persistence would advertise a durability this channel does not have.
- DevWiring
- Everything the generated application hands the dev door at start (the template supplies these VISIBLY — the teaching half of constraint 1; the machinery stays library-shaped here).
- Generation
Report - What is serving, named fully (constraint 7: “still serving” without “stale” is a forbidden report).
- Inbound
Management - One decoded inbound management request awaiting its reply.
Enums§
- DevReply
- S1: the exactly-one typed answer to a
DevRequest. - DevRequest
- S1: the one management request. Riding
frame:conv-request@v1, so correlation, the caller-declared deadline, and the closed outcome set are frame-conv’s proven machinery — this vocabulary adds only the operation itself. - DevStatus
Event - S2: one typed status event on the management subscription. Every state transition of constraint 7 is observable here by content.
- Node
Mode - How the host was started. The dev door exists only in
Self::Dev; production is not “dev minus a flag” but a host with NO path from a stage request to an activation. - Reload
Stage - The stages of one activation, in barrier order. Failure reports name exactly one.
- Serve
Exit - Why the serve loop returned.
- Stage
Refusal - Why a stage request was refused outright.
- Start
Failure - Why a start attempt failed: candidate byte admission versus the fresh tree. The distinction names the stage in every report (R4).
Constants§
- MANAGEMENT_
LINE_ PREFIX - The handoff line’s stable prefix — parsed by
frame dev, printed by the dev-started host, tested from both directions below.
Traits§
- Management
Conversation - The conversation surface the adapter serves over — the real
implementation wraps
frame_conv::ConversationHandle; tests script it. Errors are rendered transport fates: anyErrmeans the dev client’s connection is gone and the serve loop exits with it. - Node
Control - The node operations the barrier drives, in the only order it drives them. Every method is one observable step; the implementation maps its substrate errors to the step’s typed detail.
Functions§
- format_
management_ line - Formats the one handoff line:
dev management at ENDPOINT conversation ID. - parse_
management_ line - Parses a host output line as the management handoff;
Nonefor every other line (the pump forwards all lines verbatim, this picks the one). - require_
dev_ node - Refuses staged activation on any host that was not started in dev
mode. Every handler of
DevRequest::StageAndActivateMUST pass this gate before touching anything — the refusal happens with zero node operations performed. - serve
- Serves management requests until closed or the connection dies.
Type Aliases§
- Witness
- One liveness witness against the live registry — the application supplies its own (the generated host’s mailbox probe and entity round-trip), frame-host never invents one.