Repository navigation
build(core): adopt core v0.19.4 - #139
Merged
antoinetoussaint-byte merged 2 commits intoOct 13, 2026
Merged
Conversation
Moves the agent to the fleet's current core floor. Core v0.19.4 compiles against every call site unchanged; its go directive (1.27.0) is below this repo's (1.27.2), so no Go pin moves. go mod tidy resolves kustomize v0.21.1 and kube-openapi d427ff9ee9ad, so structured-merge-diff/v7 is absent from the graph without an explicit downgrade. docs/PACKAGING.md named the old core pin; AGENTS.md still stated the Go directive #129 replaced (1.27.0, now 1.27.2). Closes #138. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
go.mod has said go 1.27.2 since #129, but goreleaser-cross has published no 1.27.2 image (newest: v1.27.1-3, GO_VERSION=1.27.1). The rule that the cross image's Go must match go.mod is stated in AGENTS.md and the release-go-agent skill; both now record the gap, how each path compiles with go1.27.2 anyway (GOTOOLCHAIN auto in the release, an explicit GOTOOLCHAIN in Package), and what to do once the image exists. Both pins stay unchanged: there is no published tag to move them to. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Closes #138.
Moves the agent from core v0.17.0 to core v0.19.4, the fleet's current floor. It doesn't release anything: once this is merged, the release goes through
releaser.yml(release: vX.Y.Zcommit plus tag), done by the coordinator.Changes and classification
go.mod/go.sum:github.com/codefly-dev/core v0.17.0 → v0.19.4, thengo mod tidyreplace, no pseudo-version. The transitive bumps (grpc 1.84.0, otel 1.47.0, x/sys, genproto, go-openapi/swag) are whatever core v0.19.4 requires, with no hand edits.docs/PACKAGING.md: "pinned core v0.17.0" → v0.19.4runners/dockerrun/docker_runner.go:1114), so the sentence is still true with the new pin.AGENTS.md: Go version "(1.27.0)" → "(1.27.2)"main: #129 raised the directive to 1.27.2 and left the doc behind.chore(scout):AGENTS.md(CGO rule) and.claude/skills/release-go-agent: record that no goreleaser-cross image ships Go 1.27.2main. The rule says the cross image's Go must matchgo.mod. goreleaser-cross has published nothing for 1.27.2 (newest isv1.27.1-3, whose build setsGO_VERSION=1.27.1; I checked ghcr.io and Docker Hub on 2026-10-13), so both pins stay where they are (releaser.ymlv1.27.1-1,builder.gov1.27.0). The release build gets go1.27.2 throughGOTOOLCHAIN=auto, which isn't hermetic.Packagegets it through an explicitGOTOOLCHAIN. The docs now say so and name the exit: when the image is published, move both pins, runTestPackageRealCGO, and delete the note. The real fix belongs to goreleaser-cross, which owns publishing that image.Nothing in the code changed. Every call site compiles and passes against v0.19.4 as written, so no adaptation was needed and none was invented. No shims.
Issue checklist
go.mod. Noreplace, and no codefly pseudo-versions (gortk v0.2.0is a tag).go mod verifypasses andgo mod tidy -diffis clean.go mod graph | grep structured-merge-diff/v7prints nothing. Tidy resolveskustomize/apiandkustomize/kyamlv0.21.1 andkube-openapid427ff9ee9ad, so the issue's explicit downgrade was not needed and isn't applied.go 1.27.0, lower than this repo'sgo 1.27.2, so the directive doesn't move. CI already readsgo-version-file: go.mod. The runtime image (go1.27.2), the builder Dockerfile and the goreleaser-cross pins are unchanged, because nothing forces them to change (see "Would file" for an existing drift).pkg/service/effective_inputs_test.go:446: the variable namedlegacyis an agent that doesn't implementGetEffectiveInputs. The test asserts that core'sciinputs.Discoverfalls back conservatively and authorizes no cache reuse for it. Core v0.19.4 still has that fallback (ciinputs/inputs.go:119, "unsupported declaration"), so the test covers a current safety contract. Deleting it would lose coverage without removing any legacy code.templates/factory/flake.nix.tmpl:nixpkgs.legacyPackagesis the name of the Nix API.Reused
ci.ymland.claude/skills/verify-changes:TestManifestGuardRender(the manifest-guard render), the recipe tests checked by core'sservices.VerifyDockerBuildPlan,TestPackageRealCGO, and the runtime-image reproducibility steps.Verification (all run locally on darwin/arm64, Go 1.27.2)
go build ./...,go vet ./...,go test -count=1 ./...: all pass. This includes the root policy tests (workflow SHA pins, Dependabot grouping, AGENTS.md budget). The releaser'sgo test -v ./...runs the same packages.TestManifestGuardRenderrendered twice with the CI env (RESTRICTED_PORTABLE_V1) gave identical trees. The tree is also byte-identical to the same render fromorigin/mainat core v0.17.0, so the core move changes no rendered manifest.TestBuildEmitsRecipePlan,TestBuildxRecipeOverGRPCand the other recipe/Dockerfile template tests pass. The emitted plans pass core'sVerifyDockerBuildPlan.SERVICE_GO_PACKAGE_TESTS=required go test -race -count=1 -v -timeout 15m ./pkg/builder -run TestPackageRealCGO: PASS (48.6s).linux/amd64did a real cross build through goreleaser-cross (45.7s) anddarwin/arm64built natively (2.6s). The first attempt failed only because the local Docker daemon was unreachable, and it passed once the daemon was up.moby/buildkit@sha256:2f5a…). The smoke checks pass (go1.27.2,GOTOOLCHAIN=local, tools present). The multi-platform OCI build reproduces the lock digestsha256:341506e8…0732. The pinned ref passes the anonymousdocker manifest inspectcheck. Trivy reports no HIGH/CRITICAL findings.Not verified
gooutput on success, so the release log doesn't show it. It's inferred from the image setting noGOTOOLCHAINand Go defaulting toauto.ghcr.io/goreleaser/goreleaser-cross:v1.27.0was already in my local Docker cache, soTestPackageRealCGOexercised the cross build but not the pull. CI's cold cache covers the pull../pkg/runtimenix integration. It skips without a siblingcorecheckout, and running it would make Nix fetch nixpkgs over the network, which this task rules out. CI doesn't run it either. This PR doesn't touchpkg/runtime, but core's runners underneath it did change between v0.17.0 and v0.19.4, so this path is unverified.codefly-dev/.githuband I didn't reproduce it locally. Since the render is byte-identical tomain's, it should give the same result, but the PR's CI run is what checks it.Would file (not filed, per instructions)
goreleaser-cross pins lag the Go directive: handled in this PR by thechore(scout)commit (review finding F1), see below.base/code/codefly-base. It looks accidental.🤖 Generated with Claude Code