# Octobrain 0.6.0: Tu IA por fin recuerda lo que leyó

> Octobrain 0.6.0 añade lectura completa de documentos, match regex en contenido indexado, resultados de consulta en streaming, y elimina la herramienta auto_link. Esto cambió y así se actualiza.

# Octobrain 0.6.0: Tu IA por fin recuerda lo que leyó

La mayoría de herramientas de memoria IA guardan lo que les dices que guarden. 0.6.0 cambia qué puede _encontrar_ Octobrain.

Esta release va sobre conocimiento — no solo los recuerdos que tu IA acumula de las conversaciones, sino los documentos, páginas y archivos a los que la apuntas. Leer, buscar, hacer match. Extracción completa de contenido. Regex grep sobre todo lo que ha indexado. Y una superficie MCP más limpia que elimina una herramienta que nunca tuviste que llamar manualmente.

---

## Lee cualquier cosa, extrae todo

La mayor adición en 0.6.0 es el comando `read`. Dale a Octobrain una URL o una ruta local, y saca el texto completo — sin chunking, sin resumen, sin truncado. Contenido bruto, devuelto directamente.

Maneja HTML, PDF, DOCX y archivos de texto plano. URLs remotas y fuentes locales funcionan igual.

```bash
octobrain knowledge read https://docs.example.com/api-reference
octobrain knowledge read ./spec.pdf
```

Vía MCP, es la herramienta `knowledge` con `command: "read"`. Es el fallback cuando la búsqueda semántica no es lo bastante precisa — cuando necesitas la _cosa entera_, no solo el chunk relevante.

El caso de uso es exactamente lo que suena: tu agente IA choca con un recuerdo vago, lo apuntas a la fuente, lee el documento completo y trabaja desde ahí. Sin copia-pega, sin gimnasia de ventana de contexto.

---

## Match regex sobre contenido indexado

El comando `match` es nuevo y útil para flujos de desarrollador.

Corre un patrón regex sobre todo lo indexado — o sobre una fuente específica si pasas una — y devuelve las líneas que coinciden con sus números de línea y rutas de origen.

```bash
octobrain knowledge match "error_code|timeout"
octobrain knowledge match "fn\s+handle_" --source ./src/main.rs
```

Esto es grep, pero sobre la base de conocimiento de tu IA. Si has indexado un codebase, un conjunto de docs o una colección de URLs, puedes buscarlos por patrón exacto en vez de por similitud semántica. Los dos modos se complementan: `search` para "encuéntrame algo sobre autenticación", `match` para "encuéntrame cada línea que menciona `auth_token`".

La herramienta MCP `knowledge` lo soporta como `command: "match"`. Los patrones se validan antes de ejecutar — un regex malo falla rápido con un error claro, no con un resultado vacío silencioso.

---

## Resultados de query en streaming

Por debajo, las consultas de conocimiento ahora streaming los resultados desde LanceDB en vez de juntarlos todos en memoria primero.

El enfoque anterior tenía un tope arbitrario de 10.000 filas y subía memoria en tablas grandes. El streaming quita el tope completamente y mantiene el pico de memoria plano sin importar el tamaño del índice. Para la mayoría de usuarios esto es invisible — pero si indexas codebases o colecciones de documentos grandes, notarás que deja de ser lento.

---

## auto_link se fue (sigue funcionando, solo que no la llamas)

La herramienta MCP `auto_link` se eliminó. Es el único cambio que rompe.

El auto-linking — conectar automáticamente recuerdos relacionados por similitud semántica — sigue ocurriendo. Corre en cada llamada `memorize` y `update_memory`. Solo que ya no puedes disparalo manualmente, porque nunca hubo una buena razón.

Si tenías config de cliente MCP o prompts de agente que llamaban a `auto_link`, quítalos. Todo lo demás sigue igual.

---

## Índice vector: se acabaron los errores de dimensión

Un bug sutil pero molesto: el índice PQ de LanceDB requiere que el número de sub-vectores divida exactamente la dimensión del embedding. Cuando no lo hacía, salía un error opaco de indexado.

0.6.0 lo arregla bajando el conteo de sub-vectores al divisor válido más cercano automáticamente, tope en 96. El optimizador lo maneja — no configuras nada, simplemente funciona.

---

## Fuentes de conocimiento más estrictas

Dos cambios pequeños pero importantes de validación:

**Las rutas de directorio se rechazan.** Si pasas un directorio a `knowledge index` o `knowledge read`, Octobrain ahora devuelve un error en vez de no hacer nada silenciosamente. Solo archivos.

**Las URIs de fuente se normalizan.** Las barras finales se eliminan durante el indexado, así que `https://example.com/docs/` y `https://example.com/docs` se tratan como la misma fuente. Antes creaban entradas duplicadas.

---

## Cómo se ve 0.6.0 en la práctica

Aquí hay un flujo de agente real con esta release:

1. Indexa los docs de tu proyecto: `octobrain knowledge search "rate limiting"` — encuentra el chunk relevante
2. ¿Necesitas la spec completa? `octobrain knowledge read ./docs/api.md` — texto completo, sin truncar
3. ¿Buscas un código de error específico en todas las fuentes indexadas? `octobrain knowledge match "ERR_4[0-9]{2}"` — cada línea que coincide, con fuente y número de línea
4. Guarda una idea clave: `octobrain memory memorize` — auto-enlaza con recuerdos relacionados automáticamente
5. El agente lo recoge en la siguiente llamada `remember` — sin cableado manual

La capa de conocimiento y la de memoria trabajan independientemente pero se complementan. Conocimiento es para fuentes externas. Memoria es para contexto y decisiones acumuladas. 0.6.0 hace el lado de conocimiento sustancialmente más capaz.

---

## Actualizar

Si estás en 0.5.x:

- Quita cualquier llamada `auto_link` de configs de cliente MCP o prompts de agente
- Todo lo demás es compatible hacia atrás

El formato de config no cambió. El formato de storage no cambió. La herramienta MCP `knowledge` gana dos nuevos valores de `command` (`read` y `match`) — las llamadas existentes a `search`, `store` y `delete` no se ven afectadas.

Código y binarios en [github.com/muvon/octobrain](https://github.com/muvon/octobrain). Si te topas con algo, abre un issue — los leemos.
