próxima
en el repoUn >> ya no inventa un archivo, el worktree manda, NODD no se apaga solo, y podés trabajar en otro repo.
- nuevoPodés declarar en qué carpeta ocurre el trabajo, cuando no es el repo de la sesión. Si la sesión corre en un repo y el trabajo es en otro — un repo anidado, un proyecto hermano — NODD sólo conocía la raíz de la sesión: los archivos declarados y el runner se anclaban ahí,
evidencesólo aceptaba el runner desde ese directorio, y un runner con su propiocdse rechazaba sin más salida que un override. Ahoranodd_declareaceptarooty todo se ancla ahí. Se fija una vez, igual que el runner: una raíz elegida después del trabajo es una raíz elegida para que cierre. - nuevoSi declarás archivos fuera de la raíz de la sesión, NODD te lo dice. No los rechaza — una ruta absoluta afuera funciona bien cuando el runner corre desde el directorio de la sesión — pero te avisa en la respuesta y te nombra el remedy, que es pasar
root. Preferimos avisar antes que adivinar la raíz por la lista de archivos: si la lista viene incompleta, adivina mal. - arregloEl modelo ya no puede escribir la config que decide si NODD lo mira. Con una declaración hecha, todos los gates dejaban pasar una escritura a
~/.pi/nodd.json: alcanzaba un redirect —echo '{"gates":{"evidence":{"enabled":false}}}' > ~/.pi/nodd.json— para apagar el gate de evidencia y tildar la tarea siguiente sin haber corrido nada.$HOMEqueda fuera de las raíces que conoce el freno de comandos irreversibles, así que nadie lo veía. Ahora lo frena el kernel, antes de todos los gates, tanto para Write como para Bash (incluidas las formas con~y$HOME). La mano la seguís teniendo vos:/nodd gate,/nodd ony/nodd offen Claude Code,/nodd-gatesen pi, y un override de un solo uso connodd-allow configpara lo demás. - arregloAgregar una línea a un archivo ya no cuenta como escribir en un archivo llamado
>. Cuando el comando eraecho x >> src/a.ts, NODD leía el operador>>como un>seguido de un destino pegado, y se quedaba con ese>como si fuera el archivo. Las consecuencias eran tres, todas medidas:promotionlo frenaba como archivo no declarado (1 of them never named (/repo/>)), la exención del scratchpad nunca aplicaba, y un append después de unnpm testverde invalidaba ese verde. Ahora apunta al archivo real;2>&1y>&2siguen sin ser archivos. - arregloEn un git worktree, NODD anclaba todo al árbol principal.
$.session.repo()devuelve la raíz del working tree principal cuando estás en un worktree — es su contrato — y era la única raíz que NODD pedía. Resultado: el documento de la feature se creaba en el checkout principal mientras el trabajo pasaba en el worktree, losfilesdeclarados apuntaban a rutas que nadie tocó, yevidencecomparaba elcddel runner contra esa raíz y rechazaba todos los tildados, sin más salida que un override. Ahora se usa la raíz de la sesión cuando tiene puntero de worktree (un archivo.gitcongitdir:); un clon común no cambia. - arregloLa declaración dice a qué raíz ancló. Esa raíz es la que
evidenceusa para aceptar el runner, así que ahora aparece en la línea que devuelvenodd_declare: si corre en otro lado, se ve en el momento y no después de tres rechazos.