Files
Colby McHenry e74eba1a47 feat(nix): module-system option wiring, path-import idioms, scoped resolution
Follow-ups on the carried #1084 base:

- nix-option-path synthesizer: config writes (launchd.user.agents.x,
  home.file.".gitconfig") link to the declaring options.<prefix> module —
  longest static-prefix match, quoted segments as opaque verbatim tokens,
  interpolation ends the prefix, >=2-segment paths only, multi-file-ambiguous
  declarations bail, submodule-internal options quarantined
- NixOS imports = [ ./x.nix ] / flake modules = [ ... ] lists and
  callPackage ./pkg.nix file edges (literal paths only)
- Nix calls resolve lexically (same-file) — no ambient cross-file namespace —
  and no other language's refs resolve into nix bindings
- .equals() for tree-sitter node identity (=== is always false across wrapper
  accesses; curried-chain dedup was dead, double-emitting refs)
- explore surfaces the option chain: findAllSymbols resolves dotted tokens by
  the options.<path> convention (new getNodesByNamePrefix index scan) and the
  dynamic-endpoint pool caps per token
- vendored wasm rebuilt at ABI 15 from nix-community/tree-sitter-nix@3d0173d
  (upstream corpus 54/54)

Validated on agenix / nix-darwin / home-manager / nixpkgs (44,368 files:
3m49s index, 1.30M nodes, 14,114 option edges, 12/12 sample precision).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 12:40:44 -05:00
..