Better Resource Monitor añade una métrica de almacenamiento

El PR #101 añade la métrica que le faltaba a Better Resource Monitor: el almacenamiento.

La barra ya mostraba CPU, memoria, GPU y red. Almacenamiento añade una restricción de privacidad: calcular uso sin inspeccionar archivos.

Por eso, esta implementación no escanea directorios, no lee nombres de archivos ni inspecciona su contenido. Tampoco enumera discos externos ni recopila detalles por volumen. Solo consulta al sistema operativo la capacidad total y disponible del sistema de archivos de $HOME, y muestra el porcentaje utilizado en la barra de menús.

Cómo funciona

El sampler solo consulta capacidad total y disponible. En macOS, usa CFURLCopyResourcePropertiesForKeys con las claves de capacidad total y disponible. En Linux, recurre a statvfs. Luego calcula (total - available) / total * 100 y acota el resultado al rango 0..100.

No requiere un helper con permisos de root. No incluye analíticas ni telemetría. Tampoco usa APIs privadas que puedan dar problemas al compilar para la App Store.

Requisitos de la App Store

Apple exige incluir manifiestos de privacidad (privacy manifests) para ciertas categorías de APIs. El espacio en disco es una de ellas. Por eso, el PR empaqueta el archivo PrivacyInfo.xcprivacy y declara NSPrivacyAccessedAPICategoryDiskSpace con el motivo 85F4.1.

CI valida que la app empaquetada incluya el manifiesto de privacidad y el motivo de uso antes de subirla.

Cambios en el PR

El almacenamiento tiene su propio icono de disco en el renderer de la barra y una opción localizada como “Show Storage” en los ajustes. A los usuarios con preferencias guardadas no se les activa por defecto, pero las instalaciones nuevas sí pueden mostrarlo desde el principio.

Los tests cubren las partes más propensas a romperse: el cálculo del porcentaje, la migración de ajustes, el ancho de renderizado, las alertas, las traducciones y el orden de los iconos.

En el momento de publicación, el cambio apuntaba a la versión 1.1.5 e incluía checks de Rust y Cloudflare Pages.

PR #101 · Código fuente

Fecha de publicación:

Conectemos

Estoy en GitHub y LinkedIn