Daytona 0.184.0 runtime matrix
Daytona 0.184.0 runtime matrix
Section titled “Daytona 0.184.0 runtime matrix”Investigated 2026-08-04. FractalOps pins chart 0.0.26, API, proxy, SSH
gateway, and runner manager v0.184.0-k8s-oss.3-amd64, plus runner
v0.189.0-amd64@sha256:33b53a805cf756384509fb60acc561c1a598ddcaabf0c5c419ec4ab2af4b1602.
This is a tested compatibility matrix, not one interchangeable version.
Native path
Section titled “Native path”- Let Daytona own sandbox lifecycle, process/toolbox access, snapshots, and runner assignment. Agent identity, leases, mailboxes, and continuity remain Backend domain state.
- Create one Daytona sandbox per project. Agent profiles launch isolated processes in that sandbox; they never fork or own a sandbox.
- Keep the upstream chart and APIs. Assembly supplies values, secrets, policy, and immutable image pins rather than maintaining a Daytona fork.
- Publish base and derived sandbox images through the Assembly-owned Harbor contract.
- Chart
0.0.26declares app versionv0.132.0; do not infer deployed component versions from chart metadata. Verify every rendered image. PROVIDER_TYPE=kubernetesassigns a runner through Kubernetes; the selected privileged runner still creates sandboxes through its Docker/Sysbox runtime. A Daytona sandbox is not a native Kubernetes Pod.- The runner is newer than the control plane. Never bump one cell of the matrix without API compatibility, sandbox lifecycle, preview, SSH, and rollback proof.
- Daytona’s registry-token flow couples base-image pull and derived-image push to the internal Harbor authority. Direct GHCR credentials do not replace that contract.
- Daytona
v0.184.0interpretsautoArchiveInterval=0as the configured maximum interval, 43,200 minutes by default, rather than immediate archive or infinite retention. A 24-hour evidence run temporarily applies a bounded 1,500-minute interval to its one canonical sandbox and restores the prior interval in unconditional cleanup. The bounded value also expires if runner cleanup cannot execute. Without this hold, the normal 720-minute stopped-sandbox policy archives the sandbox before the soak can finish. - Runner
v0.189.0setsRemoveVolumes: trueonly on the normal stopped-container deletion path. Its forced destroy fallback and resize cleanup omit the option, so Docker can retain the workspace image’s anonymous/workspace/.cachevolume.
Anonymous cache-volume workaround
Section titled “Anonymous cache-volume workaround”The workspace image seeds
/workspace/.cache/.fractalops-volume-owner-v1 with mode 0444 and exact bytes
fractalops.yamon.io/daytona-workspace-cache:v1\n. The hourly Assembly reaper
is deployed in dry-run mode first. Apply mode requires separate live proof and review. It considers at
most eight volumes per run and only when Docker reports dangling plus anonymous, the
name is 64 lowercase hexadecimal characters, driver and scope are local, options are
empty, age is at least one hour, and a read-only mount proves the exact marker. It then
rechecks that no container references the volume and calls only
docker volume rm <volume-id> without force. The probe overrides the runner image’s
/var/lib/docker VOLUME with tmpfs, so inspection cannot create another anonymous
volume. No broad prune, host PID, privileged container, Docker data-root mount, or
service-account token is permitted.
The six-hour stable-channel gate scans the candidate runner’s destroy and resize sources. When all forced removals become volume-aware, promotion stops and requires removing this workaround after live upgrade proof instead of carrying custom cleanup indefinitely.
Authoritative references: Daytona v0.184.0,
runner v0.189.0,
runner destroy implementation,
runner resize implementation,
official Helm repository, and
self-hosted deployment.
The pinned control-plane behavior is defined by
resolveAutoArchiveInterval
and its
MAX_AUTO_ARCHIVE_INTERVAL default.