Skip to main content

Module dev

Module dev 

Source
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§

BarrierEngine
The barrier engine: one per dev node, owned by the management adapter.
CandidateBytes
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).
DevManagementConversation
The node-side conversation: opened by the dev host, served by the adapter loop.
DevNodeControl
The barrier’s node seam over the real registry and runtime.
DevResumeStore
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).
GenerationReport
What is serving, named fully (constraint 7: “still serving” without “stale” is a forbidden report).
InboundManagement
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.
DevStatusEvent
S2: one typed status event on the management subscription. Every state transition of constraint 7 is observable here by content.
NodeMode
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.
ReloadStage
The stages of one activation, in barrier order. Failure reports name exactly one.
ServeExit
Why the serve loop returned.
StageRefusal
Why a stage request was refused outright.
StartFailure
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§

ManagementConversation
The conversation surface the adapter serves over — the real implementation wraps frame_conv::ConversationHandle; tests script it. Errors are rendered transport fates: any Err means the dev client’s connection is gone and the serve loop exits with it.
NodeControl
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; None for 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::StageAndActivate MUST 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.