sonar log
83 commits, newest first
- 2026-09-24ea224f9sonar: test every imported package in one run
- 2026-09-246f4e288sonar: follow the collection rename from jfm to jm
- 2026-09-23a266c75sonar: import flow from the jfm collection
- 2026-09-23599c622sonar: import the debug allocator from the jfm collection
- 2026-09-23620f76bsonar: replace makefile with justfile
- 2026-09-200e96291main: charge the tree once, however it was read
- 2026-09-20262baddscan: move the snapshot to the package that uses it
- 2026-09-20a55548cmain: reach the tree through the fill that is filling it
- 2026-09-20cf8be8dwalk: name the entry point for what it reads
- 2026-09-205e1620fscan: widen file-private helpers to the package
- 2026-09-20e247b0cmain: run a reader from one place
- 2026-09-2060efb2cmain: let any reader fill a live scan
- 2026-09-20564dc3cscan: choose a reader from whether the volume opens
- 2026-09-20956dcddmain: parse the command line with core:flags
- 2026-09-20d8d1bb6main: say what TOP_N counts
- 2026-09-20f5d0117flow: stop the manage tests racing on one thread's arena
- 2026-09-20f929178style: run odinfmt over the repository
- 2026-09-2063847c8build: settle the formatting rules in the repository
- 2026-09-2017d958estyle: run odinfmt over the files this branch touched
- 2026-09-20c853f8bbuild: run the walk tests
- 2026-09-20f2ded2bwalk: test what a walk records
- 2026-09-2090ccc9bwalk: read directories with linux syscalls
- 2026-09-20b612a0awalk: read a directory behind a seam
- 2026-09-20f58720bscan: resolve a target on unix
- 2026-09-205eb2ae2scan: name the top of a target and the path below it
- 2026-09-20295a060scan: build paths with the host's separator
- 2026-09-20e226b37ntfs: test the unix volume against an image file
- 2026-09-20c8e5117ntfs: read volumes on unix
- 2026-09-205097ba0walk: drop the allocator nobody reads
- 2026-09-203e69628walk: drop the error a directory that will not open never raises
- 2026-09-2003b698fmain: refuse an option it does not understand
- 2026-09-2005918e2main: stop a parent chain that leaves the tree
- 2026-09-20183118dmain: stop emptying the tree under the thread reading it
- 2026-09-20a2e9d3fntfs: put extra names at a fixed slot so a replay repeats itself
- 2026-09-20b65b98bmain: free the table when projecting it fails
- 2026-09-20d9269bfwalk: free the directories a stopped scan never reached
- 2026-09-206319df6flow: hand back the work a stopped run never took
- 2026-09-208059c60scan: answer the elevation question on every platform
- 2026-09-1833cca93flow: let the manager judge a failed item
- 2026-09-182c30a33walk: free a directory path when the scan is cancelled
- 2026-09-1869a16c1walk: traverse with manage instead of rounds
- 2026-09-1846562aeflow: add the manager shape for work that discovers itself
- 2026-09-186517805scan: give the snapshot retry count a reason
- 2026-09-18d918c91main: move the graph work onto a builder thread
- 2026-09-18813560cscan: publish snapshots so a frame never waits on a build
- 2026-09-187bc10afmain: time each phase of a simulated frame
- 2026-09-18e47006amain: keep directory totals across frames instead of rebuilding them
- 2026-09-18caf098dntfs: let a scan be watched while it runs, and watch one
- 2026-09-18bbd06a1main: let the walker's width be set from the command line
- 2026-09-18a94743fmain: report from the tree rather than the table
- 2026-09-1869f47ecntfs: project the table into the shared tree
- 2026-09-1841cc602walk: add a portable directory reader
- 2026-09-189531748scan: add the tree every reader writes into
- 2026-09-186f5c729main: resolve the target before choosing a reader
- 2026-09-18e3bb973scan: add the seam between readers and the tree
- 2026-09-1885353cbntfs: pass each the same load the workers were sized with
- 2026-09-180c616a1main: expose the reader's knobs
- 2026-09-1813ee0a6ntfs: read the MFT in parallel
- 2026-09-18ddd3faantfs: let a volume be reopened for concurrent reads
- 2026-09-18ac798c6flow: add a package for this project's concurrency shapes
- 2026-09-1868d04bcntfs: skip dead record runs using $MFT's own bitmap
- 2026-09-18fbed86antfs: read the volume unbuffered, with a flag to compare
- 2026-09-18b351ce9main: report where scan time goes
- 2026-09-18385967emain: check the attributed sum against $Bitmap
- 2026-09-1858ce957ntfs: count allocated clusters from $Bitmap
- 2026-09-187890196ntfs: count files whose data lives inside their MFT record
- 2026-09-173aa3d09build: run debug and test targets under AddressSanitizer
- 2026-09-17a5103b3debug: poison guards and freed blocks for AddressSanitizer
- 2026-09-1615e4760ntfs: size decoded run lists to their length before returning
- 2026-09-169f8e834debug: replace lifetime allocator with a bug-finding debug allocator
- 2026-09-16babaf2fbuild: replace build.cmd with a Makefile writing to build/
- 2026-09-1691d48e5build: add build script with debug, release, test, and check targets
- 2026-09-162f6bf90main: print largest files and directories from the MFT
- 2026-09-16d66668cntfs: measure allocation from run lists instead of header sizes
- 2026-09-163bff5eentfs: add parser tests
- 2026-09-162a1da12ntfs: read $MFT from a Windows volume or image
- 2026-09-164c32ba4ntfs: build entry table from records
- 2026-09-16dc6fe10ntfs: parse FILE records and attributes
- 2026-09-16fb720cfntfs: decode run lists
- 2026-09-162ae0666ntfs: parse the boot sector
- 2026-09-1682bbccentfs: add package doc, error type, and file references
- 2026-09-16fe70feclifetime: add debug allocator with grouped leak report
- 2026-09-16c6d0c19build: ignore compiler outputs