Es hora de release.

Hace dos semanas presentamos Octofs, Octobrain, Octolib y la preview de Octomind cloud. Desde entonces cada uno ha sacado al menos una release — la mayoría varias.


Octofs 0.4.3 — búsqueda regex, recorrido paralelo y un comando delete

github.com/muvon/octofs · 0.4.0 → 0.4.3

El servidor MCP de filesystem que presentamos el 3 de mayo se construye alrededor de una promesa: atrapar los modos de fallo que producen los agentes de IA cuando tocan código. La línea de parches 0.4.x sigue apretando esa tuerca.

Novedades desde 0.4.0:

  • Búsqueda de contenido por regex. view ahora acepta un patrón regex además de cadenas literales. Los agentes que necesitan encontrar call sites, referencias o coincidencias estructurales no tienen que recurrir a shell + ripgrep — es un modo de búsqueda de primera clase.
  • Recorrido de archivos en paralelo. La travesía de directorios ahora es multihilo con un pool de workers compartido. Los monorepos grandes que tardaban segundos en indexarse ahora responden en cientos de milisegundos. Sigue siendo gitignore-aware en cada directorio.
  • Comando delete en text_editor. Los agentes ahora pueden borrar líneas, rangos o archivos atómicamente por la misma herramienta con la que editan — sin necesidad de invocar rm. Mismo contrato de escritura atómica: el archivo está o no está, nunca a medias.
  • Permisos de archivo preservados en atomic_write. Antes de 0.4.2 una escritura reseteaba en silencio el modo del archivo al umask por defecto. Editar un script ejecutable y perder el bit +x rompía cosas. Arreglado: los permisos se leen antes de escribir el temporal y se aplican antes del rename.
  • Claves de lock estables para archivos inexistentes. Las creaciones concurrentes con aliasing de ruta (./a.rs vs a.rs) eran una carrera. Ahora ambos se resuelven al mismo lock canónico antes de que el archivo exista.
  • Parámetros de array en JSON. Algunos clientes MCP serializan argumentos de array como cadenas JSON. Octofs ahora acepta cualquiera de las dos formas transparentemente, así que los agentes ya no fallan por un desajuste "[[1,50]]" vs [[1,50]].

Si estabas en 0.4.0, puedes saltar a 0.4.3 sin cambios de configuración. El modo de línea por hash, el matching fuzzy, la detección de conflictos en batch — todo sigue ahí, solo que más rápido y con bordes más afilados.

cargo install octofs --version 0.4.3
# o coge un binario en https://github.com/muvon/octofs/releases

Octobrain 0.6.1 — una release silenciosa sobre una ruidosa

github.com/muvon/octobrain · 0.6.0 → 0.6.1

0.6.0 fue la grande — lectura completa de documentos vía knowledge read, match regex sobre contenido indexado, resultados de consulta en streaming y el comando auto_link por fin eliminado. 0.6.1 es la pasada de mantenimiento encima: upgrades de dependencias y un perfil de release ajustado que recorta tamaño binario y rasca milisegundos al cold start.

Nada en 0.6.1 cambia la API. Si ya enviaste 0.6.0 a tu stack, esto es un upgrade drop-in. Si no, el post de release 0.6.0 explica qué hacen realmente los comandos read y match — y por qué la "memoria" de tu IA debería incluir los documentos que ha leído, no solo las conversaciones que ha tenido.


Octolib 0.21.5 — reasoning effort, prompt cache keepalive, dos proveedores nuevos

github.com/muvon/octolib · 0.19.0 → 0.21.5

Octolib es el motor detrás de cada llamada LLM que hacemos — Octomind, Octocode, Octofs, los agentes en producción, los scripts en nuestras terminales. Desde el post de presentación del 27 de abril ha pasado de 0.19.0 a 0.21.5. Seis versiones menores, doce parches. Esto cambió:

  • Reasoning effort entre proveedores. Un parámetro unificado effort que mapea al adaptive thinking de Anthropic, a los reasoning tiers de OpenAI y a los knobs equivalentes en cada proveedor que los soporte. Una llamada, todos los backends. El slash command /effort en Octomind se conecta directamente a esto.
  • Adaptive thinking de Anthropic. Pasa effort = "high" y Claude reserva más presupuesto de pensamiento; "low" lo mantiene rápido. El pricing de creación de cache por TTL también se respeta correctamente ahora.
  • Política de keepalive de prompt cache. Los agentes de larga ejecución perdían sus prompts cacheados porque el TTL de 5 minutos expiraba entre llamadas a herramientas. Octolib ahora mantiene el cache caliente con un heartbeat en segundo plano. Resultado: conversaciones órdenes de magnitud más baratas una vez el contexto está construido.
  • Dos proveedores nuevos.
    • Fireworks AI — inferencia OSS rápida para Llama, Qwen, Mixtral.
    • Featherless — modelos hosteados por la comunidad con facturación por token.
  • Tool calling de DeepSeek. El formato de tool-call de DeepSeek era no estándar; Octolib ahora lo parsea correctamente y soporta el loop completo de thinking + tool-use.
  • Adjuntos de imagen y vídeo por URL. Antes había que codificar el media en base64; ahora el passthrough por URL consciente del proveedor es el default donde se soporta.
  • Reranker de HuggingFace vía XLM-RoBERTa. Reranking cross-encoder multilingüe sobre el retrieval denso + sparse existente. Normalización sigmoide en los scores.
  • HTTP/2 keep-alive + compresión en cada llamada saliente. Reutilización de conexión para cargas de agentes de alto throughput. Reintento por conexión stale. Latencias de cola más bajas bajo carga sostenida.

Si estás construyendo algo que llama a LLMs desde Rust, esta es la capa sobre la que estandarizar. Anthropic, OpenAI, Google Gemini, DeepSeek, Moonshot, MiniMax, Z.ai, OpenRouter, NVIDIA NIM, Cerebras, Together, Cloudflare Workers AI, Fireworks, Featherless, Ollama, endpoints personalizados — mismo trait, misma lógica de reintento, mismo contabilizado de coste.


Octomind 0.29.0 — cinco releases en tres semanas

github.com/muvon/octomind · 0.25.0 → 0.29.0

El runtime de agentes llegó a 0.29.0 hoy. Cinco releases en tres semanas — ese ritmo no fue planificado, fue la preview cloud sacando a la luz lo que había que arreglar en tiempo real. Lo arreglamos. Historia completa en octomind.run; aquí la lista corta:

  • Persistencia de schedule y el comando /schedule — runs de agente recurrentes que sobreviven a reinicios.
  • Auto-activación de capacidad MCP basada en intención — las herramientas se encienden cuando la conversación las necesita, y se apagan cuando no.
  • Gating de agente por dominio — las capacidades se filtran a lo que el dominio del agente declara que necesita.
  • Cache de vectores persistente + motor de embeddings local — vectores pre-embebidos cargados al arranque; sin cold path en la primera llamada.
  • Llamadas a herramientas en paralelo por defecto — al modelo ahora se le instruye explícitamente que agrupe llamadas independientes en un turno.
  • Slash command /effort — conectado directamente al plumbing de reasoning effort en Octolib 0.21.x.
  • Herramientas con shebang locales al proyecto — suelta un script en .agents/tools/ y es una herramienta MCP. Sin registro, sin manifest.
  • Reporte de uso y coste de tokens ACP — cada host que habla ACP (Octorun, Octoweb, tu propia UI) obtiene cost meta por mensaje out of the box.
  • Keepalive de prompt cache — mismo plumbing que Octolib, expuesto como setting de sesión.

Lo pequeño suma: rail izquierda continua para entrada del usuario, status line persistente con delta de coste, entrada enviada resaltada en el historial, deadlocks de renderizado de terminal arreglados, eco de Ctrl+C suprimido. La experiencia de chat en 0.29.0 es notablemente más calmada que en 0.25.0.


Cómo encajan

El stack no cambió. Todo dentro de él sí:

  • Octolib 0.21.5 — cada llamada LLM, con reasoning effort y prompt cache keepalive
  • Octobrain 0.6.1 — memoria persistente entre sesiones
  • Octofs 0.4.3 — acceso seguro al filesystem con búsqueda regex y comando delete
  • Octocode — búsqueda de código semántica + estructural (0.14.1 en la calle)
  • Octomind 0.29.0 — el runtime que orquesta todo lo demás

Binarios únicos, Apache-2.0, todos ellos. Y todos se movieron.

Ya empezamos el siguiente. Si algo aquí desbloquea algo que querías construir, abre un issue — features pedidos en mayo tienden a salir en junio.

— Don