Repository navigation
Conversation
Move Compose preparation, shared ROFS bridge bootstrap and service/process handles into the SDK while preserving the merged snapshot, ownership and command identity contracts. Forward managed runtime configuration through restore and fork without replaying fresh setup. Keep native IPv4 Compose networking and service-scoped model tunnel entries, and reconnect only owned network rules after restoration. Preserve original process identities and child-first thaw. Add migration regressions, a maintained example, component boundary documentation and helper/distribution CI checks. Signed-off-by: 月可 <hukeyang.hky@antgroup.com>
hky1999
force-pushed
the
hky1999/sdk-managed-compose
branch
from
October 28, 2026 14:59
d932540 to
61606ce
Compare
This was referenced Oct 28, 2026
Compose pull with the missing policy still pulls digest references. In the managed runtime this enters ordinary layer extraction even though the complete immutable image root is already mounted by sandboxd. Verify pinned Docker references and committed image snapshots instead of pulling prepared inputs again, and prevent repeat pulls during automatic Compose up. Preserve native pulls without automatic image preparation and keep missing or changed registrations visible without an extraction fallback. Cover mixed build/image services and failed registration checks, and document the preparation-time pinning contract. Validate with the full SDK quality gate, bridge tests and an isolated runtime using the reported loadgen digest. Signed-off-by: 月可 <hukeyang.hky@antgroup.com>
Validate immutable manifest/config/chain relationships while allowing images with distinct target digests to share an identical filesystem chain. Preserve empty automatic plans for scratch builds and filter unused manual aliases. Require discovery schema 2 before dispatching project input. Constrain host Dockerfile, build-context and dotenv reads, isolate discovery environment variables, and reject unsupported external Compose includes and extends. Retain unknown command outcomes and cancellation cleanup errors, and preserve unbounded verification waits without a foreground zero-timeout call. Cover these cases with regression tests and document the matching-helper boundary. Signed-off-by: 月可 <hukeyang.hky@antgroup.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Harbor needs to run unchanged Dockerfile/Compose tasks while retaining whole-sandbox checkpoint/restore. Move reusable image preparation, Docker runtime startup, Compose lifecycle and captured service-process handles into the AKernel SDK. Harbor keeps task/resource/verifier adaptation, model access and aligned harness checkpoint decisions.
Review baseline and implementation
Based on
inclusionAI/AKernel:developat5ded29d5809f7f279c7ae122b3312d6912207fc6; current source-preview head is d13e774. The change retains the merged snapshot/lifecycle SDK, command identity, conservative creation ownership, cancellation/rollback and fork cleanup contracts. Backend changes forward validatedextra_configthrough restore and fork; they do not replace the snapshot implementation.ComposeProjectfreezes original project inputs, prepares startup-declared images, exposes explicit start/build/pull/up boundaries and serializable descriptors, and owns service exec/transfers. Original Dockerfiles and Compose bytes stay unchanged.DockerRuntimeandbuilder/image-bridgevalidate OCI metadata and register Sandboxd's existing shared ROFS lower roots with private managed upper storage. They add no second registry layer cache.ServiceHandle/ServiceProcessHandlepreserve container ID/start time and process PID/start time. Restore attaches captured processes without replaying builds, up or the agent launch; uncertain launches retain an observation token. Trees thaw descendants before waiting ancestors.image: name:tag@sha256:...reuse their prepared ROFS roots. Native Compose's missing pull policy still pulls digest references, which otherwise enters forbidden layer extraction. Automaticpull()now verifies pinned aliases and committed snapshots;up()verifies them and disables repeat pulls. Missing/changed registrations fail without an extraction fallback. Ordinary nonautomatic Compose keeps native pull behavior. The current SDK requires the source-matched schema-2 Go helper; older helpers are rejected before project inputs are sent.Start with component boundaries and integration, then
_compose.py,_docker_runtime.py,_image_bridge_guest.py,_service_process.pyand the bridge helper.Dependencies and scope
The managed file upper requires the Sandboxd contract from Sandboxd #83. Its reviewed server revision must be pinned and qualified by the AKernel consumer. AKernel #126 separately exposes explicit Helm reflink configuration. Compatible same-mount storage, durable synchronization and Docker 28 runsc packet-socket flags are operator prerequisites.
This PR changes no Sandboxd gitlink, runtime release pin, deployment or Coordinator. It introduces no Compose-aware Agent DX server API. Harbor delivery branch
hky1999/harbor-compose-native-networknow pins this SDK; its audited runtime code is88dc5ace, delivered with tests/documentation at76791d384b0f7b5a777379948c49bc6f4bfdfbbd.Delivery hardening in this head
Validation of this head
make sdk-check: 477 SDK unit tests + 35 benchmark-driver tests, Ruff and mypy passed. Bridge gofmt, Go tests and vet passed.Full delivery review records configuration, test scope and operational limits.
Release and scale limits
This remains a source preview pending component review and normal release qualification. The matching Linux/amd64 helper attachment was source-built and anonymously downloaded/hash-verified. Its non-SDK release tag triggers the generic Python release workflow's tag-format rejection; subsequent build/publish steps do not run and no PyPI package was published. This is not an official CI SDK release.
Four concurrent trials do not qualify 100/1000 cold starts, registry quotas or long-run tail latency. Metadata remains per-project and the client freezes/uploads the full project context. Unsupported direct-Dockerfile syntax and external Compose sources fail closed; external TCP address migration, local Harbor restart recovery and exactly-once external model calls are not promised. A prior prototype also had one 300-second checkpoint timeout without an established root cause. DSH/Codex real-model E2E was not repeated with this head.