feat(agents): add Gemini CLI, Goose, and Qwen Code providers - #104
Merged
Conversation
Three new agent session providers, each parsing the tool's real on-disk format (verified against local data and the upstream sources, not guessed): - Gemini CLI: ~/.gemini/tmp/<hash>/chats/session-*.json[l], both the current JSONL records (header + user/gemini messages with thoughts and toolCalls, \/\ markers) and the legacy single-JSON form. - Goose: Block/goose sessions.db (SQLite) with sessions + messages tables; content blocks map to text/thinking/toolRequest/toolResponse. - Qwen Code: ~/.qwen/tmp/<hash>/chats/<uuid>.jsonl records carrying cwd per message, so workspace scoping works without extra metadata. Shared plumbing instead of per-provider copies: jsonl::list_chat_recording_sessions walks the tmp/<project>/chats layout shared by Gemini and Qwen (the listing-cache loop is factored into collect_recent_sessions); model::push_parts_blocks maps Gemini-API content parts for both; AgentSessionMeta::fallback_title dedups the title-from-first-user logic. Registry wiring: AgentProvider variants, provider specs, TUI colors and badges, and MCP host registrations (Gemini/Qwen settings.json mcpServers; Goose config.yaml extensions in the ExtensionConfig shape, with per-OS etcetera paths).
Goose MCP servers live in config.yaml under \�xtensions:\ (the ExtensionConfig shape written by \goose configure\), not in .agents plugin manifests — the earlier registration pointed at the wrong file. The Yaml MCP host kind now carries a per-host entry so goose installs the {enabled, type: stdio, cmd, args} entry.
Config and session-db paths follow etcetera's app layout: Windows %APPDATA%\\Block\\goose\\{config,data}, macOS ~/Library/Application Support/Block/goose, Linux ~/.config/goose and ~/.local/share/goose (XDG uses the app name only).
Deploying sivtr with
|
| Latest commit: |
3ad1601
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://ef08bbcd.sivtr.pages.dev |
| Branch Preview URL: | https://feat-agents-providers.sivtr.pages.dev |
mornhussakuyo-hub
requested changes
Aug 9, 2026
mornhussakuyo-hub
left a comment
Collaborator
There was a problem hiding this comment.
Goose 的 Linux 默认 DB 路径好像多了一层 data。上游实际是 $XDG_DATA_HOME/goose/sessions/sessions.db,这里会找成 $XDG_DATA_HOME/goose/data/sessions/sessions.db,本地测了一下会找不到。
Collaborator
|
好像MacOS也有类似问题 |
Collaborator
|
已修复 Goose 在 Linux/macOS 下的默认 XDG 路径,并补了对应的回归测试。Linux 数据库路径现在是 |
mornhussakuyo-hub
approved these changes
Aug 10, 2026
Collaborator
|
已修复 Goose 手工配置示例输出错误, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Add three new agent providers to the registry: Gemini CLI, Goose, and Qwen Code. Each is a
jsonl-based parser plus registry wiring (provider variants, provider specs, TUI colors/badges, and MCP host registrations — Gemini/Qwensettings.jsonmcpServers, Gooseconfig.yamlextensions with per-OS paths).Independent of the group/origin stack (#70-#102): only touches
agents/,commands/system/mcp.rs, and TUI provider colors, so it bases directly onmainand can merge on its own.Main changes
agents/gemini.rs,agents/goose.rs,agents/qwen.rs— newAgentProviderparsers.agents/jsonl.rs— shared jsonl parsing gains what the new formats need.agents/mod.rs/agents/model.rs— registry wiring and provider metadata.commands/system/mcp.rs— MCP host registration for the three CLIs.Validation
main(the touched files are unchanged between the group stack and main, so the commits apply cleanly).