aaif-goose / aaif-goose/goose

Reconcile session extension changes across ACP connections

Offen
#11,736 0 Kommentare 0 Reaktionen 1 zugewiesene Person Beansprucht von @lifeizhou-ap Auf GitHub ansehen
Vorherrschende Sprache
Rust
Sterne
54.2k
Forks
6.2k
Ø Merge
3 T. 4 Std.
Gemergte PRs (30 T.)
240

Beschreibung

**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).

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

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.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
rust
Bereich
ai-infra-agents
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Aktiv
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.