SequenceAppContext and runtime parity

July 18, 2026 ยท View on GitHub

Import the author-facing contract from @scramjet/sequence-types. The parity surface is health/details, lifecycle handlers, structured logs, events, Hub/Space clients, and exposed API behavior. Node is the reference implementation; supported Bun execution uses the hosted wrapper and delegates to Node for the same contract.

Intentional differences

RuntimeSupported parityIntentional limit
NodeFull sequence-facing AppContext and v2 clientsCanonical reference runtime.
PythonHealth, lifecycle, logs, events, scoped Hub/Space routing, and exposed API through the Python wrapperUse Python method naming such as add_monitoring_handler; use the wrapper's scoped context.hub.get/post and context.space.get/post methods, not a generic REST SDK.
BunHosted parity through Node delegationNo separate author-visible direct/headless Bun mode.

Runtime conformance matrix

CapabilityNodeHosted PythonHosted Bun
Health/detailsMONITORING; bounded { healthy, details }Same frame contract; add_monitoring_handlerDelegates to Node
Lifecycle, logs, eventsFull sequence surface and host channelsWrapper parity with Python namingDelegates to Node
Hub/Space clientsTyped v2 hubClient() / spaceClient()context.hub / context.space Broker views; no generic Node @scramjet/rest-api2 clientDelegates to Node and verser2
Exposed APIthis.api.use() below exposePathcontext.api.attach(asgi_app) below exposePathDelegates to Node
Durable save/checkpointNot providedNot providedNot provided

Hosted means the wrapper has the instance-server address and host channels. Python's wrapper clients are not a promise of a generic Python REST SDK. For installed execution, use the AppContext health parity Process Adapter workflow, then refer to the canonical installed Process Adapter example baseline. Repository conformance evidence is maintainer-only and optional after the installed workflow.

hubClient() is Hub-scoped. spaceClient() is Manager/Space-scoped and routed through the connected Hub proxy. Legacy hub and space remain compatibility surfaces. Python uses its wrapper context.hub and context.space views rather than importing the Node @scramjet/rest-api2 generic client. These are intentional differences in naming, not permission to assume a different security boundary.

Events remain transient, topics do not replay, and health details are bounded operator-visible data on every runtime. Authentication, authorization, storage durability, and adapter networking are outside AppContext.

Read the AppContext health parity walkthrough after this matrix. It compares hosted runtimes only; it is not a direct-Bun or generic Python-client test.