Especificación padre: #30
Ticket del desglose Project Brain Lite 0.3.1: 04/20.
Entrega
Validar la identidad del destino y de su ruta administrada antes del commit de sync.
Bloqueado por
Acceptance criteria
- Reemplazar el destino por otro inode, aunque contenga los mismos bytes, aborta.
- Convertir el destino en symlink o cambiar su tipo aborta.
- Cambiar la identidad del directorio padre aborta.
- No se sigue el symlink ni se escribe fuera de la raíz administrada.
- El reemplazo competidor permanece intacto y no quedan temporales.
Tests requeridos
- Reemplazo de inode con bytes iguales.
- Sustitución por symlink y cambio de tipo.
- Reemplazo de la identidad del directorio padre.
- Interleaving mediante el checkpoint privado del ticket 03.
- Skips de plataforma sólo cuando el filesystem no soporte realmente el caso.
Non-goal
no introducir nuevos archivos canónicos, comandos, dependencias,
servicios ni capacidades fuera del alcance 0.3.1.
Regression-first
el fallo debe estar cubierto por una prueba que falle antes
del cambio de producción.
Guardas de compatibilidad
- Node.js 20+ y cero dependencias npm.
- Comportamiento determinista, file-first y local-first.
- API pública, rutas, tres comandos y cinco archivos canónicos preservados.
doctor permanece read-only e init permanece no destructivo.
- No se ejecutan comandos detectados ni se utiliza la red.
Especificación padre: #30
Ticket del desglose Project Brain Lite 0.3.1: 04/20.
Entrega
Validar la identidad del destino y de su ruta administrada antes del commit de
sync.Bloqueado por
Acceptance criteria
Tests requeridos
Non-goal
no introducir nuevos archivos canónicos, comandos, dependencias,
servicios ni capacidades fuera del alcance 0.3.1.
Regression-first
el fallo debe estar cubierto por una prueba que falle antes
del cambio de producción.
Guardas de compatibilidad
doctorpermanece read-only einitpermanece no destructivo.