mordaunt.dev/code

code / estoile / log

estoile log

142 commits, newest first

  1. 2026-10-092fe149cview: draw sonar's mark in the toolbar
  2. 2026-10-098ebbaaaview: float action notices as toasts in the lower left
  3. 2026-10-0911f2796app: record each path a request changes in the audit trail
  4. 2026-10-09bd84364history: keep an audit trail of changes made on disk
  5. 2026-10-09816040ascan: merge the 24-byte node into the batched macOS walker
  6. 2026-10-09ebef4d8walk: add a gentle pace that reads with at most 4 threads
  7. 2026-10-09365d326walk: count only the CPUs a cgroup quota allows
  8. 2026-10-0995efcb0walk: fit the number of readers to the cores and the medium
  9. 2026-10-093a185d8scan: learn whether a volume is on flash or a spinning disk
  10. 2026-10-095e2d809walk: record macOS mount points without walking them
  11. 2026-10-09003f725walk: charge a hard-linked file once
  12. 2026-10-09ad210d1walk: read macOS directories in batches with getattrlistbulk
  13. 2026-10-089024e07survey: keep totals and child lists by directory, not by node
  14. 2026-10-08dc779f5scan: name a node by a handle into a pool, not a string
  15. 2026-10-0856aa93entfs: drop an MFT entry's logical size, which nothing reads now
  16. 2026-10-08a696f24scan: drop a node's logical size, which nothing reads
  17. 2026-10-08e8ace79just: run the hot recipe's watch loop with BSD stat and date
  18. 2026-10-08532d95creclaim: offer and empty the Finder's Trash on macOS
  19. 2026-10-08f596faaapp: run the window's tests where the temp directory is not /tmp
  20. 2026-10-08ccd2212scan: find a directory's mount on macOS through statfs
  21. 2026-10-08fb6b1dahistory: keep the store under Application Support on macOS
  22. 2026-10-08815da97files: move to the Trash, rename and measure space on macOS
  23. 2026-10-08a8e3602jm: move to main, with the expand and collapse merge (9d00e63)
  24. 2026-10-084c1bb3aview: open a folder of the chart's tree on a reader's expand
  25. 2026-10-084c82ebdview: say each chart to a screen reader a layer at a time
  26. 2026-10-08320c334walk: ask about a directory's entries in inode order
  27. 2026-10-089b91dc1history: keep each scan, and colour the next by what changed since
  28. 2026-10-08ef70869reclaim: offer what rebuilds itself, and delete it for good
  29. 2026-10-08bba5d42view: show what was there until a directory just opened is answered
  30. 2026-10-089a3b310view: light a kind from its chip, and colour only the kinds turned on
  31. 2026-10-085a10c15view: keep the legend's row in either colouring, and name each kind in a word
  32. 2026-10-087cc0249view: lay out every window size from the smallest up without a clash
  33. 2026-10-0844bdb13view: show the lit entry in every chart, and light it from either list
  34. 2026-10-089601477view: colour the kinds with seven colours that can be told apart
  35. 2026-10-0815c4af0view: an icicle view, and colouring by type as well as by folder
  36. 2026-10-08e3da162view: scroll the location bar a full step a notch, under its border
  37. 2026-10-08b746977app: wait for the listing in tests that use its rows
  38. 2026-10-0894efa6agui: hot-reload the view with just hot
  39. 2026-10-08c52bdd3view: light an entry's arc or box while its contents row is hovered
  40. 2026-10-08225b704view: draw the directory as a treemap, picked by a mode switch
  41. 2026-10-0860708b5view: one location bar for where the window is and what to scan
  42. 2026-10-08332d2dfview: say what is hovered in a block of fixed height above the disc
  43. 2026-10-086eaee5eview: keep the sunburst in the middle of its room both ways
  44. 2026-10-08ba6999eview: share the window between grips, folding the side column away
  45. 2026-10-083965880view: hide the side panels from the panel, into a rail
  46. 2026-10-08e23cb17view: hide the side panels to give the sunburst the window
  47. 2026-10-08a6b7d62view: set the window's name larger, between Primer's title steps
  48. 2026-10-08cfa8663view: ease the sunburst's arcs toward each new layout
  49. 2026-10-08f9c70e8view: clip and fade list names that run longer than their cell
  50. 2026-10-08f817950gui: right-click menus on the contents and largest files rows
  51. 2026-10-08069fb75gui: show the disk's free space beside what the scan found
  52. 2026-10-0887172f4gui: free Locate's path with the allocator that made it
  53. 2026-10-08c4d8b1egui: walk the history with the mouse and act on entries from a menu
  54. 2026-10-08565bfc3survey: forget a node removed from the disk after it was read
  55. 2026-10-084ce16a4view: put the side panels' scroll bars at the window's edge
  56. 2026-10-07f281e3cgui: draw the open directory as a sunburst
  57. 2026-10-0720bd0ddgui: show a scan in a Primer window as it streams in
  58. 2026-10-0740c11b8sonar: pin jm as a submodule and build the window
  59. 2026-10-0781208d5survey: move the scan driver and totals out of main
  60. 2026-09-24ea224f9sonar: test every imported package in one run
  61. 2026-09-246f4e288sonar: follow the collection rename from jfm to jm
  62. 2026-09-23a266c75sonar: import flow from the jfm collection
  63. 2026-09-23599c622sonar: import the debug allocator from the jfm collection
  64. 2026-09-23620f76bsonar: replace makefile with justfile
  65. 2026-09-200e96291main: charge the tree once, however it was read
  66. 2026-09-20262baddscan: move the snapshot to the package that uses it
  67. 2026-09-20a55548cmain: reach the tree through the fill that is filling it
  68. 2026-09-20cf8be8dwalk: name the entry point for what it reads
  69. 2026-09-205e1620fscan: widen file-private helpers to the package
  70. 2026-09-20e247b0cmain: run a reader from one place
  71. 2026-09-2060efb2cmain: let any reader fill a live scan
  72. 2026-09-20564dc3cscan: choose a reader from whether the volume opens
  73. 2026-09-20956dcddmain: parse the command line with core:flags
  74. 2026-09-20d8d1bb6main: say what TOP_N counts
  75. 2026-09-20f5d0117flow: stop the manage tests racing on one thread's arena
  76. 2026-09-20f929178style: run odinfmt over the repository
  77. 2026-09-2063847c8build: settle the formatting rules in the repository
  78. 2026-09-2017d958estyle: run odinfmt over the files this branch touched
  79. 2026-09-20c853f8bbuild: run the walk tests
  80. 2026-09-20f2ded2bwalk: test what a walk records
  81. 2026-09-2090ccc9bwalk: read directories with linux syscalls
  82. 2026-09-20b612a0awalk: read a directory behind a seam
  83. 2026-09-20f58720bscan: resolve a target on unix
  84. 2026-09-205eb2ae2scan: name the top of a target and the path below it
  85. 2026-09-20295a060scan: build paths with the host's separator
  86. 2026-09-20e226b37ntfs: test the unix volume against an image file
  87. 2026-09-20c8e5117ntfs: read volumes on unix
  88. 2026-09-205097ba0walk: drop the allocator nobody reads
  89. 2026-09-203e69628walk: drop the error a directory that will not open never raises
  90. 2026-09-2003b698fmain: refuse an option it does not understand
  91. 2026-09-2005918e2main: stop a parent chain that leaves the tree
  92. 2026-09-20183118dmain: stop emptying the tree under the thread reading it
  93. 2026-09-20a2e9d3fntfs: put extra names at a fixed slot so a replay repeats itself
  94. 2026-09-20b65b98bmain: free the table when projecting it fails
  95. 2026-09-20d9269bfwalk: free the directories a stopped scan never reached
  96. 2026-09-206319df6flow: hand back the work a stopped run never took
  97. 2026-09-208059c60scan: answer the elevation question on every platform
  98. 2026-09-1833cca93flow: let the manager judge a failed item
  99. 2026-09-182c30a33walk: free a directory path when the scan is cancelled
  100. 2026-09-1869a16c1walk: traverse with manage instead of rounds
  101. 2026-09-1846562aeflow: add the manager shape for work that discovers itself
  102. 2026-09-186517805scan: give the snapshot retry count a reason
  103. 2026-09-18d918c91main: move the graph work onto a builder thread
  104. 2026-09-18813560cscan: publish snapshots so a frame never waits on a build
  105. 2026-09-187bc10afmain: time each phase of a simulated frame
  106. 2026-09-18e47006amain: keep directory totals across frames instead of rebuilding them
  107. 2026-09-18caf098dntfs: let a scan be watched while it runs, and watch one
  108. 2026-09-18bbd06a1main: let the walker's width be set from the command line
  109. 2026-09-18a94743fmain: report from the tree rather than the table
  110. 2026-09-1869f47ecntfs: project the table into the shared tree
  111. 2026-09-1841cc602walk: add a portable directory reader
  112. 2026-09-189531748scan: add the tree every reader writes into
  113. 2026-09-186f5c729main: resolve the target before choosing a reader
  114. 2026-09-18e3bb973scan: add the seam between readers and the tree
  115. 2026-09-1885353cbntfs: pass each the same load the workers were sized with
  116. 2026-09-180c616a1main: expose the reader's knobs
  117. 2026-09-1813ee0a6ntfs: read the MFT in parallel
  118. 2026-09-18ddd3faantfs: let a volume be reopened for concurrent reads
  119. 2026-09-18ac798c6flow: add a package for this project's concurrency shapes
  120. 2026-09-1868d04bcntfs: skip dead record runs using $MFT's own bitmap
  121. 2026-09-18fbed86antfs: read the volume unbuffered, with a flag to compare
  122. 2026-09-18b351ce9main: report where scan time goes
  123. 2026-09-18385967emain: check the attributed sum against $Bitmap
  124. 2026-09-1858ce957ntfs: count allocated clusters from $Bitmap
  125. 2026-09-187890196ntfs: count files whose data lives inside their MFT record
  126. 2026-09-173aa3d09build: run debug and test targets under AddressSanitizer
  127. 2026-09-17a5103b3debug: poison guards and freed blocks for AddressSanitizer
  128. 2026-09-1615e4760ntfs: size decoded run lists to their length before returning
  129. 2026-09-169f8e834debug: replace lifetime allocator with a bug-finding debug allocator
  130. 2026-09-16babaf2fbuild: replace build.cmd with a Makefile writing to build/
  131. 2026-09-1691d48e5build: add build script with debug, release, test, and check targets
  132. 2026-09-162f6bf90main: print largest files and directories from the MFT
  133. 2026-09-16d66668cntfs: measure allocation from run lists instead of header sizes
  134. 2026-09-163bff5eentfs: add parser tests
  135. 2026-09-162a1da12ntfs: read $MFT from a Windows volume or image
  136. 2026-09-164c32ba4ntfs: build entry table from records
  137. 2026-09-16dc6fe10ntfs: parse FILE records and attributes
  138. 2026-09-16fb720cfntfs: decode run lists
  139. 2026-09-162ae0666ntfs: parse the boot sector
  140. 2026-09-1682bbccentfs: add package doc, error type, and file references
  141. 2026-09-16fe70feclifetime: add debug allocator with grouped leak report
  142. 2026-09-16c6d0c19build: ignore compiler outputs