dircue 0.7.0
Dircue 0.7.0 adds focused project profiling, source-availability evidence, and explanations of profiling decisions. Each is opt-in. Existing language commands, including dircue --json, retain their output and exit-status contracts.
Profile a project in its original context
Select a .NET or Python/uv manifest from the original repository or directory root:
dircue analyze focus --project services/app/app.csproj --metrics --files --json /checkoutDircue inventories the selected source, reads supported declarations, and identifies a qualified project population. Shared configuration and declared relationships remain visible as context. Nested unsupported or malformed projects establish boundaries instead of silently becoming part of their parent.
Optional scc metrics count the primary population. Additional --related-project selections receive separate totals. --affected-by Directory.Build.props queries projects with declared or candidate context relationships to that input.
This is static containment and declaration evidence. It does not evaluate compiler globs, conditions, imports, or build scripts, and it does not claim to reproduce a compiler's complete source list.
Distinguish absent content from acquisition boundaries
dircue analyze availability --json /checkoutThe report distinguishes valid Git LFS pointers, pointer-like text, LFS attributes, Gitlinks, submodule declarations, and supported local sparse-checkout metadata. Combined analysis can qualify missing declaration targets against observed boundaries:
dircue analyze all --availability --declarations --json /checkoutNo repositories are fetched, submodules initialized, or LFS objects hydrated. Checkout sparsity is kept separate from committed-tree evidence. Reads, retained observations, and correlation work are bounded; incomplete evidence stays visible.
Explain a result
dircue analyze explain --file src/main.go --json /checkout
dircue analyze explain --project services/app/app.csproj --json /checkout
dircue analyze explain --file src/main.go --report saved-profile.json --jsonFresh file explanations follow the actual language decision path and retain applicable attribute origins, read extent, detection strategy, and inclusion or exclusion reasons. Project explanations expose retained declaration facts and unresolved relationships.
Saved-report queries never reopen the recorded source. They identify the supplied report bytes and distinguish unavailable evidence from an observed decision. A file absent from a retained inclusion list is not automatically labeled excluded.
Compatibility and scope
Only the new targeted modes use aggregate schema 1.6.0. Existing unfocused schemas remain unchanged. Saved-report comparison explicitly rejects 1.6.0 until it can account for focused populations; saved explanations can read it now.
All three capabilities run in the core binary without the structural worker. Focus supports .NET and Python/uv selection in this release; language profiling retains its broader existing coverage. Focused metrics still pay for the original-root inventory and declaration pass, so small inputs may see no speed benefit.
CI separates ordinary draft updates from full-validation concurrency lanes. Packaged-binary checks now exercise all three capabilities on each supported native platform, and release assembly requires matching receipts.
The candidate validation report records compatibility results, focused-workflow measurements, source identities, and qualifications.
Downloads
Core archives cover Linux and macOS on AMD64/ARM64, plus Windows AMD64. Wheels contain the same core binaries for installation with Python tooling. The optional structural worker remains a separate archive. Checksums, provenance, and native verification receipts accompany release assets; PyPI publication remains deferred.