Reconcile session extension changes across ACP connections
- Lingua principale
- Rust
- Stelle
- 54.2k
- Fork
- 6.2k
- Merge medio
- 3g 4h
- PR unite (30g)
- 240
Descrizione
**Describe the bug**
Separate ACP connections can cache independent in-memory agents for the same durable session. A session extension change made through one connection is persisted, but another already-connected client can continue using its stale extension set.
---
**To Reproduce**
1. Open the same ACP session through two connections.
2. Load the same extension state on both connections.
3. Remove an extension through the first connection.
4. List or call session tools through the second connection.
5. Observe that the second connection still uses the removed extension until its agent is recreated.
---
**Expected behavior**
Once a session extension mutation succeeds, later tool discovery and dispatch on every connection should observe the new durable extension state. The behavior should be consistent in both the legacy and state-machine agent loops.
---
**Please provide the following information**
- **OS & Arch:** All supported server platforms
- **Interface:** ACP / `goose serve`
- **Version:** Current `main`
- **Extensions enabled:** Any session-scoped extension
- **Provider & Model:** Any
---
**Additional context**
The design needs agreement before implementation. Sharing the entire agent manager across connections was previously explored in #11096 and rejected because it also shares connection-specific runtime context, locking, LRU ownership, and mutation behavior.
Possible approaches include a per-session extension-state generation checked before discovery/dispatch, targeted invalidation of cached agents, or a shared session core with explicitly connection-local runtime state. The acceptance criteria should cover direct ACP tool calls, later prompts in both agent loops, concurrent mutation, and in-flight calls.
Do not begin implementation until the issue reaches **Ready** on the [Goose Issues board](https://github.com/orgs/aaif-goose/projects/1).
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Esamina la gestione delle connessioni ACP e il caching degli agenti nella codebase, concentrandoti sulla gestione delle sessioni. Analizza i cicli degli agenti Legacy e State-Machine per capire come vengono caricate e memorizzate nella cache le estensioni. L’obiettivo è progettare un meccanismo, come un controllo della generazione o un’invalidazione mirata, che garantisca che tutte le connessioni vedano lo stato aggiornato delle estensioni dopo una mutazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rust
- Ambito
- ai-infra-agents
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Attiva
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100