ACP updates are not broadcast across clients
- Langage dominant
- Rust
- Étoiles
- 54.2k
- Forks
- 6.2k
- Merge moyen
- 3 j 4 h
- PR mergées (30 j)
- 240
Description
### Expected behavior
Multiple ACP clients connected to the same Goose server should receive near-real-time session updates when another client creates or updates a session.
### Observed behavior
ACP updates appear to be scoped to the client that initiated the change. Other connected clients do not receive `session/update` notifications for cross-client session creation or prompts.
### Experiment
We ran two independent ACP clients against `goose serve` over WebSocket:
- Client A initialized, called `session/list`, loaded a session, and waited for notifications.
- Client B initialized, called `session/new`, then sent `session/prompt` to that same session.
Client B received `session/update` events for its own actions, including assistant streaming chunks. Client A received no events after `session/new` and no events during or after Client B’s `session/prompt`.
We observed the same behavior with separate stdio `goose acp` processes.
### Impact
Remote/mobile ACP clients cannot reflect sessions or messages created by another Goose client without polling `session/list` and replaying `session/load`. This makes near-real-time cross-client session sync difficult to implement cleanly.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Examinez l’implémentation du serveur WebSocket dans `goose serve` ainsi que la gestion du protocole ACP pour les mises à jour de session. Cette issue concerne les notifications de diffusion entre les clients connectés. Commencez par trouver où les événements `session/update` sont générés et envoyés, probablement dans un module de gestion des sessions. Vérifiez s’il existe un mécanisme pub/sub central ou un registre des clients. Le cas de test décrit peut être reproduit avec deux processus `goose acp`. 'Done' signifie que les deux clients reçoivent les mises à jour des sessions créées ou modifiées par l’autre.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- rust
- Domaine
- backend, distributed-systems
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 45/100