switch from tags to digest for images - #1961
Merged
Merged
Conversation
Signed-off-by: Peter Jausovec <peter.jausovec@solo.io>
peterj
requested review from
EItanya,
ilackarms,
iplay88keys,
jmhbh,
supreme-gg-gg and
yuval-k
as code owners
June 3, 2026 22:28
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the controller build and agent translation logic so declarative agents use OCI digest-pinned runtime images (@sha256:...) rather than tags, enabling compatibility with Substrate ActorTemplate validation requirements.
Changes:
- Adds a build helper script to resolve agent runtime image digests from the registry and inject them into the controller binary via Go
-ldflags -X. - Updates the agent deployment translation path to emit digest-pinned runtime images and fail fast if required digests were not injected at link time.
- Updates golden test outputs and unit tests to validate digest-pinned image references.
Reviewed changes
Copilot reviewed 43 out of 43 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/controller-digest-ldflags.sh | New helper to inspect pushed image digests and emit -X ldflags for link-time injection. |
| Makefile | Adjusts LDFLAGS quoting and updates build-controller to build/push runtime images first, then embed their digests into the controller build. |
| go/README.md | Documents link-time embedding of agent runtime image digests and how make build-controller wires it up. |
| go/core/internal/controller/translator/agent/testdata/outputs/*.json | Updates golden outputs to use digest-pinned app@sha256:... references. |
| go/core/internal/controller/translator/agent/runtime_test.go | Updates runtime image assertions to validate digest-pinned references and adds helpers for setting digest globals in tests. |
| go/core/internal/controller/translator/agent/imageconfig_test.go | Adds unit coverage for digest pinning helpers and digest-required runtime resolution behavior. |
| go/core/internal/controller/translator/agent/digest_testmain_external_test.go | Sets default digest globals for external-package translator tests. |
| go/core/internal/controller/translator/agent/deployments.go | Introduces digest-based runtime image resolution and removes tag-based runtime selection. |
| go/core/internal/controller/translator/agent/adk_api_translator.go | Extends ImageConfig with Digest, adds digest normalization + pinning helper, and adds link-time digest globals. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
Signed-off-by: Eitan Yarmush <eitan.yarmush@solo.io>
EItanya
force-pushed
the
peterj/digestswitch
branch
from
June 9, 2026 15:12
a025456 to
9ffe268
Compare
EItanya
approved these changes
Jun 9, 2026
social4hyq
pushed a commit
to social4hyq/homebrew-core
that referenced
this pull request
Sep 20, 2026
kagent 0.9.7 Created-by: HarmonybrewBot Commit-by: HarmonybrewBot Merged-by: HarmonybrewBot Description: Created by `brew bump` --- Created with `brew bump-formula-pr`.<details> <summary>release notes</summary> <pre><!-- Release notes generated using configuration in .github/release.yml at v0.9.7 --> ## What's Changed ### Features * feat(api): add workingDir to BYO agent deployment spec by @mesutoezdil in kagent-dev/kagent#1970 * feat(ui): add guard to prevent out-of-sync sends when working cross-tabs by @onematchfox in kagent-dev/kagent#1904 ### Bug Fixes * fix(controller): disable standalone SSE for STREAMABLE_HTTP remote mcp servers by @jmhbh in kagent-dev/kagent#1974 * fix: ignore local cache directories in go docker context by @EItanya in kagent-dev/kagent#1978 * fix(controller): return error instead of panicking on unknown auth mode by @SarthakB11 in kagent-dev/kagent#1791 ### Other Changes * Expose the controller's /metrics endpoint through a dedicated Service by @danielorbach in kagent-dev/kagent#1803 * Migrate from A2A v0 to v1 (part 1) by @supreme-gg-gg in kagent-dev/kagent#1921 * switch from tags to digest for images by @peterj in kagent-dev/kagent#1961 * automatically refresh substrate status page by @peterj in kagent-dev/kagent#1990 * chore: bump kagent tools to 0.2.1 by @jmhbh in kagent-dev/kagent#1995 * support running declarative agents in substrate by @peterj in kagent-dev/kagent#1981 **Full Changelog**: https://github.com/kagent-dev/kagent/compare/v0.9.6...v0.9.7</pre> <p>View the full release notes at <a href="https://github.com/kagent-dev/kagent/releases/tag/v0.9.7">https://github.com/kagent-dev/kagent/releases/tag/v0.9.7</a>.</p> </details> <hr> See merge request: Harmonybrew/homebrew-core!11305
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.
No description provided.