Files
codeg/src-tauri/Cargo.toml
xintaofei 0b102f0120 # Release version 0.9.0
- feat(ui): add dedicated Agent subagent rendering with nested tool call display, showing parent Agent prompts and child tool invocations as hierarchical cards.
- feat(parser): render Codex CLI spawn_agent and OpenCode task as Agent cards with nested tool calls, unifying subagent visualization across agents.
- feat(acp): forward meta/locations fields and use parentToolUseId for precise Agent child grouping in Claude ACP streams.
- feat(ui): render streaming Agent tool calls as Agent cards with nested child grouping during live responses.
- feat(settings): add xhigh reasoning effort level and update Claude Code model placeholders to claude-opus-4.7.
- fix(parser): harden Agent subagent state machine, file matching, query performance and streaming child grouping.
- fix(ui): suppress streaming Agent partial content to avoid duplicate prompt display.
- fix(ui): clean streaming Agent result output by unwrapping JSON and stripping task_id prefix.
- fix(ui): render Agent prompt as markdown and add max height to expanded card body.
- fix(ui): prevent duplicate error display in Agent subagent card.
- fix(ui): replace Codex icon to remove opaque white background.
- fix(acp): clear Claude API retry banner when streaming content resumes.
- chore(acp): bump claude-agent-acp to 0.29.0 and gemini-cli to 0.38.1.

Known issues:
- Codex CLI and Gemini CLI subagent execution cannot be rendered in streaming mode; nested tool calls only appear after the subagent finishes.

-----------------------------
# 发布版本 0.9.0

- 功能(UI):新增专用的 Agent 子代理渲染,以层级卡片形式展示父 Agent 提示词与子工具调用的嵌套关系;
- 功能(解析器):将 Codex CLI 的 spawn_agent 和 OpenCode 的 task 渲染为 Agent 卡片并嵌套子工具调用,统一各代理的子代理可视化;
- 功能(ACP):转发 meta/locations 字段并通过 parentToolUseId 精确分组 Claude ACP 流中的 Agent 子项;
- 功能(UI):在实时响应过程中将流式 Agent 工具调用渲染为带嵌套子项分组的 Agent 卡片;
- 功能(设置):新增 xhigh 推理力度级别,并将 Claude Code 模型占位符更新为 claude-opus-4.7;
- 修复(解析器):增强 Agent 子代理状态机、文件匹配、查询性能与流式子项分组的稳定性;
- 修复(UI):抑制流式 Agent 的部分内容输出,避免提示词重复显示;
- 修复(UI):清理流式 Agent 结果输出,解包 JSON 并去除 task_id 前缀;
- 修复(UI):将 Agent 提示词按 Markdown 渲染,并为展开卡片主体设置最大高度;
- 修复(UI):修复 Agent 子代理卡片中错误信息重复显示的问题;
- 修复(UI):替换 Codex 图标,去除不透明的白色背景;
- 修复(ACP):当流式内容恢复时清除 Claude API 重试提示横幅;
- 杂项(ACP):升级 claude-agent-acp 到 0.29.0,升级 gemini-cli 到 0.38.1。

已知问题:
- Codex CLI 和 Gemini CLI 的子代理执行过程暂不支持流式渲染,嵌套工具调用仅在子代理执行结束后显示。
2026-04-17 14:48:22 +08:00

105 lines
3.3 KiB
TOML

[package]
name = "codeg"
version = "0.9.0"
description = "Agent Code Generation App"
authors = ["feitao"]
edition = "2021"
default-run = "codeg"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[lib]
# The `_lib` suffix may seem redundant but it is necessary
# to make the lib name unique and wouldn't conflict with the bin name.
# This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519
name = "codeg_lib"
crate-type = ["staticlib", "cdylib", "rlib"]
[features]
default = ["tauri-runtime"]
tauri-runtime = [
"dep:tauri",
"dep:tauri-plugin-opener",
"dep:tauri-plugin-dialog",
"dep:fix-path-env",
"dep:tauri-build",
"dep:tauri-plugin-window-state",
"dep:tauri-plugin-updater",
"dep:tauri-plugin-process",
"dep:tauri-plugin-notification",
"dep:keyring",
]
[[bin]]
name = "codeg"
path = "src/main.rs"
[[bin]]
name = "codeg-server"
path = "src/bin/codeg_server.rs"
required-features = []
[build-dependencies]
tauri-build = { version = "2", features = [], optional = true }
[dependencies]
tauri = { version = "2", features = [], optional = true }
tauri-plugin-opener = { version = "2", optional = true }
tauri-plugin-dialog = { version = "2", optional = true }
async-trait = "0.1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
chrono = { version = "0.4", features = ["serde"] }
thiserror = "2"
dirs = "6"
walkdir = "2"
sacp = "11.0.0"
sacp-tokio = "11.0.0"
tokio = { version = "1", features = ["process", "io-util", "sync", "macros", "rt", "net", "rt-multi-thread"] }
uuid = { version = "1", features = ["v4"] }
futures = "0.3"
reqwest = { version = "0.12", features = ["stream", "json"] }
flate2 = "1"
bzip2 = "0.5"
tar = "0.4"
zip = "2"
regex = "1"
portable-pty = "0.8"
urlencoding = "2"
fix-path-env = { git = "https://github.com/tauri-apps/fix-path-env-rs", version = "0.0.0", optional = true }
sea-orm = { version = "1.1", features = ["sqlx-sqlite", "runtime-tokio-rustls", "macros"] }
sea-orm-migration = { version = "1.1", features = ["sqlx-sqlite", "runtime-tokio-rustls"] }
toml = "0.8"
notify = "6"
base64 = "0.22"
agent-client-protocol-schema = { version = "0.11", features = ["unstable_session_usage", "unstable_session_fork"] }
kill_tree = { version = "0.2", features = ["tokio"] }
which = "7"
keyring = { version = "3", features = ["apple-native", "windows-native", "sync-secret-service"], optional = true }
axum = { version = "0.8", features = ["ws"] }
tower-http = { version = "0.6", features = ["fs", "cors"] }
tokio-tungstenite = { version = "0.26", features = ["native-tls"] }
futures-util = "0.3"
prost = "0.13"
rand = "0.8"
qrcode = "0.14"
image = { version = "0.25", default-features = false, features = ["png"] }
include_dir = "0.7"
sha2 = "0.10"
[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies]
tauri-plugin-window-state = { version = "2", optional = true }
tauri-plugin-updater = { version = "2", optional = true }
tauri-plugin-process = { version = "2", optional = true }
tauri-plugin-notification = { version = "2", optional = true }
[target.'cfg(target_os = "macos")'.dependencies]
mac-notification-sys = "0.6"
[target.'cfg(target_os = "windows")'.dependencies]
windows-sys = { version = "0.59", features = ["Win32_Storage_FileSystem"] }
junction = "1"
[patch.crates-io]
sacp-tokio = { path = "vendor/sacp-tokio" }