Reconcile session extension changes across ACP connections
- Lenguaje dominante
- Rust
- Estrellas
- 54.2k
- Forks
- 6.2k
- Merge medio
- 3 d 2 h
- PR fusionados (30 d)
- 262
Descripción
**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).
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.