Releases: NikkyWay/OpenDiskTree
Release list
OpenDiskTree 1.3.2
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
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
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
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
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_groupsandduplicate_memberstables 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
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
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
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
runningstate 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
getattrlistbulkbuffer 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
statcall 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
getattrlistbulkwith 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
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
runningstate 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
getattrlistbulkbuffer 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
statcall 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
getattrlistbulkwith 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
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
getattrlistbulkbuffer 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
statcall 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
getattrlistbulkwith 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.