Skip to content

dircue 0.6.1

Choose a tag to compare

@github-actions github-actions released this 20 Sep 23:42
· 480 commits to main since this release

Dircue 0.6.1 improves bounded file reads and strengthens aggregation checks. Existing commands, output schemas, read limits and exit-status contracts are preserved.

Faster bounded reads

The scanner uses capped file-size hints to reduce allocation when reading ordinary files and Git objects. Hints affect allocation only: read limits still determine how much content is inspected, and files that grow or shrink retain the existing read behavior.

The final eight-input comparison against the 0.6.0 runtime found:

Workload Median runtime change Median peak-memory change
XML directory, aggregate analysis 33.90% faster 7.58% higher
XML directory, language analysis 12.29% faster 4.96% lower
Roslyn directory, aggregate analysis 3.27% faster 5.88% lower
Spring Framework Git, aggregate analysis 1.46% faster 4.51% lower

XML aggregate analysis took 64.65 → 42.73 ms, with median process peak RAM 67.53 → 72.65 MiB. Measurements used warm caches on one macOS ARM64 host. The XML fixture contains 2 GiB, but profiling reads bounded prefixes; this is not full-content throughput. Small timing differences on source repositories may be noise, and Roslyn's Git scan had a small memory increase.

Language and aggregate output matched byte-for-byte on every input. All samples, source identities and tradeoffs are retained.

Stronger aggregation checks

Independent Go and Rust property tests compare hotspot aggregation against full-population references. Mutation tests detected all 17 deliberately introduced defects, with passing baseline and restored-code controls.

Optional Bend reference models have 35 checked laws for histogram aggregation and top-K selection, supplemented by executable comparisons and negative controls. These are model proofs and production tests, not proof of the whole application. Bend is not a runtime dependency and does not need to be installed for ordinary CI.

Reader validation includes changing files, short reads and 5,040 compressed Git-stream comparisons. The full Go race suite and vet passed. All 278 retained CLI compatibility cases matched stdout, stderr and exit status; Linguist conformance recorded 404 matches, 16 documented extensions and zero failures.

Resource choices and documentation

The resource guide explains existing concurrency controls and GOMEMLIMIT, a soft Go memory target. It is not a hard process-memory ceiling, and no new memory-limit flag or global garbage-collection setting is introduced. The design principles distinguish analysis scope from execution preferences and require visible coverage limits.

Downloads

Choose the core archive for Linux or macOS on AMD64/ARM64, or Windows AMD64. Structural analysis additionally requires its matching structural-worker archive.

Attached wheels contain the core binary for installation with Python tooling; the worker remains separate. Checksums, provenance and native verification receipts accompany the assets. PyPI publication remains deferred.