Skip to content

Releases: NikkyWay/OpenDiskTree

OpenDiskTree 1.3.2

Choose a tag to compare

@github-actions github-actions released this 09 Aug 11:36
8a9723d

OpenDiskTree 1.3.2 makes repeated scans genuinely fast and keeps full scans responsive on large disks.

Highlights:

  • Incremental updates now apply changes directly to the current snapshot instead of copying millions of unchanged rows.
  • Unchanged directories are reused from a compact preloaded catalog.
  • FSEvents changes that arrive during a scan are queued for the next update instead of forcing another full traversal.
  • Large change journals automatically fall back to a clean Turbo scan when that is faster.
  • Scanner progress and finalization no longer wait for SwiftUI layout work.
  • On the development Mac, a 1.96-million-item full snapshot completed in 24.15 seconds in the production scanner harness; an unchanged incremental update completed in 1.66 seconds.

The downloadable app is unsigned. On first launch, macOS may require Control-click → Open. Full Disk Access is optional but required to inspect protected folders.

OpenDiskTree 1.2.3

Choose a tag to compare

@NikkyWay NikkyWay released this 08 Aug 21:13

OpenDiskTree 1.2.3

Small SQLite export hardening release.

  • Built-in and user rules with the same ID no longer make the relational rules export fail.
  • Includes cancellable/progress-aware exports, keyset pagination, lazy tree loading and incremental scans from 1.2.x.

Unsigned Apple Silicon ZIP and DMG builds with SHA-256 checksums are attached.

OpenDiskTree 1.2.2

Choose a tag to compare

@NikkyWay NikkyWay released this 08 Aug 21:10

OpenDiskTree 1.2.2

Export UX patch release.

  • Shows export progress in the toolbar.
  • Allows cancelling large exports safely; the destination remains untouched and temporary files are removed.
  • Includes batched JSON writes, keyset pagination and the relational SQLite export from 1.2.x.

Unsigned Apple Silicon ZIP and DMG builds with SHA-256 checksums are attached.

OpenDiskTree 1.2.1

Choose a tag to compare

@NikkyWay NikkyWay released this 08 Aug 21:07

OpenDiskTree 1.2.1

Patch release focused on export throughput.

  • JSON export now batches each page into a single filesystem write.
  • RFC 3339 formatting is cached instead of constructing a formatter for every row.
  • Includes the 1.2.0 lazy tree, keyset pagination and relational SQLite export changes.

Unsigned Apple Silicon ZIP and DMG builds with SHA-256 checksums are attached.

OpenDiskTree 1.2.0

Choose a tag to compare

@NikkyWay NikkyWay released this 08 Aug 21:04

OpenDiskTree 1.2.0

Performance and usability release.

  • Scanner pause/cancel checks are sampled instead of performing an actor hop for every metadata row.
  • JSON, CSV and SQLite exports use keyset pagination for complete and filtered snapshots.
  • SQLite exports now contain relational scans, volumes, items, scan_errors, rules, duplicate_groups and duplicate_members tables with indexes and foreign keys.
  • Folder outline descendants are loaded only when a directory is expanded.
  • Added localized fast-update/full-rescan actions and an integrity test for duplicate exports.

Unsigned Apple Silicon ZIP and DMG builds with SHA-256 checksums are attached.

OpenDiskTree 1.1.1

Choose a tag to compare

@NikkyWay NikkyWay released this 07 Aug 13:53

OpenDiskTree 1.1.1

Patch release for the incremental index.

  • Duplicate-group IDs are no longer carried between snapshots when unchanged subtrees are reused.
  • Includes the complete 1.1.0 incremental scan feature set.
  • Unsigned Apple Silicon ZIP and DMG builds plus SHA-256 checksums.

OpenDiskTree 1.1.0

Choose a tag to compare

@NikkyWay NikkyWay released this 07 Aug 13:51

OpenDiskTree 1.1.0

This release adds a conservative incremental metadata index for repeat scans.

  • Reuses unchanged directory subtrees from SQLite with stable item IDs.
  • Uses the public macOS FSEvents journal; no private APFS parser.
  • Adds Fast update current scan and Full rescan from scratch actions.
  • Falls back to a full scan after restart, dropped events, hard-link subtrees or changes during a scan.
  • Includes unsigned Apple Silicon ZIP and DMG builds plus SHA-256 checksums.

macOS 14+ on Apple Silicon. On first launch, Control-click the app and choose Open if Gatekeeper asks.

OpenDiskTree 1.0.10

Choose a tag to compare

@NikkyWay NikkyWay released this 07 Aug 13:21

Changelog

All notable changes to OpenDiskTree are recorded here.

1.0.10 — 2026-08-07

  • Add a persistent New scan menu to the main toolbar so starting a scan does not depend on the sidebar being visible.
  • Add a Largest files view that lists the biggest files across the current snapshot without drilling through every folder.
  • Add a visible double-click hint and a dedicated breadcrumb title for the largest-files view.

1.0.9 — 2026-08-07

  • Add a composite parent/size index so opening a large snapshot does not sort the entire items table to show the root.

1.0.8 — 2026-08-07

  • Do not reopen a scan record left in running state after an interrupted launch; keep the latest usable snapshot selected.

1.0.7 — 2026-08-07

  • Keep startup responsive by loading the root outline lazily instead of decoding thousands of historical folders at once.

1.0.6 — 2026-08-07

  • Add a fast overview pass that shows depth-limited folder totals while the exact metadata scan runs in the background.
  • Mark preliminary totals and estimates explicitly; they are never mixed into the exact SQLite snapshot.
  • Cancel the quick pass together with the exact scan and keep the existing exact results authoritative.

1.0.5 — 2026-08-07

  • Keep one SQLite transaction open for the active scan; cancellation and normal completion still finalize a consistent snapshot.
  • Bind item fields directly instead of allocating a 28-value temporary array for every file, and store bulk file timestamps numerically in SQLite while keeping RFC 3339 export output.
  • Increase the native getattrlistbulk buffer to 256 KiB for wide directories such as dependency trees.

1.0.4 — 2026-08-07

  • Defer path, status and duplicate-candidate indexes until a scan finishes, avoiding three random SQLite index writes per discovered item.
  • Replace the depth-by-depth correlated folder aggregation with an indexed bottom-up rollup, so finalization scales with the number of folders instead of rescanning the full table for every depth.
  • Keep the visible progress counter moving independently of SQLite batch commits and label the final index/aggregation phase as finalizing.

1.0.3 — 2026-08-07

  • Removed repeated root-table sorting from the scan hot path; live rows refresh at a controlled cadence while every metadata batch is still persisted immediately.
  • Increased scanner transaction sizes and cached each entry's extension during native metadata conversion.
  • A full-disk scan now spends its time on filesystem enumeration instead of redrawing the same SQLite result hundreds of times.
  • Selected folders now persist macOS security-scoped bookmarks and keep access open for the scan, so reopening the same folder does not ask for permission again.

1.0.2 — 2026-07-19

  • Read names, sizes, timestamps, file identity and link counts in the same native metadata batch instead of issuing a separate stat call for every item.
  • Stop full-disk scans at nested mounted volumes, including iOS Simulator runtimes, while keeping those mount points visible in results.
  • Increased SQLite insert batches and removed per-item URL construction from the scanner hot path.
  • Cancelled snapshots now retain their live byte totals and are identified as partial after relaunch.
  • Reworked the main window so the table and treemap use all available height, live scans do not show stale directory data, and in-progress folder sizes are clearly marked as calculating.
  • Added visible elapsed time, item rate, current path, pause and stop controls during scans.
  • Rebuilt the filter popover with unclipped labels, grouped controls, active-filter count and a scrollable fixed-size layout.
  • Added a prominent latest-DMG download button to the README and stable release artifact names for permanent download links.

1.0.1 — 2026-07-19

  • Added an Instruments Points of Interest interval around disk scans.
  • Added a bounded, reproducible 1–2 million-row SQLite performance harness; one million rows complete in 15.2 seconds on the development Mac.

1.0.0 — 2026-07-19

  • Native Apple Silicon disk scanner using getattrlistbulk with a portable POSIX fallback.
  • Directory outline, sortable table, treemap, search and metadata filters.
  • Explainable safety labels, guarded Trash actions and Finder integration.
  • Staged duplicate detection, two-snapshot history and growth comparison.
  • Full JSON, CSV and SQLite exports plus a compact privacy-aware AI report.
  • Russian and English localization, local rule editor and JSON rule transfer.

OpenDiskTree 1.0.9

Choose a tag to compare

@NikkyWay NikkyWay released this 07 Aug 12:47

Changelog

All notable changes to OpenDiskTree are recorded here.

1.0.9 — 2026-08-07

  • Add a composite parent/size index so opening a large snapshot does not sort the entire items table to show the root.

1.0.8 — 2026-08-07

  • Do not reopen a scan record left in running state after an interrupted launch; keep the latest usable snapshot selected.

1.0.7 — 2026-08-07

  • Keep startup responsive by loading the root outline lazily instead of decoding thousands of historical folders at once.

1.0.6 — 2026-08-07

  • Add a fast overview pass that shows depth-limited folder totals while the exact metadata scan runs in the background.
  • Mark preliminary totals and estimates explicitly; they are never mixed into the exact SQLite snapshot.
  • Cancel the quick pass together with the exact scan and keep the existing exact results authoritative.

1.0.5 — 2026-08-07

  • Keep one SQLite transaction open for the active scan; cancellation and normal completion still finalize a consistent snapshot.
  • Bind item fields directly instead of allocating a 28-value temporary array for every file, and store bulk file timestamps numerically in SQLite while keeping RFC 3339 export output.
  • Increase the native getattrlistbulk buffer to 256 KiB for wide directories such as dependency trees.

1.0.4 — 2026-08-07

  • Defer path, status and duplicate-candidate indexes until a scan finishes, avoiding three random SQLite index writes per discovered item.
  • Replace the depth-by-depth correlated folder aggregation with an indexed bottom-up rollup, so finalization scales with the number of folders instead of rescanning the full table for every depth.
  • Keep the visible progress counter moving independently of SQLite batch commits and label the final index/aggregation phase as finalizing.

1.0.3 — 2026-08-07

  • Removed repeated root-table sorting from the scan hot path; live rows refresh at a controlled cadence while every metadata batch is still persisted immediately.
  • Increased scanner transaction sizes and cached each entry's extension during native metadata conversion.
  • A full-disk scan now spends its time on filesystem enumeration instead of redrawing the same SQLite result hundreds of times.
  • Selected folders now persist macOS security-scoped bookmarks and keep access open for the scan, so reopening the same folder does not ask for permission again.

1.0.2 — 2026-07-19

  • Read names, sizes, timestamps, file identity and link counts in the same native metadata batch instead of issuing a separate stat call for every item.
  • Stop full-disk scans at nested mounted volumes, including iOS Simulator runtimes, while keeping those mount points visible in results.
  • Increased SQLite insert batches and removed per-item URL construction from the scanner hot path.
  • Cancelled snapshots now retain their live byte totals and are identified as partial after relaunch.
  • Reworked the main window so the table and treemap use all available height, live scans do not show stale directory data, and in-progress folder sizes are clearly marked as calculating.
  • Added visible elapsed time, item rate, current path, pause and stop controls during scans.
  • Rebuilt the filter popover with unclipped labels, grouped controls, active-filter count and a scrollable fixed-size layout.
  • Added a prominent latest-DMG download button to the README and stable release artifact names for permanent download links.

1.0.1 — 2026-07-19

  • Added an Instruments Points of Interest interval around disk scans.
  • Added a bounded, reproducible 1–2 million-row SQLite performance harness; one million rows complete in 15.2 seconds on the development Mac.

1.0.0 — 2026-07-19

  • Native Apple Silicon disk scanner using getattrlistbulk with a portable POSIX fallback.
  • Directory outline, sortable table, treemap, search and metadata filters.
  • Explainable safety labels, guarded Trash actions and Finder integration.
  • Staged duplicate detection, two-snapshot history and growth comparison.
  • Full JSON, CSV and SQLite exports plus a compact privacy-aware AI report.
  • Russian and English localization, local rule editor and JSON rule transfer.

OpenDiskTree 1.0.7

Choose a tag to compare

@NikkyWay NikkyWay released this 07 Aug 12:42

Changelog

All notable changes to OpenDiskTree are recorded here.

1.0.7 — 2026-08-07

  • Keep startup responsive by loading the root outline lazily instead of decoding thousands of historical folders at once.

1.0.6 — 2026-08-07

  • Add a fast overview pass that shows depth-limited folder totals while the exact metadata scan runs in the background.
  • Mark preliminary totals and estimates explicitly; they are never mixed into the exact SQLite snapshot.
  • Cancel the quick pass together with the exact scan and keep the existing exact results authoritative.

1.0.5 — 2026-08-07

  • Keep one SQLite transaction open for the active scan; cancellation and normal completion still finalize a consistent snapshot.
  • Bind item fields directly instead of allocating a 28-value temporary array for every file, and store bulk file timestamps numerically in SQLite while keeping RFC 3339 export output.
  • Increase the native getattrlistbulk buffer to 256 KiB for wide directories such as dependency trees.

1.0.4 — 2026-08-07

  • Defer path, status and duplicate-candidate indexes until a scan finishes, avoiding three random SQLite index writes per discovered item.
  • Replace the depth-by-depth correlated folder aggregation with an indexed bottom-up rollup, so finalization scales with the number of folders instead of rescanning the full table for every depth.
  • Keep the visible progress counter moving independently of SQLite batch commits and label the final index/aggregation phase as finalizing.

1.0.3 — 2026-08-07

  • Removed repeated root-table sorting from the scan hot path; live rows refresh at a controlled cadence while every metadata batch is still persisted immediately.
  • Increased scanner transaction sizes and cached each entry's extension during native metadata conversion.
  • A full-disk scan now spends its time on filesystem enumeration instead of redrawing the same SQLite result hundreds of times.
  • Selected folders now persist macOS security-scoped bookmarks and keep access open for the scan, so reopening the same folder does not ask for permission again.

1.0.2 — 2026-07-19

  • Read names, sizes, timestamps, file identity and link counts in the same native metadata batch instead of issuing a separate stat call for every item.
  • Stop full-disk scans at nested mounted volumes, including iOS Simulator runtimes, while keeping those mount points visible in results.
  • Increased SQLite insert batches and removed per-item URL construction from the scanner hot path.
  • Cancelled snapshots now retain their live byte totals and are identified as partial after relaunch.
  • Reworked the main window so the table and treemap use all available height, live scans do not show stale directory data, and in-progress folder sizes are clearly marked as calculating.
  • Added visible elapsed time, item rate, current path, pause and stop controls during scans.
  • Rebuilt the filter popover with unclipped labels, grouped controls, active-filter count and a scrollable fixed-size layout.
  • Added a prominent latest-DMG download button to the README and stable release artifact names for permanent download links.

1.0.1 — 2026-07-19

  • Added an Instruments Points of Interest interval around disk scans.
  • Added a bounded, reproducible 1–2 million-row SQLite performance harness; one million rows complete in 15.2 seconds on the development Mac.

1.0.0 — 2026-07-19

  • Native Apple Silicon disk scanner using getattrlistbulk with a portable POSIX fallback.
  • Directory outline, sortable table, treemap, search and metadata filters.
  • Explainable safety labels, guarded Trash actions and Finder integration.
  • Staged duplicate detection, two-snapshot history and growth comparison.
  • Full JSON, CSV and SQLite exports plus a compact privacy-aware AI report.
  • Russian and English localization, local rule editor and JSON rule transfer.