# Ronda de releases, noviembre 2026: 105 releases, Unsame, MCP elicitation y ediciones de archivo verificadas

> 105 releases en nueve productos. Unsame se lanzó, Octoweb añadió historial de chat de IA y tareas de calendario, Octomind sumó MCP elicitation, MCP OAuth, comprobaciones de evidencia y herramientas programadas, y Octofs cambió la autenticación de su servidor MCP remoto y sus contratos de edición.

La [ronda de octubre](/blog/release-round-october-2026) cubrió los tags hasta el 23 de octubre. Desde entonces: **105 releases en nueve productos**.

**Esta ronda trató de preguntas que pueden llegar a una persona (MCP elicitation), sesiones que conservan su sitio y ediciones que pueden demostrar que siguen apuntando a las líneas correctas.** También lanzamos Unsame, un servicio alojado de playbooks para escritura repetida, junto a mcp-variety, su opción local gratuita.

---

## La cuenta

| Repo                                                                | Rango               | Releases |
| ------------------------------------------------------------------- | ------------------- | -------: |
| [octolib](https://github.com/Muvon/octolib/releases/tag/0.52.3)     | 0.45.2 → **0.52.3** |       30 |
| [octomind](https://github.com/Muvon/octomind/releases/tag/0.70.1)   | 0.61.0 → **0.70.1** |       25 |
| [octohub](https://github.com/Muvon/octohub/releases/tag/0.16.9)     | 0.13.1 → **0.16.9** |       21 |
| [octofs](https://github.com/Muvon/octofs/releases/tag/0.23.3)       | 0.20.0 → **0.23.3** |       13 |
| [octocode](https://github.com/Muvon/octocode/releases/tag/0.29.2)   | 0.28.0 → **0.29.2** |        5 |
| [octobrain](https://github.com/Muvon/octobrain/releases/tag/0.15.2) | 0.14.9 → **0.15.2** |        5 |
| [synx](https://github.com/Muvon/synx/releases/tag/0.1.10)           | 0.1.8 → **0.1.10**  |        3 |
| [octoweb](https://github.com/Muvon/octoweb/releases/tag/0.21.0)     | 0.20.0 → **0.21.0** |        2 |
| [yoda](https://github.com/Muvon/yoda/releases/tag/2.6.0)            | **2.6.0**           |        1 |
| **Total**                                                           |                     |  **105** |

Dieciséis tags contienen solo cambios de dependencias, mantenimiento o tooling. OctoHub no tiene tag 0.14.4. Todos los tags nuevos de Octomind, Octofs, Octolib, Octocode, Octobrain y Synx llegaron a crates.io.

## Antes de actualizar

| Versión                     | Qué se rompe                                                                                                                                                                                                                                                                            | Qué hacer                                                                                                                                                                                                                                                       |
| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Octomind 0.61               | La config avanza de la v22 a la v24. La migración añade `commit_attribution`, cuyo valor por defecto agrega el trailer de coautor de Octomind, y la detención de rondas repetidas. `/context system` ya no se acepta. Una desconexión del WebSocket ya no cancela el turno en curso.    | Revisa el nuevo valor por defecto del trailer; pon `commit_attribution = ""` para desactivarlo. Usa `/context all`, `/context assistant`, `/context user`, `/context tool` o `/context large`. Envía `cancel` para detener un turno desde un cliente WebSocket. |
| Octomind 0.63               | Claude 3.5 Haiku, Opus 4, Opus 4.1, Sonnet 4 y Sonnet 4.5 se rechazan, y una config que nombre uno de ellos falla.                                                                                                                                                                      | Cambia el modelo antes de actualizar.                                                                                                                                                                                                                           |
| Octomind 0.64               | `recite_note` en la API de Rust ahora recibe como argumento las condiciones ya resueltas de la petición.                                                                                                                                                                                | Actualiza las llamadas personalizadas desde Rust; el uso normal de la CLI no necesita cambios de código.                                                                                                                                                        |
| Octomind 0.66 / Octofs 0.21 | Las líneas de origen renderizadas usan IDs `N:hh`. Las posiciones de append solo aceptan `0`, `-1` o un ID de línea verificado; los extremos de rango de batch-edit requieren un ID.                                                                                                    | Copia los IDs de la salida de `view` en lugar de reutilizar un número de línea suelto como destino de una edición.                                                                                                                                              |
| Octomind 0.67               | La configuración avanza a v26 y añade `request_transport` por modelo, con WebSocket por defecto en las llamadas a OctoHub y ChatGPT.                                                                                                                                                    | Si tu OctoHub es anterior a 0.15.0, actualízalo o pon `request_transport = "http"` en el perfil del modelo.                                                                                                                                                     |
| Octomind 0.67.2             | El replay de WebSocket ahora tiene límites de tamaño. Una reanudación solo repite frames si estos siguen retenidos (2 MiB y 4,096 frames por stream) y caben en 8 MiB y 4,096 frames. El replay del observador tiene el mismo límite de 8 MiB y 4,096 frames y puede reportar un hueco. | Trata `"resumed": false` como ausencia de replay y recarga desde el estado de tu propia sesión. Para los observadores, registra el hueco reportado y continúa desde la última secuencia.                                                                        |
| Octomind 0.67.3             | El keepalive de caché, una petición pequeña que mantiene calientes los datos de prompt reutilizables durante las esperas, tiene reglas nuevas de presupuesto y de ciclo de vida; `cache_keepalive_max_idle_seconds` desapareció. Los pings cuentan como uso facturable.                 | Quita la clave antigua de límite de inactividad. El keepalive está desactivado por defecto; actívalo solo si los cargos por lectura de caché durante las esperas tienen sentido para tu carga de trabajo.                                                       |
| Octomind 0.70               | La configuración avanza de v27 a v29. La migración añade compactación por inactividad y elimina el antiguo umbral de confianza no resuelta. Las condiciones de finalización ahora se comprueban contra evidencia.                                                                       | Deja que corra la migración de la configuración; quita cualquier ajuste de umbral copiado a mano y asegúrate de que las condiciones de finalización tengan evidencia comprobable. En 0.69 no hubo cambio de versión de configuración.                           |
| Octolib 0.45.4              | Se eliminaron los alias antiguos de modelos de Anthropic y cambiaron los parámetros de muestreo de Anthropic.                                                                                                                                                                           | Sustituye los alias antiguos por los IDs de modelo actuales; no des por hecho que temperature, `top_p` o `top_k` se envíen a Anthropic.                                                                                                                         |
| Octolib 0.48.0              | ChatGPT usa HTTP streaming por defecto; el soporte de WebSocket pasó a la feature opt-in `websockets`.                                                                                                                                                                                  | Activa esa feature de Cargo y selecciona WebSocket por petición si tu integración depende de ello.                                                                                                                                                              |
| Octolib 0.51.0              | Se eliminó `ProviderExchange.cache_lifetime`; el tiempo de vida de la caché de OctoHub ahora viene del TTL del marcador.                                                                                                                                                                | Actualiza el código que lee el campo eliminado y usa la API de tiempo de vida de caché del proveedor.                                                                                                                                                           |
| OctoHub 0.13.2              | `media_model_tasks` ya no es un campo de configuración admitido.                                                                                                                                                                                                                        | Quítalo de la configuración del servidor.                                                                                                                                                                                                                       |
| OctoHub 0.15.0              | `FunctionCallOutput::output` cambió de `String` a `ContentValue` para que los resultados de las herramientas puedan llevar imágenes.                                                                                                                                                    | Actualiza el código Rust que lo llama para manejar texto o partes de contenido tipadas.                                                                                                                                                                         |
| OctoHub 0.16.0              | Los métodos de cadena del almacenamiento ahora usan registros `ChainLink` y fallan si faltan enlaces o el JSON de replay no es válido.                                                                                                                                                  | Si mantienes un fork del código, actualiza su manejo de cadenas para usar `ChainLink`.                                                                                                                                                                          |
| OctoHub 0.16.9              | Los campos de petición `temperature`, `top_p` y `speed` de voz pasaron de `f32` a `f64`.                                                                                                                                                                                                | Convierte los valores tipados explícitamente como `f32` en el código Rust que llama a la API.                                                                                                                                                                   |
| Octocode 0.28.0             | Construir un `LlmClient` ahora requiere un `ModelPurpose`.                                                                                                                                                                                                                              | Pasa el propósito desde integraciones propias en Rust; la CLI también acepta valores repetibles de `--co-author`.                                                                                                                                               |
| Octofs 0.20 / 0.23          | Los binds HTTP remotos requieren autenticación. El motor de patch antiguo se sustituyó por ediciones atómicas.                                                                                                                                                                          | Añade un bearer token a cada bind HTTP que no sea de loopback y pasa los clientes de patch a `text_editor` o `batch_edit`.                                                                                                                                      |

## Unsame y la opción local

[**Unsame se lanzó el 5 de noviembre**](/blog/introducing-unsame-playbook-engine). [Unsame](https://unsame.io) es un motor de playbooks alojado: antes de que tu modelo escriba, selecciona un enfoque y un formato de un playbook para el input en cuestión. Tu modelo escribe el texto con tu propia clave; Unsame devuelve instrucciones y no escribe la salida. Un playbook guarda tu objetivo, tu voz, tus reglas y tus enfoques. Puedes reportar cómo funcionó un resultado y usar ese feedback para ponderar las elecciones futuras.

Para una configuración local sin cuenta, [mcp-variety](https://github.com/Muvon/mcp-variety) elige un enfoque y una forma, recuerda las combinaciones recientes por proyecto o cuenta y comprueba los borradores contra reglas de escritura clara. No usa ningún modelo ni hace llamadas de red. Todavía no está en PyPI, así que, con `uv` instalado, añade el servidor local gratuito a Claude Code desde el commit fijado del código fuente:

```sh
claude mcp add variety -- uvx --from git+https://github.com/muvon/mcp-variety@fefd684340927eaddf6db0b2707f4208a6094cae mcp-variety
```

El README reporta una comparación pequeña con Claude Sonnet (`claude -p --model sonnet`, sin herramientas): seis textos por input en ocho inputs, cuatro posts y cuatro respuestas, 96 textos en total. El porcentaje de pares de textos que empezaban con las mismas tres palabras fue del 58.3% sin mcp-variety y del 2.5% con él. Eso mide las aperturas repetidas en esta configuración; no es un resultado general de calidad de escritura, y no tenemos una cifra de mejora comparable que reportar del Unsame alojado.

## Octoweb 0.20 → 0.21 — calendario, tareas e historial de chat de IA

[**github.com/muvon/octoweb**](https://github.com/Muvon/octoweb/releases/tag/0.21.0) · 2 releases · [notas de la 0.21](https://octoweb.xyz/blog/octoweb-0-21-release)

**La 0.20 añadió herramientas de calendario y de tareas para el asistente de IA.** Suscríbete a un feed ICS, importa un archivo de invitación `.ics`, consulta los eventos del calendario y prepara el borrador de un evento para revisarlo. El asistente también puede añadir tareas a las notas del workspace.

**La 0.21 guarda el historial de chat de IA como una lista de chats cerrados.** Abre Past sessions en la barra lateral, busca por título o agente y reabre una conversación con su historial. La barra lateral muestra el modelo y el coste acumulado; cada respuesta tiene su propia línea de tokens, caché, razonamiento, coste y duración. Los chats anteriores a la 0.21 no tienen totales de uso guardados.

Ahora un servidor MCP puede hacerte una pregunta en mitad de una llamada. MCP elicitation es esa petición de un valor, una opción o un inicio de sesión; Octoweb muestra un formulario con campos, Submit y Decline, o un enlace y un botón Done para el inicio de sesión. En macOS, `⌃P` y `⌃N` recorren las pestañas en orden de uso más reciente. Actualiza también Octomind con `brew upgrade octomind` para las funciones de la barra lateral.

## Octomind 0.61 → 0.70.1 — agentes que se detienen, preguntan y muestran su trabajo

[**github.com/muvon/octomind**](https://github.com/Muvon/octomind/releases/tag/0.70.1) · 25 releases · [changelog completo](https://github.com/Muvon/octomind/blob/0.70.1/CHANGELOG.md)

**El supervisor puede detener un bucle.** El supervisor es la parte de Octomind que revisa el progreso de un agente. Antes de que añadiéramos esto, [uno de nuestros agentes](https://octomind.run/blog/octomind-0-61-0-release) preguntó 101 veces en un solo turno si existía el mismo archivo. Desde la 0.61, Octomind termina el turno tras 10 rondas consecutivas de llamadas idénticas con resultados idénticos; sube `supervisor.max_identical_rounds` si tu agente hace polling a propósito, o ponlo a `0` para desactivar la detención. La 0.66.1 también detecta ejecuciones que repiten en ciclo las mismas rondas. En la [0.68](https://octomind.run/blog/octomind-0-68-0-release), `[supervisor.advise]` permite que el supervisor cite el resultado de la herramienta que el agente pasó por alto. Ese aviso está desactivado por defecto y no sustituye a la detención.

**El inicio de sesión OAuth de MCP y las preguntas de elicitation pueden ocurrir a mitad de una llamada.** Desde la [0.62](https://octomind.run/blog/octomind-0-62-0-release), puedes añadir un servidor MCP protegido con OAuth sin cabecera `Authorization`: Octomind lee el desafío 401 del servidor, encuentra sus metadatos de inicio de sesión y abre tu navegador. Desde la [0.63](https://octomind.run/blog/octomind-0-64-0-release), un servidor MCP puede pausar una llamada a una herramienta y hacerte una pregunta, como confirmar un reembolso. Esto se llama MCP elicitation. La terminal, los clientes WebSocket y los editores conectados por el Agent Client Protocol pueden responder; cuando nadie puede, como en las ejecuciones por pipe y en los subagentes, Octomind rechaza la pregunta.

**El verify-gate pide evidencia.** El verify-gate es el paso de verificación del agente de IA de Octomind: una comprobación final de si un turno terminado hizo lo que pediste. Desde la 0.63, el verificador tiene que respaldar cada condición superada con una cita de 12 caracteres o más que aparezca palabra por palabra en la evidencia registrada, y las líneas de fallo como `FAIL` y `panicked at` sobreviven cuando una salida larga de herramienta se condensa. La 0.70 también comprueba las condiciones sin resolver contra la evidencia.

**Un WebSocket, dos timeouts.** En la [0.67](https://octomind.run/blog/octomind-0-67-0-release), las llamadas a modelos de OctoHub y ChatGPT van por un único WebSocket persistente por sesión por defecto; `request_transport = "http"` lo desactiva por modelo. Un WebSocket roto aparece como un error en esa llamada; Octomind no cambia a HTTP por su cuenta. `request_timeout_seconds` (300 por defecto) limita un intento de petición completo, y `stream_timeout_seconds` (0 por defecto, desactivado) limita cuánto tiempo puede estar una respuesta en silencio. Un OctoHub autoalojado necesita la 0.15.0 o posterior.

**Una llamada a una herramienta puede ejecutarse de forma programada, y un especialista puede recibir una cola.** Un especialista es un agente delegado que trabaja en una parte de la tarea. Desde la 0.67, el agente puede programar una llamada a una herramienta en lugar de un mensaje, y poner en cola hasta 32 prompts de seguimiento para un especialista que sigue en ejecución. `/status agents` lista las ejecuciones guardadas, y `/info` divide el coste entre el total y lo que gastó el modelo principal.

**Esperar cuesta tokens de lectura de caché.** Un cache keepalive es una petición pequeña que intenta mantener calientes los datos reutilizables del prompt mientras una sesión espera. Desde la [0.67.3](https://octomind.run/blog/octomind-0-68-0-release), Octomind estima si otro ping merece la pena por su coste de lectura de caché, incluye los pings en el coste de la sesión y se detiene tras un fallo de caché. Está desactivado por defecto (`cache_keepalive_enabled = false`), y a través de OctoHub necesita la 0.16.3 o posterior.

Los observadores WebSocket de solo lectura pueden ver sesiones sin tomar el control. Las adiciones al log de sesión sobreviven a una caída desde la 0.64.1, y `install.sh` comprueba el SHA-256 de cada archivo comprimido desde la 0.65.1.

**La 0.70 cambia la configuración inicial, la compresión y el aprendizaje.** El asistente de proveedores muestra de dónde viene una clave y te permite retroceder o saltarte un proveedor. La compresión puede ejecutarse en un proceso separado y compactar después de que expire la caché del prompt. El aprendizaje conserva las reglas de usuario verificadas con su autoridad de regla de usuario. La migración de config de la 0.70 mueve la versión 27 a la 29, activa la compactación en reposo por defecto y elimina el obsoleto umbral de confianza sin resolver.

Instala la release actual 0.70.1 en macOS o Linux:

```bash
curl -fsSL https://octomind.run/install.sh | bash -s -- --version 0.70.1
octomind --version
```

En Windows:

```powershell
scoop bucket add muvon https://github.com/Muvon/scoop-bucket
scoop install muvon/octomind
```

## Octofs 0.20 → 0.23.3 — autenticación MCP para acceso remoto, edición por líneas verificadas

[**github.com/muvon/octofs**](https://github.com/Muvon/octofs/releases/tag/0.23.3) · 13 releases · [README](https://github.com/Muvon/octofs/blob/0.23.3/README.md)

**El HTTP remoto ahora requiere un token.** El uso en loopback puede seguir siendo local; cuando enlazas a otra dirección, Octofs se niega a arrancar sin autenticación del servidor MCP:

```bash
OCTOFS_AUTH_TOKEN="$(openssl rand -hex 32)" octofs mcp --bind 0.0.0.0:12345
```

HTTP no va cifrado, así que pon un token remoto detrás de TLS o de un túnel SSH. No pongas el token en un argumento de la línea de comandos si otros usuarios locales pueden inspeccionar los procesos.

**Las ediciones usan IDs de línea.** Un ID de línea combina la posición de la línea con un hash corto de su contenido, por ejemplo `12:a3`. Octofs comprueba que el contenido sigue coincidiendo antes de cambiarlo, así que una vista obsoleta falla con el contexto actual en lugar de editar otra línea. Append ahora solo acepta `0` para el principio, `-1` para el final o un ID de línea verificado. El viejo motor de parches ha desaparecido: `batch_edit` aplica varias operaciones a un solo archivo de forma atómica, y `text_editor` puede aplicar ediciones en varios archivos en un único paso atómico. Las lecturas de archivos tienen un límite de 5 MB.

```bash
cargo install octofs --version 0.23.3
```

## Octolib y OctoHub — transportes, vida útil de la caché y enrutamiento

[**octolib 0.52.3**](https://github.com/Muvon/octolib/releases/tag/0.52.3) · 30 releases · [**octohub 0.16.9**](https://github.com/Muvon/octohub/releases/tag/0.16.9) · 21 releases

Octolib 0.48 añadió respuestas en streaming con timeouts separados para la petición y para el stream, y después convirtió el streaming por HTTP en el valor por defecto de ChatGPT. El transporte por WebSocket sigue disponible cuando activas la feature `websockets`. OctoHub 0.14.0 permite que cada alias de modelo rote entre proveedores o los pruebe en un orden configurado. OctoHub 0.15 añadió completaciones secuenciales por WebSocket y conserva las partes de imagen que devuelven las herramientas; la 0.16.3 añadió precalentamiento de la caché a través del proxy.

El reporte de la vida útil de la caché ahora se basa en evidencia: Octolib expone las vidas útiles de la caché de cada proveedor y ejemplos que sondean cuánto tiempo siguen siendo utilizables las cachés y que se detienen tras misses repetidos. La vida útil de la caché de OctoHub sigue el TTL del marcador de caché que transmite. Proveedores nuevos en el rango: Xiaomi MiMo, Reflection AI e Isoquant. Octolib 0.52.3 añade Claude Fable 5.2, Mythos 5.2 y Meta Muse Ember con sus precios, y desde 0.52.2 los valores de muestreo y de velocidad de voz se envían como decimales exactos.

## Octocode, Octobrain, Synx y Yoda

- **Octocode 0.28.0 → 0.29.2** ([release](https://github.com/Muvon/octocode/releases/tag/0.29.2)): el enrutamiento por propósito del modelo deja que OctoHub elija un modelo según el trabajo; `octocode commit` y `octocode release` aceptan trailers `--co-author` repetibles. Los tags posteriores añaden soporte para LanceDB remoto y búsquedas estructurales fuera del repositorio.
- **Octobrain 0.14.9 → 0.15.2** ([release](https://github.com/Muvon/octobrain/releases/tag/0.15.2)): sincronización de knowledge boxes por MCP y relaciones `goal` / `closes` para las memorias. Instálalo con `cargo install octobrain --version 0.15.2`.
- **Synx 0.1.8 → 0.1.10** ([release](https://github.com/Muvon/synx/releases/tag/0.1.10)): las copias obsoletas del otro extremo se rechazan y los locks de Git se respetan durante la sincronización. Instálalo con `cargo install synx --version 0.1.10`; ejecútalo en las dos máquinas.
- **Yoda 2.6.0** ([release](https://github.com/Muvon/yoda/releases/tag/2.6.0)): actualizaciones con versionado semántico y arreglos en la gestión de contenedores y el despliegue. En macOS, instálalo con `brew install muvon/tap/yoda`.

```bash
cargo install octocode --version 0.29.2
```

## Sin tag, pero con movimiento

El [plugin de Octomind](https://github.com/Muvon/octomind-plugin) ya tiene skills compartidas para Claude Code y Codex: una para la CLI open source y otra para Octomind Cloud. El registro público [Octomind Tap](https://github.com/Muvon/octomind-tap) de agentes, skills y workflows siguió cambiando sin tag de release. En Octomind Cloud, [el crédito inicial de $5 terminó el 2 de noviembre](https://octomind.run/blog/free-plan-is-the-hub), y el uso del hub ahora funciona con créditos que recargas.

## Aguantando

Vext 1.7.0, Timex 1.7.0 y TypeTab 1.2.0 no tuvieron tags más nuevos. Pulsora y Vanga no tuvieron ningún tag.

## Cómo encaja el stack hoy

- **[Octoweb 0.21.0](https://github.com/Muvon/octoweb/releases/tag/0.21.0)** — navegador con correo, calendario, tareas e historial de chat de IA reanudable.
- **[Octomind 0.70.1](https://github.com/Muvon/octomind/releases/tag/0.70.1)** — runtime de agentes con preguntas MCP, comprobaciones de evidencia y herramientas programadas.
- **[Octolib 0.52.3](https://github.com/Muvon/octolib/releases/tag/0.52.3)** — librería de proveedores en Rust con transportes en streaming y reporte del tiempo de vida de la caché.
- **[OctoHub 0.16.9](https://github.com/Muvon/octohub/releases/tag/0.16.9)** — proxy de modelos con completados secuenciales por WebSocket y precalentamiento de caché.
- **[Octofs 0.23.3](https://github.com/Muvon/octofs/releases/tag/0.23.3)** — herramientas de filesystem MCP con IDs de línea verificados y ediciones atómicas.
- **[Octocode 0.29.2](https://github.com/Muvon/octocode/releases/tag/0.29.2)** — búsqueda semántica de código con enrutado por propósito del modelo.
- **[Octobrain 0.15.2](https://github.com/Muvon/octobrain/releases/tag/0.15.2)** — memoria MCP con sincronización de knowledge boxes.
- **[Synx 0.1.10](https://github.com/Muvon/synx/releases/tag/0.1.10)** — sincronización de archivos por SSH.
- **[Yoda 2.6.0](https://github.com/Muvon/yoda/releases/tag/2.6.0)** — desarrollo y despliegue con contenedores desde un repositorio de proyecto.
- **[Unsame](https://unsame.io)** — playbooks alojados para escritura recurrente; **mcp-variety** es la opción local gratuita.

La ronda anterior cubrió los tags hasta el 23 de octubre; esta siguió 105 releases hasta el 10 de noviembre. Si una actualización cambia un comando o una config de la que dependes, la tabla de arriba es el punto de partida; después revisa las notas de release de ese producto antes de tocar una integración compartida.

— Don
