Cómo bifurcar sesiones de Codex y OpenCode (desde su UI/TUI o desde el móvil)
Guía práctica para ramificar una sesión en el punto adecuado (bifurcar desde un mensaje frente a bifurcar desde lo último) y qué pasa con el contexto después.
- CLI
- 0.2.17
- Ref de preview
- a2c45c8
Bifurcar es simplemente ramificar.
Mantienes intacta la sesión original y creas una sesión hija que empieza desde un punto anterior.
Esta guía explica sin rodeos cómo bifurcar sesiones de Codex y OpenCode:
- desde su propia UI/TUI (cuando está disponible)
- y desde una interfaz en el móvil o el navegador (Happier es una opción)
Lo único que hay que acertar es desde dónde bifurcas.
En resumen
- Decide desde dónde quieres ramificar:
- Bifurcar desde lo último (ramificar desde "ahora")
- Bifurcar desde un mensaje (ramificar antes)
- En Codex:
- bifurcar desde el estado más reciente de la sesión es lo fiable
- En OpenCode:
- bifurcar desde un mensaje de forma nativa en el servidor es posible cuando usas un backend de servidor de OpenCode
- Si quieres una interfaz de bifurcación coherente entre dispositivos, Happier es una opción: muestra Bifurcar desde este mensaje (Fork from this message) en la transcripción y crea una sesión hija automáticamente.
Qué significa "bifurcar" (en la práctica)
Bifurcar no es copiar y pegar.
Una bifurcación es:
- un nuevo id de sesión
- con el contexto antecesor enlazado
- y un nuevo flujo de mensajes desde el punto de bifurcación en adelante
La sesión original no cambia.
Bifurcar desde lo último o desde un mensaje (cómo elegir)
Bifurcar desde lo último
Úsalo cuando:
- te gusta la dirección actual
- solo quieres probar otro enfoque en paralelo
Bifurcar desde un mensaje
Úsalo cuando:
- puedes señalar el momento exacto en el que quieres divergir
- quieres rehacer una instrucción limpiamente
Opción A: bifurcar dentro de Codex
El soporte de Codex varía según la interfaz, pero el flujo suele ser algo así:
- bifurcar la sesión actual (desde lo último)
- continuar la sesión bifurcada como una rama nueva
Cuándo conviene bifurcar desde lo último en Codex
Bifurcar desde lo último va bien cuando:
- quieres probar otra vía de implementación
- quieres comparar dos enfoques
- vas a hacer un cambio arriesgado y quieres una rama segura
Cuándo lo que quieres de verdad es bifurcar desde un mensaje
Bifurcar desde un mensaje es el movimiento de "quiero rebobinar":
- quieres rehacer una instrucción limpiamente
- quieres divergir antes de que la sesión empezara a desviarse
Si tu interfaz de Codex no permite bifurcar desde un mensaje, la alternativa habitual es la reproducción:
- crea una sesión nueva
- dale suficiente contexto para que se comporte como la original
(Por eso una buena experiencia de bifurcación siempre incluye una vía de reproducción.)
Opción B: bifurcar dentro de OpenCode
OpenCode tiene una arquitectura cliente/servidor sólida.
Si usas un backend de servidor de OpenCode, puede estar disponible bifurcar desde un mensaje de forma nativa en el servidor.
Una regla de decisión sencilla para OpenCode
- Si sabes desde qué mensaje exacto quieres ramificar → bifurcar desde un mensaje
- Si no → bifurcar desde lo último
Si bifurcar desde un mensaje no está disponible en tu interfaz actual de OpenCode, la alternativa de reproducción también vale aquí.
Opción C: bifurcar desde el móvil (Happier)
Si quieres una interfaz de bifurcación coherente en el móvil, el navegador y el escritorio, Happier es una opción.
Así funciona (según la implementación):
Bifurcar desde un mensaje concreto
Es una bifurcación muy útil, y muchas herramientas la ponen sorprendentemente difícil.
En Happier:
- Abre la transcripción de la sesión.
- Busca el mensaje desde el que quieres ramificar.
- Elige Bifurcar desde este mensaje (Fork from this message).
Dos detalles importantes:
- El botón de bifurcar solo aparece cuando ese mensaje se puede usar como punto de bifurcación.
- Happier bifurca por número de secuencia (
forkPoint: { type: 'seq', upToSeqInclusive }), así que el punto de bifurcación es estable.
Un pequeño detalle de experiencia que conviene conocer
Si bifurcas sobre un mensaje de usuario ya enviado, Happier lo trata como "rehacer esta instrucción limpiamente":
- bifurca antes del mensaje de usuario
- restaura el texto del mensaje de usuario en el editor de la sesión hija como borrador editable
Así puedes:
- ajustar la redacción
- añadir una restricción que faltaba
- reenviarlo limpiamente
Sin reescribir todo el planteamiento.
(Según la implementación: resolveForkFromMessageSemantics produce restoredDraftText, que luego se escribe en el borrador de la sesión hija.)
Bifurcar desde lo último (ramificar desde ahora)
Si no te importa el punto exacto, bifurcar desde lo último sigue siendo útil.
En la práctica es el movimiento de "empezar ahora un hilo en paralelo".
Qué pasa con el contexto en la sesión hija
Después de bifurcar:
- los mensajes antecesores se ven como contexto de solo lectura
- se inserta una fila separadora ("Bifurcado desde …")
- puedes abrir la sesión padre en el punto de corte
(Según la implementación: los mensajes antecesores se anotan mediante injectForkContextRows y la fila separadora la dibuja ForkDividerRow.)
Qué verás después de bifurcar
En la transcripción hija, Happier inserta una fila separadora:
- "Bifurcado desde …"
- con un botón para abrir la sesión padre en el punto de corte
Por debajo, injectForkContextRows anota los mensajes antecesores como contexto de solo lectura y ForkDividerRow ofrece el enlace profundo para "abrir la sesión padre".
Solución de problemas
No veo el botón "Bifurcar desde este mensaje"
Causas habituales:
- la sesión o el proveedor no permite bifurcar desde un mensaje en esta interfaz
- estás en un tipo de mensaje que no sirve como punto de bifurcación
Si no puedes bifurcar desde un mensaje, bifurca desde lo último (o usa la reproducción o una sesión nueva).
Mi sesión bifurcada parece haber perdido contexto
Normalmente significa que el mecanismo de bifurcación recurrió a la reproducción con menos contexto inicial del que esperabas.
Dos soluciones:
- bifurca antes (incluye más contexto antecesor)
- pide un resumen de punto de control en la sesión padre antes de bifurcar
Quiero rehacer una instrucción, no crear una rama entera
Bifurcar desde un mensaje con el borrador restaurado sirve justo para eso. Bifurca antes del mensaje de usuario, edita el borrador restaurado y reenvíalo.
Preguntas frecuentes
¿Bifurcar borra la sesión original?
No. Bifurcar crea una sesión hija y mantiene intacta la original.
¿Cuándo debería bifurcar en lugar de enviar una corrección?
Si la corrección cambia toda la dirección (o vas a hacer algo arriesgado), bifurca.
Si es una aclaración pequeña, envía un seguimiento y ya está.
Errores habituales
- bifurcar demasiado tarde (en realidad querías un punto anterior)
- bifurcar desde lo último cuando necesitabas bifurcar desde un mensaje
- anunciar una bifurcación sin contar a los compañeros qué ha cambiado