mirror of
https://github.com/kvcache-ai/AgentENV.git
synced 2026-11-05 01:17:36 +00:00
[PR #348] feat(compose): build service images with the remote builder #369
Labels
No labels
bug
documentation
enhancement
enhancement
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
kvcache-ai/AgentENV#369
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/kvcache-ai/AgentENV/pull/348
Author: @Primary33
Created: 10/9/2026
Status: 🔄 Open
Base:
main← Head:feat/compose-build📝 Commits (5)
afe5e13feat(compose): add the Compose plannere89868afeat(compose): add the guest Compose runtime image0fe2d69feat(compose): run Compose projects in isolated sandboxes7957f81feat(cli): add aenv compose up61476c7feat: build Compose service images with the remote builder📊 Changes
36 files changed (+4554 additions, -72 deletions)
View changed files
📝
.github/workflows/release.yml(+10 -0)➕
compose-image/Dockerfile(+117 -0)➕
compose-image/test_e2e.py(+477 -0)📝
crates/aenv/src/commands/build.rs(+456 -46)➕
crates/aenv/src/commands/compose.rs(+649 -0)📝
crates/aenv/src/commands/mod.rs(+1 -0)📝
crates/aenv/src/commands/start.rs(+1 -1)📝
crates/aenv/src/main.rs(+3 -0)📝
deploy/docker/Dockerfile.agentenv(+7 -0)📝
docs/src/concepts/sandboxes/starting.md(+254 -2)📝
docs/src/configuration/reference.md(+9 -0)📝
docs/src/getting-started/quickstart.md(+30 -0)📝
scripts/install.sh(+3 -0)📝
services/Makefile(+5 -0)➕
services/compose/cmd/main.go(+39 -0)➕
services/compose/plan.go(+469 -0)➕
services/compose/plan_test.go(+322 -0)➕
services/gateway/internal/compose_test.go(+46 -0)📝
services/gateway/internal/metrics.go(+1 -1)📝
services/gateway/internal/schedule_hint.go(+1 -1)...and 16 more files
📄 Description
What
Add
aenv build --composeand/sandboxes-compose/planto build selected Compose services and write a runnable file pinned to published image digests.Why
Build local Compose projects into reusable images that can immediately run through
aenv compose up.Related issue
Depends on CLI #417, which is stacked on runtime #349, planner #415 and guest image #416. Review the last commit only. Rebase onto main after those dependencies merge.
Scope and non-goals
Planner build mode, build planning API, Compose CLI builds, build-failure reporting, build E2E coverage and the Terminal-Bench environment harness.
Design and behavior changes
/sandboxes-compose/planPrometheus label with this endpoint.--harborsupplies explicit task defaults.Compatibility and operations
Requires the stack above and matching CLI/server/planner versions. Planning is limited to 30 seconds on the node and has a 60-second gateway timeout. Registry pushes use client credentials; runtime pulls use node credentials.
Validation
On the designated Ubuntu test host as a non-root user with isolated state, after rebasing onto #417:
make clippycargo fmt -p aenv -- --checkcargo test -p aenv --bin aenv— 126 passed.cargo test -p agentenv --lib compose/api::impls::sandbox/api::impls::image_build— 3 / 26 / 24 passed.make -C services test fmt-check vetmake agentenv-server— generated files unchanged.The dependency stack separately passed its full unit suite, image build, API lifecycle E2E and CLI E2E. Full build E2E and Terminal-Bench runs were not repeated for this rebase. Workspace formatting retains the known Node line-wrap discrepancy described in #349.
Risks and reviewer notes
Review planning validation, output publication after successful builds, and the image-only failure wait. Images produced before a later service fails follow repository/registry retention policies.
Checklist
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.