aaif-goose / aaif-goose/goose

Reconcile session extension changes across ACP connections

Aperta
#11,736 0 commenti 0 reazioni 1 assegnatario Rivendicata da @lifeizhou-ap Vedi su GitHub
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.