Skip to content

feat(builder): negotiate immutable environment image bindings - #874

Merged
antoinetoussaint-byte merged 3 commits into
mainfrom
feat/environment-image-bindings
Oct 29, 2026
Merged

antoinetoussaint-byte merged 3 commits into
mainfrom
feat/environment-image-bindings

Conversation

@antoinetoussaint-byte

@antoinetoussaint-byte antoinetoussaint-byte commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Environment image policy cannot currently reach service builders. Add the optional base-image-bindings/v1 contract to the existing BuildCapabilities/Build RPCs: the loaded agent declares roles and recipe variants, and a caller can select immutable replacements. The client refuses missing executor support and incompatible, ambiguous or mutable selections before Build.

This is a fix at the contract owner, reusing the existing capability negotiation and recipe flow. The agent renders its recipe; the CLI must not rewrite Dockerfiles. No static agent compatibility roster, global protocol bump, fleet repin, package adaptation or deployment change.

Docs: docs/build-image-bindings.md and docs/agent-contract.md describe the contract and its limits. Go and Python bindings regenerated through codefly generate proto.

Validation: full local go test ./... passes, focused services/contract race tests pass, and pinned make buf-lint buf-breaking passes. The CLI and go-grpc consumer exercised real builds, image execution, service-over-type selection, input invalidation/reuse and unsupported-variant refusal. The Go hosted six-case image matrix passes on native amd64 and arm64. All Core CI checks pass. Related existing plan: obin-ai/infra-base#1485; this change covers image selection only.

Release: bumps version/info.codefly.yaml to 0.19.18. The existing version-tag workflow will publish v0.19.18 only after the exact merged main commit passes CI. The optional base-image-bindings/v1 capability does not change the global startup/lifecycle protocol.

@antoinetoussaint-byte
antoinetoussaint-byte marked this pull request as ready for review October 29, 2026 15:47
@antoinetoussaint-byte
antoinetoussaint-byte enabled auto-merge (squash) October 29, 2026 16:59
@antoinetoussaint-byte
antoinetoussaint-byte merged commit 3263fbc into main Oct 29, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant