Перейти к содержанию

Notes

Ограничения и приватность

Что важно знать

Ограничение Причина
Размер снимков APFS неизвестен Система не отдаёт его через tmutil; purgeable — оценка, а не гарантированный объём.
Клоны APFS считаются как обычные файлы Публичный API определяет полные клоны и private size, но не карту частично общих extents. Каждый клон учитывается полностью; удаление клона может не освободить место. См. исследование.
Файлы меньше 64 КБ не видны по отдельности Они собраны в строку «Мелкие файлы» внутри папки. Суммы точные, детализация — нет.
Даты — с точностью до суток В дереве хранятся номера дней, а не время: этого достаточно для фильтров и правил очистки, а память экономится.
Пакеты .app — один объект в рейтингах Иначе сотни фреймворков и ресурсов засоряли бы «Крупнейшие» и могли быть удалены по отдельности.
Отмена удаления живёт до перезапуска Стек хранит последние 10 операций; если исходный путь занят, файл не восстанавливается и остаётся в Корзине.
Коллекция сбрасывается при новом скане Индексы узлов относятся к текущему дереву; после перескана их нельзя безопасно сопоставить.
История сравнивает только верхний уровень Для больших изменений внутри одной папки нужен повторный скан; история хранит 30 записей.
Жёсткие ссылки учитываются один раз Вторая ссылка показывает 0 Б; удаление одной ссылки может не освободить блоки до удаления последней.
Дубликаты ищутся с порогом размера По умолчанию 1 МБ; файлы меньше порога не хешируются. Содержимое читается локально и не сохраняется.
Дубликаты и жёсткие ссылки — разные вещи Ссылки исключены из групп, потому что это те же блоки, а не копии.
Похожие изображения — эвристика Vision сравнивает признаки, а не пиксели; порог и до 600 кандидатов за запуск влияют на выдачу.
Нет поиска дубликатов Запланирован в roadmap.
Английская локализация неполная Основные экраны и настройки переведены; длинные пояснения и экспорт отчёта пока на русском.
VoiceOver на карте — верхний уровень Canvas отдаёт список верхнеуровневых ячеек; вложенные детали доступны в таблице.
Заброшенные файлы — по mtime Дата доступа не используется: macOS обновляет или отключает её; рекомендации строятся на дате изменения.
Сравнение бюджета с историей — верхний уровень История хранит размеры только папок корня; для вложенных папок дельта не показывается.
Параллельный обход только верхнего уровня Вложенные папки внутри поддерева обходятся последовательно; на сетевых томах выигрыш меньше.
Кэш дерева — один корень Смена папки перезаписывает кэш; при изменениях выполняется полный скан, а не частичное обновление поддеревьев.
Локальная подпись ad-hoc Релизный workflow подписывает Developer ID и нотаризует при наличии секретов; локальная сборка остаётся ad-hoc.

Почему размеры иногда отличаются от Finder

DiskScope показывает allocated size — сколько места файл реально занимает на диске. Finder в инспекторе может показывать логический размер. Для разреженных файлов, архивов, клонов APFS и жёстких ссылок эти числа расходятся. Для сравнения с du используйте allocated size — он совпадает.

Почему нужен «Полный доступ к диску»

macOS TCC скрывает содержимое защищённых каталогов: почты, сообщений, фототеки, домашних папок других пользователей. Без разрешения сканирование продолжается, но эти объекты пропускаются, а в интерфейсе появляется баннер с их количеством.

Порядок выдачи разрешения — в разделе Как пользоваться.

Приватность и безопасность

  • Приложение не содержит сетевого кода и не отправляет телеметрию.
  • Оно читает только метаданные файлов (имена, размеры, типы).
  • Единственные записи: настройка последней папки в UserDefaults и перемещение выбранных объектов в Корзину по явному подтверждению.
  • Нет фоновых демонов, автозапуска и повышенных привилегий.

Лицензия

Проект распространяется по лицензии MIT. См. LICENSE в корне репозитория.

Что дальше

Планы, приоритеты и статус задач — в ROADMAP.md и в issues репозитория.