aaif-goose / aaif-goose/goose

Per-chat backends

Đang mở
#11,335 1 bình luận 0 reaction 1 người được giao Được @alexhancock nhận Xem trên GitHub
Ngôn ngữ chính
Rust
Star
54.2k
Fork
6.2k
Merge trung bình
3 ngày 4 giờ
Pull request đã merge (30 ngày)
240

Mô tả

**What problem would this solve?**
Currently in the Goose desktop app, the backend (either local or ACP-compatible remote) is globally applied to all of the chats in a window. This makes it difficult to multitask when you want to connect to different servers or have a mix of remote and local backends in simultaneous chat sessions. Ostensibly this can be achieved by configuring the setting per window but (a) that's annoying / not ergonomic because it forces you to rely on window management to jump between chats rather than the built-in chat management and (b) in my limited testing it didn't work -- the second window wouldn't load chats.

**What would a good outcome look like?**
The backend would be configurable per chat rather than per window, the way that model and directory are set per chat. This is how the Claude desktop app functions fwiw.

**Possible approaches**
I'm not familiar with the codebase but here's some initial direction from an agent:

> Today the backend is global because it's the ACP connection itself: the desktop picks one backend per window (local goose serve or the single external host), and every session in that window talks over one shared connection. Model and directory are already per-chat because they're session-scoped state on the server.

> The approach is to make the backend a per-chat routing attribute: model backends as first-class profiles, give each one its own ACP connection (replacing the current singleton), and scope all session operations to a backendId. The UI selector is the easy part — the real work is threading backend id through every session call and handling per-connection recovery and notification routing.

**Additional context**
N/A

- [x] I have verified this does not duplicate an existing feature request

Do not begin implementation until the issue reaches **Ready** on the [Goose Issues board](https://github.com/orgs/aaif-goose/projects/1).

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Issue mô tả việc chuyển từ một kết nối ACP global cho mỗi window sang các backend profile cho từng chat. Bắt đầu bằng cách xem xét singleton kết nối ACP hiện tại và code quản lý session. Tìm nơi model và directory được scope theo từng chat, vì backendId sẽ cần được luồng qua tương tự. Các thay đổi ở UI selector được ghi nhận là dễ hơn, nhưng phần việc cốt lõi liên quan đến việc route mọi thao tác session với một backendId và xử lý recovery theo từng connection.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
rust
Lĩnh vực
backend-api-design, desktop
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.