Skip to content

fix(runners): count effective environment before carrier delivery - #867

Merged
antoinetoussaint-byte merged 2 commits into
mainfrom
fix/effective-process-environment
Oct 28, 2026
Merged

antoinetoussaint-byte merged 2 commits into
mainfrom
fix/effective-process-environment

Conversation

@antoinetoussaint-byte

Copy link
Copy Markdown
Contributor

Native services can receive the same configuration at environment and process scope. Core counted both copies before Go's existing last-key-wins normalization, refusing Product's 134-binding environment as 762462 bytes even though its effective configuration fits the unchanged 524288-byte limit.

This fix at the owning Core boundary normalizes exact keys before native/Nix carrier materialization and counting. It preserves the complete winning variable, including File/Secret metadata, and keeps inline/file-carrier aliases distinct. Kubernetes rendering applies the same rule within its existing public and secret categories after restricted-profile checks, matching its existing map precedence. No operations, configuration values, transport, thresholds or limits are changed.

Behavior is documented in docs/runnable-binding-delivery.md. The correction is separately frozen at 0772bc0d; this branch normally merges current main 2e1857f0 without changing its version metadata or prior companion work. All seven correction files remain byte-identical to the freeze.

Validation on the correction: focused resources/base/services tests PASS, focused race PASS, restricted-secret and object-limit tests PASS, and affected-package vet PASS. A production-only reversal reproduces the native duplicate-size/metadata-transition failures and Kubernetes duplicate-size failure. Tests retain all 134 bindings and cover changed-value precedence, File/Secret metadata, genuine unique oversize refusal, and distinct carrier ambiguity.

No local engine, Nix executable, Kubernetes cluster or Product launch was run. Native agents must consume this Core correction themselves; rebuilding CLI alone does not update their embedded Core. Canonical CI supplies the broader delivery gates. No manual tag or new release programme is part of this fix.

@antoinetoussaint-byte
antoinetoussaint-byte merged commit 7852e96 into main Oct 28, 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