Baseline determinism hardening + dropped-data surfacing. Verified end-to-end on the Windows PowerShell 5.1 runtime target: byte-identical bodies across two live tenant extractions, full SIT/label name resolution.
Added
- Unattached rules (parent policy not in the export) are surfaced in all three rendered outputs instead of silently dropped.
Compress-EnumCollisionfails loudly with the offending fragment when a collision escapes the flatten patterns (was an obscure WinPS 5.1 parse crash).tests/Inventory.Tests.ps1coveringGet-DlpInventoryagainst mocked Purview cmdlets.
Changed
Get-DlpInventorybulk-fetches the SIT/label catalogues once; a fetch failure aborts the run instead of being silently recorded as an orphan.ReferencedSits/ReferencedLabelssort byName, Idfor deterministic orphan ordering.- JSON body and meta sidecar are written with LF line endings on every OS (one-time CRLF->LF baseline diff on Windows).
- Output filename date stamp pinned to the invariant culture.
Fixed
- StrictMode-safe handling of heterogeneous
AdvancedRuleshapes inExpand-AdvancedRuleReference. Format-InstanceCountno longer fabricates instance counts from empty-string min/max.
Full details: CHANGELOG. Run procedure: PS 5.1 runbook.