Skip to content

Record sandbox source revisions and runner integration decisions #100

Closed

Description

@j0sh

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, plus CreateTrickleChannels/DeleteTrickleChannels and CreateProxy: 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.CommandContext supplies request cancellation, not process/filesystem/network isolation.

Decisions and implementation tracking

Activity

  1. changed the title [-]Pin sandbox revisions and Go runner integration points[/-] [+]Pin sandbox revisions and optional Go SDK adapter integration points[/+] on Oct 30, 2026
  2. added this to the Milestone 6: Sandbox milestone on Oct 30, 2026
  3. changed the title [-]Pin sandbox revisions and optional Go SDK adapter integration points[/-] [+]Sandbox source inventory and integration seams (historical)[/+] on Oct 30, 2026
  4. j0sh commented on Oct 30, 2026

    @j0sh
    Author

    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.

  5. j0sh commented on Oct 30, 2026

    @j0sh
    Author

    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.

  6. changed the title [-]Sandbox source inventory and integration seams (historical)[/-] [+]Record sandbox source revisions and runner integration decisions[/+] on Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions