fix(secrets): preserve partial gateway assignments#105160
Merged
Merged
Conversation
Contributor
Author
|
Land-ready maintainer proof:
This preserves contributor credit for @SunnyShu0925 while avoiding the original patch's mixed-value regression. |
Co-authored-by: SunnyShu <[email protected]>
steipete
force-pushed
the
codex/pr-96661-replacement
branch
from
July 12, 2026 08:54
2714570 to
2ee46ba
Compare
Contributor
|
Codex review: stale review; fresh review needed. Summary Next step |
Contributor
Author
|
Merged via squash.
|
This was referenced Jul 12, 2026
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.
What Problem This Solves
An active Gateway secrets snapshot can resolve some command SecretRefs while leaving an exec-backed target unresolved. The previous all-or-nothing result converted that partial snapshot into
secrets.resolvefailure noise, after which the CLI repeated resolution locally. PR #96661 identified the user-visible failure, but its client-side bypass could discard authoritative Gateway-only values.Fixes #96653. Supersedes #96661 while preserving @SunnyShu0925's contribution and co-author credit.
Why This Change Was Made
Keep resolution at the existing owner boundary: the Gateway returns every assignment its active snapshot resolved, even when another target remains unresolved. The existing caller then retains those authoritative values and performs local fallback only for missing paths.
This avoids a second resolution policy, preserves remote/service-only env and file values, and removes the noisy failing RPC without hiding genuine Gateway failures.
User Impact
secrets.resolveunavailable error merely because one exec-backed target needs local fallback.Evidence
tbx_01kxapky9sr42z94nrxr4hnnjs: 60 focused Gateway, runtime-secret, CLI, and auto-reply tests passed on the current-main replacement.tsgo:coreandtsgo:test:src.Known broad-gate context: the stale fork's delegated full-suite workspace mixed current-main tooling tests with the old fork tree, producing unrelated missing
extensions/crabboxand shard-inventory failures. Recreating the patch on currentmainremoves that workspace mismatch; hosted exact-head CI remains the landing gate.