OpenSymphony 3.0.0 incorpora dos decisiones de enrutamiento independientes. El enrutamiento por project set decide qué repositorio recibe un issue. El enrutamiento ACP decide qué agente local se ejecuta dentro del checkout de ese issue. Los workflows de un solo repositorio y los harnesses OpenHands y Codex siguen disponibles.
Un proyecto, varios repositorios
Un project set central puede conectar un proyecto de Linear con varios repositorios de código. Cada sub-issue terminal lleva exactamente una etiqueta repo:<alias>. Su issue padre se mantiene neutral respecto al repositorio, espera a que los cambios de sus hijos se integren y comprueba el resultado combinado en un workspace de integración separado.
OpenSymphony resuelve el vínculo con el repositorio antes de crear un workspace. El sub-issue recibe un checkout verificado del repositorio seleccionado y la corrida registra las generaciones de configuración e inventario de repositorios. Así, la recuperación no puede mover un issue en curso a otro repositorio sin un cambio explícito del vínculo.
Cuando los pull requests de los sub-issues tienen merges confirmados por el proveedor, el padre prepara worktrees contenidos a partir de las generaciones conservadas. Ejecuta las comprobaciones de integración del project set y puede abrir un pull request de reparación en un repositorio afectado antes de volver a comprobar el resultado combinado. Los task graphs de escritorio y web muestran los vínculos con repositorios y los bloqueos del padre. Run detail muestra la generación del checkout, el estado de integración y la evidencia de reparación.
ACP como harness de producción
OpenSymphony ahora puede iniciar un agente local que implemente Agent Client Protocol v1 mediante un perfil stdio con nombre:
routing:
harness: acp
harness_profile: cursor
El proceso del agente se ejecuta dentro del workspace del issue. OpenSymphony conserva la autoridad sobre scheduling, ciclo de vida del workspace, reintentos y decisiones de operación. El host de sesiones ACP negocia capacidades en vivo, conserva sesiones inactivas compatibles para turnos posteriores, dirige las solicitudes de permisos a la TUI o a los clientes web y desktop, y persiste el estado necesario para una recuperación protegida.
La recuperación usa session/load o session/resume solo cuando el agente anunció ese método. Si un prompt pudo haberse enviado antes de una desconexión, OpenSymphony bloquea la corrida para reconciliarla en lugar de volver a enviarlo. Los modelos, modos, métodos y extensiones de proveedor opcionales proceden de la sesión negociada, no de suposiciones basadas en el nombre del perfil.
ACP y el enrutamiento multirrepositorio se combinan sin depender entre sí. Un perfil ACP puede ejecutar un issue de un solo repositorio o un sub-issue ligado a un repositorio. Un proyecto multirrepositorio también puede seguir usando OpenHands o Codex.
Actualización con una ruta explícita
OpenSymphony 3.0.0 requiere Rust 1.97.1 o una versión posterior. Las instalaciones existentes pueden conservar el enrutamiento legacy_single y su harness actual. Para preparar una configuración central, ejecuta el preflight de migración de solo lectura antes de aplicarla:
opensymphony migrate preflight --repo /path/to/target-repo \
--output /absolute/path/to/config.yaml
opensymphony migrate apply --repo /path/to/target-repo \
--output /absolute/path/to/config.yaml
La migración comienza con la ruta compatible de un solo repositorio. Activa project_set cuando estén listos el inventario de repositorios, el project set, las etiquetas de los issues, las credenciales, los perfiles de revisión y las instrucciones de integración.
Consulta la guía de actualización a 3.0.0 , la guía multirrepositorio y la guía del harness ACP . El código está disponible en el tag v3.0.0 y el paquete en crates.io .