You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor(config): phased VariableResolver with an inline ${...} scanner
Collapse the SubstituteHost/SubstituteContainer/SubstituteDevContainerID/
SubstituteTemplateOptions free functions into a single VariableResolver that
applies substitutions one explicit phase at a time (host, container, identity,
template) over a shared SubstitutionContext, and returns an error instead of
silently swallowing malformed input.
${...} tags are scanned by a ~25-line substituteTags helper: text/template is
the wrong tool here (its {{action}} model can't parse the opaque ${var:arg}
syntax, and it can't leave unknown tags verbatim for a later phase), and a
vendored engine was 200+ lines of dead API for one call site.
Callers migrate to the resolver: the up flow runs the full pre-container
pipeline (BeforeContainerInto) before consuming config fields and derives
id-labels up front; container-phase call sites (exec, read-configuration,
setup, up) share a resolveContainerVariables helper; mounts, initializeCommand
and feature host-var substitution thread the typed context and surface
resolution errors.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
0 commit comments