# Changelog ## 1.0.2 — 2026-09-18 - Revisión exclusivamente documental del paquete: añadido `CHECKPOINT.md` con la evidencia operativa posterior de v1.0.2 en SmartOS real y enlazado desde README/VALIDATION. No cambia código, configuración, versión ni comportamiento. - Corregido el contrato de telemetría del daemon continuo: cada `event=sample` incluye compromiso virtual, ocupación física y pageout anónimo con flags inequívocos, y `event=delta` emite sus ventanas 5/15/60 s. - Eliminado `swap_used_pages` del runtime. Los auxiliares `swap_alloc_pages`, `swap_reserved_pages` y `swap_available_pages` quedan documentados como componentes virtuales de `SC_AINFO`, no como swap físico. - Centralizada la inserción de todas las historias antes de evaluar presión y registrar la muestra, evitando rutas distintas entre política y logging. - Añadidas pruebas del contrato continuo que exigen los tres pares muestra/flag, los nueve deltas 5/15/60 exactos y la ausencia del nombre ambiguo. - Ampliadas las pruebas de política: swap físico solo, pageout solo o ambas señales por encima de `lotsfree` son inertes. Sólo corroboran presión bajo `lotsfree`; nunca constituyen un trigger independiente. - Documentada la validación real de v1.0.1 bajo SMF: cadencia de 1 s, estado NORMAL correcto, `nscan=0` y deltas 5/15 s, junto con la carencia de las nuevas métricas en el logging continuo que motiva esta revisión. - Se mantienen `ACTION_MODE dry-run`, `--force-dry-run`, cero UUID autorizados e instancia SMF deshabilitada de fábrica. ## 1.0.1 — 2026-09-18 - Renombrada la antigua métrica ambigua `swap_used_pages` a `swap_committed_pages`, equivalente al `allocated + reserved` de `swap -s`. - Añadida `swap_physical_used_bytes`, equivalente a la ocupación de `swap -l` calculada con bloques de 512 bytes y agregada para todos los dispositivos. - Añadidos deltas 5/15/60 s para ambas métricas y para `anon_pageout_pages`. - La ocupación física creciente sólo corrobora presión si coincide con pageout anónimo creciente y `freemem < lotsfree`; nunca actúa como trigger único. - Añadidas pruebas de conversión con el fixture real `67024888 - 58931824 = 8093064` bloques = `4143648768` bytes, separación de métricas/logs y lógica diagnóstica sin trigger físico aislado. - Corregido el manifiesto SMF a `` tras el rechazo real de `Uncommitted` en SmartOS. - Conservados `ACTION_MODE dry-run`, `--force-dry-run`, instancia deshabilitada y ausencia de zonas `allow` por defecto. - Documentada la validación real del probe v1.0.0 y los puntos de v1.0.1 que aún deben comprobarse en SmartOS. ## 1.0.0 — 2026-09-18 - Primera entrega del guard con máquina de estados, atribución por zona/proceso, protecciones, límites de víctimas, dry-run forzado y servicio SMF.