feat: preserve aspect identity and adapter through functor evaluation (#398)
Functor-producing functions in parametric.nix (applyIncludes,
deepRecurse, withOwn) carry name, __provider, and eta.adapter from self
into their return values. ctxApply also carries name and __provider on
its result.
Currently, when parametric functors evaluate, they return plain {
includes = [...]; } attrsets — losing the aspect's identity. This means
any code inspecting the resolved aspect (such as a custom adapter via
resolve.withAdapter) sees incorrect defaults instead of the original
aspect's name.
This lays groundwork for context-level adapter resolution, where
adapters declared on aspects or contexts need to propagate through the
parametric pipeline to reach forward.nix and outputs.nix. Child includes
are tagged with the parent's meta.adapter so adapters compose downward
through the include tree.
Upcoming related PRs:
- #397
- Structural provider provenance via __provider paths
- Context-level adapter on ctxApply result
- Forward/output consumption of meta.adapter
authored by