Repository navigation
fix(builder): package declared Next inputs on patched image bases - #191
Merged
antoinetoussaint-byte merged 7 commits intoOct 28, 2026
Merged
Conversation
Resolve Node 24.22.1 Alpine 3.24 through the documented multiarch registry procedure. Reuse the exact nginx 1.31.7 pin from existing PR181 commit 21761d4 without changing packaging or runtime-companion semantics.
…/gomod-83e551e4b9
antoinetoussaint-byte
requested a review
from AntoineToussaint
as a code owner
October 28, 2026 21:08
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.
Attached Next applications could not build from
source-dir: .or a custom directory, declared sibling npm packages/archives were absent from the Docker context, and the SSR recipe assumed.next/standalone/server.js. The recipe now projects declared inputs with their relative layout and packages the application's actual configured standalone output, including.next-buildand nested tracing-root servers. Static exports refuse pre-existing output before invoking the build, so a successful no-op cannot publish stale files.The same delivery refreshes the build/SSR substrate to Node
24.22.1-alpine3.24@sha256:06d7adf3e0ef61a13f1d28682726366f97a15aa1888c934d3ecec86c33918b53and reuses the exact nginx1.31.7-alpine@sha256:892bb2152464f0c5d8972593a5f5afaf8054552580b699d95f8ff4af08c2d33dchange from existing #181 (21761d4). Both indexes include linux/amd64 and linux/arm64. Read-only inspection of both Node platforms found Alpine 3.24.3 and libssl3/libcrypto3 3.5.9-r0; this is base provenance, not final-image security qualification. The development runtime companion is separate and unchanged.Core is pinned to published v0.19.13, origin
224633233e5ddfc303ebf05d6e766fdfbc9c57e1, module sumh1:PdBd4JZhNSr/IRlm2Xic6R3vsZyPRhhCC2NDmquXh3E=. All seven reviewed effective-environment correction files at Core0772bc0are byte-identical in the published module. Normal builds therefore retain exact-key last-wins handling and complete winner metadata without depending on a local workfile. The module also updates proto-companion code and transitive dependencies; this is not a claim of whole-module equivalence.This is a fix at the Next packaging owner. It reuses the existing manifest/lock readers, ordinary npm installs, Core OUTPUT/TREE recipe transport and destination preparation, the existing Docker ignore matcher, and installed Next configuration/build metadata. It adds no Core protocol, import inference, dependency resolver, registry, hosted npm-start fallback, runtime launcher, or NYL label scheme. Package-parent containment is supported; dependency cycles, absent/absolute inputs, symlinks, output/source overlap and unowned staging collisions are refused. TREE verification catches added as well as changed files. Unrelated caller output survives. Full-source install layering intentionally trades dependency-cache reuse for correct npm lifecycle scripts.
Documentation updated in
templates/agent/README.md.tmpland.claude/skills/verify-changes/SKILL.md: declared-input/output contracts, pin ownership, freshness, cache tradeoff and the additional real-framework checks. This is the single source-delivery successor to merged #183; it preserves that history and combines the accepted packaging, freshness and base changes rather than splitting a stack.Validation:
GOWORK=offand Core v0.19.13:go build ./...,go vet ./...,go mod tidy -diff, and 196 tests pass usinggo test -json -skip 'TestNextjsLifecycle_Matrix/(docker|nix)' -count=1 ./....-race, including duplicate 134 bindings, metadata precedence, distinct aliases and genuine size-limit refusals.Limits: local Docker/Nix lifecycle arms were excluded to avoid the active Blue engine allocation. CreateToRun, manifest-render and actual-native-owner lifecycle opt-ins were not run in the ordinary local suite; native discovery and proto-companion conformance run in hosted CI. No fresh ownerdeath fixture or local engine operation was performed. Blue owns actual maintained image builds, GAR/GHCR digest mapping, final-runner scans/Node measurements, and health/page/static-asset proof. Those final-image gates are still outstanding; a copied deps-stage apk record is not final-runner inventory. A new agent version must be published through maintained
codefly publish patchafter qualification; these local 0.0.169 artifacts are not a new release.Current delivery head is
37819f787303a79798ecad1bb845650a76cee698. The maintained native-only build withGOWORK=offproduced binary SHA256c727f29aa881b0e3cbc3acde83964c14d5f0118938a3683cc98472281c67b3ffand SBOM SHA2568b64c4ea0ee62b6a3d24980f0e70f7df039fdf78ce68ead2f544c971f8df1180; actual Go metadata and the SBOM identify Core v0.19.13, with no replacement. The initial local no-space failure is retained; the retry passed after clearing only this task's disposable Go build cache.Hosted run 40769464360 at that exact head passed build, tests, manifest guard and effective-inputs conformance. Sync conformance failed because published Core selects
ghcr.io/codefly-dev/proto:0.0.21, whose public manifest currently returns404 MANIFEST_UNKNOWN. Core's existing maintained companion publisher is active; no downgrade, skip, duplicate publisher or blind retry is used. Merge is held until that dependency is available and exact-head conformance passes.