Pull packaged, pinned orchestrator artifacts on every backend #536

Closed
opened 2026-07-27 11:07:01 -04:00 by didericis-codex · 0 comments
Collaborator

Problem

Starting a bottle invokes a local orchestrator build on the Docker and macOS Container backends. On macOS, MacosInfraService.ensure_running() calls container build before it checks the running orchestrator. Docker does the analogous docker build. Firecracker instead pulls a verified rootfs artifact, but selects its version from runtime source content rather than a pin assigned when packaging the application.

macOS also bind-mounts installed source over the orchestrator image, so merely changing the image reference would not make the packaged artifact authoritative.

Desired behavior

  • Every production backend acquires, verifies, and runs an immutable orchestrator artifact selected by the installed application package.
  • Packaging records the OCI digest and Firecracker artifact version/checksum after publishing those artifacts.
  • Cached immutable artifacts may be reused, but startup never builds infrastructure locally unless an explicit development override is selected.
  • Docker, macOS Container, and Firecracker use the same release identity and fail closed when release metadata is invalid or unavailable.
  • macOS runs the code baked into the pinned image rather than overlaying host source.

Scope

Add a packaged release manifest, a backend-neutral artifact acquisition contract, OCI pull support for Docker and Apple Container, manifest-selected Firecracker artifacts, explicit local-build mode, release-pipeline support, and tests covering pin validation and backend parity. Include gateway artifacts where required to eliminate the adjacent unconditional infrastructure rebuild and keep the Firecracker split infra pair coherent.

This requires a PRD because it changes the release supply chain, package contents, and lifecycle behavior of all three backends.

## Problem Starting a bottle invokes a local orchestrator build on the Docker and macOS Container backends. On macOS, `MacosInfraService.ensure_running()` calls `container build` before it checks the running orchestrator. Docker does the analogous `docker build`. Firecracker instead pulls a verified rootfs artifact, but selects its version from runtime source content rather than a pin assigned when packaging the application. macOS also bind-mounts installed source over the orchestrator image, so merely changing the image reference would not make the packaged artifact authoritative. ## Desired behavior - Every production backend acquires, verifies, and runs an immutable orchestrator artifact selected by the installed application package. - Packaging records the OCI digest and Firecracker artifact version/checksum after publishing those artifacts. - Cached immutable artifacts may be reused, but startup never builds infrastructure locally unless an explicit development override is selected. - Docker, macOS Container, and Firecracker use the same release identity and fail closed when release metadata is invalid or unavailable. - macOS runs the code baked into the pinned image rather than overlaying host source. ## Scope Add a packaged release manifest, a backend-neutral artifact acquisition contract, OCI pull support for Docker and Apple Container, manifest-selected Firecracker artifacts, explicit local-build mode, release-pipeline support, and tests covering pin validation and backend parity. Include gateway artifacts where required to eliminate the adjacent unconditional infrastructure rebuild and keep the Firecracker split infra pair coherent. This requires a PRD because it changes the release supply chain, package contents, and lifecycle behavior of all three backends.
didericis-codex added the Kind/Feature
Priority
High
2
labels 2026-07-27 11:07:01 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: didericis/bot-bottle#536