feat: Implement eager raw reference expansion #4
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.
Introduces a two-stage reference processing model that enables safer config composition workflows, particularly for config pruning scenarios.
Key Changes:
%ref) now expand eagerly duringupdate()instead of lazily duringresolve()Preprocessorclass handles raw reference expansion before Item creationpath_utilsWhy this matters:
Previously, both
@refand%refresolved lazily. This made patterns like "copy value then delete source" impossible:With lazy resolution, the reference would fail because
systemwas deleted. Now%references expand immediately duringupdate(), so deletion happens safely afterward.Processing stages:
update()):%raw references expand and copy valuesresolve()):@resolved references and$expressions evaluateThis separation maintains backward compatibility while enabling advanced config composition patterns.