Repository navigation
feat(build): render environment image bindings and update Go builder - #217
Merged
Merged
Conversation
antoinetoussaint-byte
marked this pull request as ready for review
October 29, 2026 15:58
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.
Go service bases are hardcoded in the emitted Dockerfile, so an environment cannot select approved replacement content. Implement Core's optional
base-image-bindings/v1contract: advertise frontend, builder and runtime roles from loaded settings; validate immutable bindings; render the selected references through the existing template.Static and native services expose the same
runtimeimage input, so one type-wide default covers both. Static services use that input for assembly and keep scratch final stages. CGO or runtime packages retain the Alpine/musl final recipe. Unsupported roles/variants refuse. The default Go builder pin moves from 895e5fea to current upstream 8a504649; runtime Alpine remains pinned 3.23.7/ff7f0c. No owner release, service pin, installed agent or deployed image changes.Fix at the owner: reuses live BuildCapabilities, Core binding validation, the template, Build RPC and maintained packaging test. Core source dependency is normally pinned from codefly-dev/core#874 using
codefly agent deps --pin, including owned factory/base locks. CLI support is codefly-dev/cli#1232. Related existing plan: obin-ai/infra-base#1485.Docs:
templates/agent/README.md.tmplexplains roles, precedence, native compatibility and qualification limits;docs/service-protocol.mdrecords the gateway dependency compatibility change.Validation: focused template/recipe/binding race tests and real Build gRPC test pass; vet and factory-lock check pass. Maintained packaging CI adds selected-static and selected-native cases to the existing four-case native amd64/arm64 matrix; these execute digest-only bindings through the production Build RPC, retain archives and Syft inventory, and preserve strict runtime/temp/home/native checks and exact owned cleanup. Both native packaging jobs pass at final 520c8bc in run 40905091378 (six cases each); artifact IDs 12912075288 (arm64) and 12910677836 (amd64) retain archives/inventories. Real CLI consumer builds also pass with type and service overrides, runtime execution, cache invalidation/reuse and incompatible-variant refusal. All five final agent checks pass, including the full general suite.
The Core dependency update selects grpc-gateway 2.33, whose secure default no longer forwards arbitrary Grpc-Metadata-* headers. The proxy regression initially failed against that default; its fixture now explicitly maps only X-Caller through the existing ServeMuxOptions seam. The same generated-service adapter suite passes without restoring legacy header matching. Native candidate scan retains two unpatched Docker HIGH findings; no release or universal CVE clearance claim.