Repository navigation
Description
Outcome: The requested source inventory and integration decisions are recorded. Reviewed revisions are evidence, not required release pins. The trusted adapter speaks Node's heartbeat protocol directly; implementation and compatibility validation are tracked in #92/#84/#86.
Parent: #82. The reviewed source revisions and Go runner integration points below explain the baseline considered for sandbox planning.
Reviewed revision inventory (2026-10-28)
| Artifact | Reviewed source revision | Meaning |
|---|---|---|
livepeer/node local checkout |
7a75438ed94fa0472bb6c70efe5f81f5193ab728 |
Node source revision used for this mapping. |
livepeer/golang-runner local checkout |
38b527c7e74b3801e5ddd67e51ad52d98576bfe0 |
Go runner source revision used for this mapping. |
| Node's Go SDK compatibility fixture | c3be5a14a91f8a3437133419becaced324d804fe |
Tests export this committed tree, not the sibling checkout's HEAD. |
| Node's Python SDK compatibility fixture | 76a1a1c58656ef2ad0c28542ea5f99086b76db69 |
Repository is livepeer/livepeer-python-gateway; local sibling directory is named python-runner. Inspected the pinned source. |
| k3s, gVisor/runsc, app/checker images | To select during implementation | Select CPU runtime versions and immutable app images. GPU driver/runtime compatibility is deferred to future work outside #84. The platform supplies evaluation-app/profile versions (#90/#46). Generic deployment manifests, a runtime adapter, and a sandbox version manifest remain to implement. |
Node declares Go 1.27.3; the runner declares Go 1.25. Node has a digest-pinned builder/base and a non-root container image, but this packages Node binaries, not a k3s application manager. Source evidence: fixture pins/export behavior, development instructions, Node Dockerfile.
Decision update (2026-10-29)
App images are ordinary HTTP containers under gVisor and contain no Livepeer SDK or bootstrap credential. The trusted k3s adapter sends Node heartbeats directly and does not require the Go SDK. The allocator-managed orchestrator is also a k3s pod. #92 owns deployment, registration, and creation/release of the new repository containing runtime and adapter code; no exact SDK pin is selected in this planning issue. Node #25 is required before launch.
Go runner integration points reviewed
Options,New/Register,Start,Close: app/service URL, bootstrap auth, runner identity, mode, capacity/status, GPU metadata, heartbeat lifetime, HTTP client, unregister.OnReserve/OnRelease,SessionEvent: connect session admission/release to app work. SDK session inventory is protocol state, not a Kubernetes job queue.SessionToken,SessionControl,StopSession, plusCreateTrickleChannels/DeleteTrickleChannelsandCreateProxy: preserve callback credentials and private/public URL behavior across the sandbox boundary.examples/stdin-stdout: existing host HTTP/command lifecycle to package as a first app.exec.CommandContextsupplies request cancellation, not process/filesystem/network isolation.
Decisions and implementation tracking
- Sandbox registration, readiness, capacity, session reconciliation and unregister are direct adapter-to-Node heartbeat work in Deploy ordinary HTTP app images in gVisor and register them with Node #92. The current one-runner-per-capability contract can support development; Node #25 must provide multi-capability registration before launch. Node drain #23 separates new admission from service of existing sessions.
- A Go runner revision is not a required sandbox release pin. Node's existing Go/Python fixture commits remain compatibility-test inputs, not proof of sandbox acceptance. Choose compatible releases and test them when implementing.
- Select and validate CPU host OS/kernel/architecture, k3s/runsc and immutable runtime artifacts in Validate k3s and gVisor compatibility on supported CPU hosts #84/Build a repeatable k3s and gVisor sandbox installer with recovery #86; GPU compatibility is deferred to future work outside Validate k3s and gVisor compatibility on supported CPU hosts #84. Deploy ordinary HTTP app images in gVisor and register them with Node #92 owns the new runtime/adapter repository, its image release and app deployment contract. The platform owns evaluation app/profile versions in Build versioned evaluation apps, profiles and the trusted verifier #90/Define an extensible hardware and capability evaluation framework #46.
- This mapping was source inspection only; no runtime or GPU validation was performed. The requested inventory and integration decisions are recorded, so this issue is complete. CPU runtime validation remains in Validate k3s and gVisor compatibility on supported CPU hosts #84/Build a repeatable k3s and gVisor sandbox installer with recovery #86. GPU compatibility is deferred to future work and is not part of Validate k3s and gVisor compatibility on supported CPU hosts #84.
Activity
[-]Pin sandbox revisions and Go runner integration points[/-][+]Pin sandbox revisions and optional Go SDK adapter integration points[/+][-]Pin sandbox revisions and optional Go SDK adapter integration points[/-][+]Sandbox source inventory and integration seams (historical)[/+]j0sh commentedon Oct 30, 2026
Decision record (2026-10-29):
The requested source inventory and integration decisions are recorded, so this issue is complete. CPU runtime validation, adapter implementation and launch compatibility remain in #84, #86, #92 and Node #25. GPU compatibility is deferred to future work and is not part of #84.
j0sh commentedon Oct 30, 2026
Decision update (2026-10-29): runtime and trusted adapter code will live together in a new repository. livepeer/node #25 is required before sandbox launch, so the adapter must use its multi-capability registration contract in the launch path. Separate runner IDs and heartbeats remain a development-stage option with the current protocol. #92 and Node #25 now track this; the reviewed source revisions above remain evidence rather than release pins.
[-]Sandbox source inventory and integration seams (historical)[/-][+]Record sandbox source revisions and runner integration decisions[/+]