Reconcile session extension changes across ACP connections
- Lenguaje dominante
- Rust
- Estrellas
- 54.2k
- Forks
- 6.2k
- Merge medio
- 3 d 4 h
- PR fusionados (30 d)
- 240
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
Línea de trabajo
Review the ACP connection handling and agent caching in the codebase, focusing on session management. Examine the legacy and state-machine agent loops to understand how extensions are loaded and cached. The goal is to design a mechanism, such as a generation check or targeted invalidation, that ensures all connections see updated extension state after a mutation.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- rust
- Área
- ai-infra-agents
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Activo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100