Skip to main content

Module inventory

Module inventory 

Source
Expand description

Inventory enumeration: turn the fixed target-root list into hashed PathEntry rows.

§Target roots

Built from two sources, concatenated in this order:

  1. Platform-specific — provided by each registered PlatformProbe (one sibling crate per supported Agent platform). Each probe owns its own (category, path) list plus optional per-file decomposition rules.
  2. Universal — hard-coded in [universal_target_roots]: dependency manifests + lockfiles (supply-chain) and .env, all resolved relative to the current working directory. These are platform-agnostic and have no owning probe.

Missing targets are silently skipped (no error). Directories are walked recursively, with SKIP_DIRS / SKIP_FILES noise filtered out. Symlinks are not followed.

§Per-file decomposition

[path_entries] delegates to the owning probe’s PlatformProbe::decompose_file: when it returns Some(fragments), the file produces one virtual <file>#<fragment> entry per element (each hashed over its own payload); when it returns None the file produces a single whole-file SHA-256 row. The mechanism lets a probe split noisy configs into per-block fragments so that unrelated background writes (session counters, cache, timestamps) do not show as Modified noise — without core needing to know the per-platform schema.

Structs§

PathEntry
One hashed file or virtual sub-entry.

Functions§

collect
Walk every probe’s target roots plus the universal list and return a sorted list of PathEntry.