| 2026-09-24 10:54 | sonar: test every imported package in one run | Jack Mordaunt | 1 | +3 | -6 |
| 2026-09-24 09:51 | sonar: follow the collection rename from jfm to jm | Jack Mordaunt | 4 | +7 | -7 |
| 2026-09-23 23:41 | sonar: import flow from the jfm collection | Jack Mordaunt | 7 | +4 | -710 |
| 2026-09-23 19:26 | sonar: import the debug allocator from the jfm collection | Jack Mordaunt | 3 | +6 | -1393 |
| 2026-09-23 17:59 | sonar: replace makefile with justfile | Jack Mordaunt | 2 | +72 | -54 |
| 2026-09-20 19:43 | main: charge the tree once, however it was read | Jack Mordaunt | 1 | +14 | -38 |
| 2026-09-20 19:27 | scan: move the snapshot to the package that uses it | Jack Mordaunt | 7 | +120 | -121 |
| 2026-09-20 19:18 | main: reach the tree through the fill that is filling it | Jack Mordaunt | 2 | +8 | -8 |
| 2026-09-20 19:06 | walk: name the entry point for what it reads | Jack Mordaunt | 4 | +34 | -32 |
| 2026-09-20 19:02 | scan: widen file-private helpers to the package | Jack Mordaunt | 4 | +14 | -14 |
| 2026-09-20 18:54 | main: run a reader from one place | Jack Mordaunt | 3 | +195 | -194 |
| 2026-09-20 18:11 | main: let any reader fill a live scan | Jack Mordaunt | 9 | +338 | -147 |
| 2026-09-20 17:47 | scan: choose a reader from whether the volume opens | Jack Mordaunt | 5 | +125 | -69 |
| 2026-09-20 17:26 | main: parse the command line with core:flags | Jack Mordaunt | 1 | +43 | -57 |
| 2026-09-20 17:22 | main: say what TOP_N counts | Jack Mordaunt | 1 | +2 | -1 |
| 2026-09-20 17:17 | flow: stop the manage tests racing on one thread's arena | Jack Mordaunt | 1 | +24 | -2 |
| 2026-09-20 17:15 | style: run odinfmt over the repository | Jack Mordaunt | 17 | +698 | -209 |
| 2026-09-20 17:11 | build: settle the formatting rules in the repository | Jack Mordaunt | 1 | +8 | -0 |
| 2026-09-20 17:09 | style: run odinfmt over the files this branch touched | Jack Mordaunt | 11 | +145 | -50 |
| 2026-09-20 12:49 | build: run the walk tests | Jack Mordaunt | 1 | +1 | -0 |
| 2026-09-20 12:49 | walk: test what a walk records | Jack Mordaunt | 2 | +224 | -0 |
| 2026-09-20 12:46 | walk: read directories with linux syscalls | Jack Mordaunt | 3 | +190 | -70 |
| 2026-09-20 12:45 | walk: read a directory behind a seam | Jack Mordaunt | 2 | +116 | -56 |
| 2026-09-20 12:08 | scan: resolve a target on unix | Jack Mordaunt | 4 | +229 | -16 |
| 2026-09-20 12:07 | scan: name the top of a target and the path below it | Jack Mordaunt | 2 | +28 | -5 |
| 2026-09-20 12:07 | scan: build paths with the host's separator | Jack Mordaunt | 2 | +15 | -6 |
| 2026-09-20 11:33 | ntfs: test the unix volume against an image file | Jack Mordaunt | 1 | +95 | -0 |
| 2026-09-20 11:32 | ntfs: read volumes on unix | Jack Mordaunt | 1 | +69 | -10 |
| 2026-09-20 11:29 | walk: drop the allocator nobody reads | Jack Mordaunt | 1 | +2 | -3 |
| 2026-09-20 11:26 | walk: drop the error a directory that will not open never raises | Jack Mordaunt | 1 | +0 | -1 |
| 2026-09-20 10:44 | main: refuse an option it does not understand | Jack Mordaunt | 1 | +27 | -13 |
| 2026-09-20 10:43 | main: stop a parent chain that leaves the tree | Jack Mordaunt | 1 | +5 | -2 |
| 2026-09-20 10:43 | main: stop emptying the tree under the thread reading it | Jack Mordaunt | 1 | +4 | -2 |
| 2026-09-20 10:43 | ntfs: put extra names at a fixed slot so a replay repeats itself | Jack Mordaunt | 1 | +10 | -10 |
| 2026-09-20 10:42 | main: free the table when projecting it fails | Jack Mordaunt | 1 | +5 | -3 |
| 2026-09-20 10:41 | walk: free the directories a stopped scan never reached | Jack Mordaunt | 1 | +10 | -1 |
| 2026-09-20 10:40 | flow: hand back the work a stopped run never took | Jack Mordaunt | 1 | +19 | -0 |
| 2026-09-20 10:39 | scan: answer the elevation question on every platform | Jack Mordaunt | 1 | +12 | -0 |
| 2026-09-18 20:57 | flow: let the manager judge a failed item | Jack Mordaunt | 3 | +90 | -34 |
| 2026-09-18 20:57 | walk: free a directory path when the scan is cancelled | Jack Mordaunt | 1 | +1 | -1 |
| 2026-09-18 17:21 | walk: traverse with manage instead of rounds | Jack Mordaunt | 1 | +31 | -44 |
| 2026-09-18 17:21 | flow: add the manager shape for work that discovers itself | Jack Mordaunt | 3 | +276 | -2 |
| 2026-09-18 17:04 | scan: give the snapshot retry count a reason | Jack Mordaunt | 2 | +57 | -8 |
| 2026-09-18 16:54 | main: move the graph work onto a builder thread | Jack Mordaunt | 3 | +180 | -108 |
| 2026-09-18 16:54 | scan: publish snapshots so a frame never waits on a build | Jack Mordaunt | 1 | +58 | -0 |
| 2026-09-18 16:31 | main: time each phase of a simulated frame | Jack Mordaunt | 1 | +10 | -4 |
| 2026-09-18 16:28 | main: keep directory totals across frames instead of rebuilding them | Jack Mordaunt | 7 | +235 | -35 |
| 2026-09-18 16:05 | ntfs: let a scan be watched while it runs, and watch one | Jack Mordaunt | 5 | +259 | -41 |
| 2026-09-18 15:55 | main: let the walker's width be set from the command line | Jack Mordaunt | 2 | +7 | -3 |
| 2026-09-18 15:47 | main: report from the tree rather than the table | Jack Mordaunt | 1 | +126 | -104 |
| 2026-09-18 15:47 | ntfs: project the table into the shared tree | Jack Mordaunt | 1 | +66 | -0 |
| 2026-09-18 15:47 | walk: add a portable directory reader | Jack Mordaunt | 2 | +200 | -1 |
| 2026-09-18 15:47 | scan: add the tree every reader writes into | Jack Mordaunt | 2 | +353 | -0 |
| 2026-09-18 15:32 | main: resolve the target before choosing a reader | Jack Mordaunt | 1 | +31 | -7 |
| 2026-09-18 15:32 | scan: add the seam between readers and the tree | Jack Mordaunt | 6 | +309 | -1 |
| 2026-09-18 14:38 | ntfs: pass each the same load the workers were sized with | Jack Mordaunt | 1 | +3 | -1 |
| 2026-09-18 14:34 | main: expose the reader's knobs | Jack Mordaunt | 1 | +17 | -6 |
| 2026-09-18 14:34 | ntfs: read the MFT in parallel | Jack Mordaunt | 3 | +284 | -82 |
| 2026-09-18 14:34 | ntfs: let a volume be reopened for concurrent reads | Jack Mordaunt | 2 | +35 | -7 |
| 2026-09-18 14:21 | flow: add a package for this project's concurrency shapes | Jack Mordaunt | 3 | +333 | -2 |
| 2026-09-18 13:19 | ntfs: skip dead record runs using $MFT's own bitmap | Jack Mordaunt | 4 | +259 | -47 |
| 2026-09-18 12:11 | ntfs: read the volume unbuffered, with a flag to compare | Jack Mordaunt | 4 | +42 | -14 |
| 2026-09-18 12:01 | main: report where scan time goes | Jack Mordaunt | 3 | +22 | -0 |
| 2026-09-18 11:53 | main: check the attributed sum against $Bitmap | Jack Mordaunt | 1 | +21 | -1 |
| 2026-09-18 11:53 | ntfs: count allocated clusters from $Bitmap | Jack Mordaunt | 4 | +145 | -0 |
| 2026-09-18 11:53 | ntfs: count files whose data lives inside their MFT record | Jack Mordaunt | 2 | +34 | -5 |
| 2026-09-17 11:31 | build: run debug and test targets under AddressSanitizer | Jack Mordaunt | 1 | +10 | -5 |
| 2026-09-17 11:31 | debug: poison guards and freed blocks for AddressSanitizer | Jack Mordaunt | 1 | +122 | -4 |
| 2026-09-17 01:39 | ntfs: size decoded run lists to their length before returning | Jack Mordaunt | 1 | +3 | -0 |
| 2026-09-17 01:37 | debug: replace lifetime allocator with a bug-finding debug allocator | Jack Mordaunt | 4 | +957 | -344 |
| 2026-09-17 01:22 | build: replace build.cmd with a Makefile writing to build/ | Jack Mordaunt | 2 | +45 | -24 |
| 2026-09-17 01:18 | build: add build script with debug, release, test, and check targets | Jack Mordaunt | 1 | +24 | -0 |
| 2026-09-17 01:18 | main: print largest files and directories from the MFT | Jack Mordaunt | 1 | +200 | -0 |
| 2026-09-17 01:18 | ntfs: measure allocation from run lists instead of header sizes | Jack Mordaunt | 5 | +109 | -34 |
| 2026-09-17 01:15 | ntfs: add parser tests | Jack Mordaunt | 1 | +444 | -0 |
| 2026-09-17 01:15 | ntfs: read $MFT from a Windows volume or image | Jack Mordaunt | 3 | +310 | -0 |
| 2026-09-17 01:15 | ntfs: build entry table from records | Jack Mordaunt | 1 | +264 | -0 |
| 2026-09-17 01:15 | ntfs: parse FILE records and attributes | Jack Mordaunt | 1 | +333 | -0 |
| 2026-09-17 01:15 | ntfs: decode run lists | Jack Mordaunt | 1 | +90 | -0 |
| 2026-09-17 01:15 | ntfs: parse the boot sector | Jack Mordaunt | 1 | +87 | -0 |
| 2026-09-17 01:15 | ntfs: add package doc, error type, and file references | Jack Mordaunt | 1 | +107 | -0 |
| 2026-09-17 01:15 | lifetime: add debug allocator with grouped leak report | Jack Mordaunt | 1 | +337 | -0 |
| 2026-09-17 01:15 | build: ignore compiler outputs | Jack Mordaunt | 1 | +8 | -0 |