Saltar a contenido

Problemas Conocidos — 3.1.0

Problemas conocidos que afectan a 3.1.0, cada uno con una solución alternativa. Si te topas con algo que no está listado aquí, repórtalo en el issue tracker de raise-commons.

rai graph build --prune no tiene efecto

Síntoma. rai graph build --prune termina sin error, pero los nodos obsoletos de un servidor de grafo sincronizado no se eliminan; las consultas con --cross-repo pueden devolver símbolos que ya no existen en ningún checkout.

Causa. El pruning remoto está deliberadamente suprimido mientras el keyspace del servidor sea a nivel de repositorio. El flag se acepta y se ignora, y así lo indica el propio --help del comando.

Solución alternativa. No hace falta ninguna para trabajo local — el índice local del grafo se reconstruye por checkout (rai graph build) y siempre es consistente. Si trabajas contra un servidor de grafo y los nodos obsoletos estorban, vuelve a publicar el grafo desde el checkout dueño; las entradas obsoletas son cosméticas y no afectan las consultas locales.

Si viste esto en una página anterior

Versiones anteriores de esta página agrupaban esto con el problema de alcance por worktree — nodos del grafo con alcance por repositorio en vez de por checkout, de modo que una consulta podía devolver símbolos de otro worktree. Ese está corregido y se publica en 3.1.0. La supresión de --prune es una consecuencia distinta de que el keyspace remoto sea a nivel de repositorio, y sigue vigente.


Resueltos en la línea release candidate

Los siguientes problemas estaban presentes en la línea beta y están resueltos en 3.1.0.

Las consultas al grafo devolvían símbolos de otro worktree (RAISE-15607)

Antes: graph_nodes usaba como clave el slug del repositorio en vez del checkout, así que todos los worktrees del mismo repo compartían un único keyspace en ~/.rai/raise.db. El último rai graph build sobrescribía los nodos de todos los demás worktrees, y una consulta ejecutada en el worktree A podía devolver símbolos cuyo source_file pertenecía al worktree B — otro código, otra rama, silenciosamente incorrecto.

Corrección: los nodos del grafo ahora tienen alcance por checkout, y validate_asserted_root() impone el aislamiento por checkout.

"database is locked" por un proceso MCP obsoleto (RAISE-15605) — corregido en rc1

Antes: Toda operación de escritura fallaba con database is locked (SQLITE_BUSY) cuando un proceso MCP de larga vida mantenía una transacción de escritura abandonada.

Corrección: La corrección de SQLite WAL + busy-timeout llegó en rc1. Si todavía estás en un binario beta, actualiza siguiendo la guía de instalación. Si después de actualizar sigues viendo el error, significa que todavía corre un proceso MCP previo a la corrección — termínalo con SIGTERM y reintenta:

pkill rai-mcp          # envía SIGTERM a todos los procesos rai-mcp

rai init --force destruía el contenido de los cartuchos (RAISE-15655) — corregido en rc2

Antes: --force limpiaba los directorios de cartuchos antes de copiar, borrando de forma permanente corpus/, eval/ y extractors/ curados a mano, sin respaldo.

Corrección: --force ahora sobrescribe solo lo que el bundle posee y deja el resto intacto.

Windows: rai a secas fallaba al arrancar (RAISE-15650) — corregido en b2

Antes: El cockpit importaba termios y tty (solo Unix) a nivel de módulo; el comando moría con ModuleNotFoundError antes de imprimir nada.

Corrección: El import ahora está protegido; en Windows se muestran los comandos disponibles.

Windows: rai gate check fallaba al arrancar (RAISE-15653)

Antes: El ledger de presupuesto de workers importaba fcntl (solo Unix) a nivel de módulo.

Corrección: El backend de locking ahora se selecciona en tiempo de ejecución (msvcrt en Windows).

rai self-update destruía la instalación local (RAISE-16741)

Antes: rai self-update derivaba el directorio de instalación del MCP de la ruta del propio symlink en lugar de resolverlo, así que reemplazaba el ~/.local/bin compartido y destruía todos los binarios y symlinks que hubiera ahí — su respaldo incluido.

Corrección: publicada en 3.1.0. El symlink ahora se resuelve, y un entry point que no sea symlink aborta con un error claro en lugar de continuar.

Sigue vivo en todos los release candidates hasta rc5

La corrección está en 3.1.0 — no en el binario desde el que actualizas. No corras rai self-update en rc1 a rc5; usa el instalador, según la ruta B.


¿Actualizas desde una versión anterior? Consulta Actualizar a RaiSE 3.1.0.