aaif-goose / aaif-goose/goose

Per-chat backends

Abierto
#11,335 1 comentario 0 reacciones 1 asignado Reclamado por @alexhancock Ver en GitHub
Lenguaje dominante
Rust
Estrellas
54.2k
Forks
6.2k
Merge medio
3 d 4 h
PR fusionados (30 d)
240

Descripción

**What problem would this solve?**
Currently in the Goose desktop app, the backend (either local or ACP-compatible remote) is globally applied to all of the chats in a window. This makes it difficult to multitask when you want to connect to different servers or have a mix of remote and local backends in simultaneous chat sessions. Ostensibly this can be achieved by configuring the setting per window but (a) that's annoying / not ergonomic because it forces you to rely on window management to jump between chats rather than the built-in chat management and (b) in my limited testing it didn't work -- the second window wouldn't load chats.

**What would a good outcome look like?**
The backend would be configurable per chat rather than per window, the way that model and directory are set per chat. This is how the Claude desktop app functions fwiw.

**Possible approaches**
I'm not familiar with the codebase but here's some initial direction from an agent:

> Today the backend is global because it's the ACP connection itself: the desktop picks one backend per window (local goose serve or the single external host), and every session in that window talks over one shared connection. Model and directory are already per-chat because they're session-scoped state on the server.

> The approach is to make the backend a per-chat routing attribute: model backends as first-class profiles, give each one its own ACP connection (replacing the current singleton), and scope all session operations to a backendId. The UI selector is the easy part — the real work is threading backend id through every session call and handling per-connection recovery and notification routing.

**Additional context**
N/A

- [x] I have verified this does not duplicate an existing feature request

Do not begin implementation until the issue reaches **Ready** on the [Goose Issues board](https://github.com/orgs/aaif-goose/projects/1).

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

El issue describe pasar de una conexión ACP global por ventana a perfiles de backend por chat. Empieza examinando el singleton actual de conexión ACP y el código de gestión de sessions. Busca dónde model y directory tienen scope por chat, ya que backendId necesitará un threading similar. Los cambios del selector de UI se señalan como más fáciles, pero el trabajo central implica enrutar cada operación de session con un backendId y manejar la recuperación por conexión.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
rust
Área
backend-api-design, desktop
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Activo
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.