Commit Graph

684 Commits

Author SHA1 Message Date
xintaofei
0e60216345 chore(acp): bump claude-agent-acp to 0.29.2, opencode to 1.4.11, gemini-cli to 0.38.2, openclaw to 2026.4.15 and cline to 2.15.0 2026-04-18 11:08:52 +08:00
xintaofei
fd10494128 feat(web-service): allow custom access token with persisted port and localized start errors
- Persist user-supplied access token and last-used port in app_metadata, falling back to defaults when unset
- Atomically guard concurrent starts via compare_exchange with RAII rollback of the running flag
- Wrap token and port persistence in a single SeaORM transaction to prevent partial writes
- Classify bind errors (port in use, permission denied, address unavailable, invalid address) into stable i18n keys
- Localize start-failure messages across all 10 supported languages
2026-04-18 10:18:34 +08:00
xintaofei
32b4c88582 feat(conversation): add copy text context menu action with preserved selection 2026-04-17 23:20:01 +08:00
xintaofei
e86682dc66 chore(acp): bump claude-agent-acp to 0.29.1 and opencode to 1.4.8 2026-04-17 22:36:12 +08:00
xintaofei
5bb4c1cb1e feat(chat-channel): annotate Weixin channel badge with iLink reconnect hint tooltip 2026-04-17 21:52:43 +08:00
xintaofei
9abb85b8ee fix(chat-channel): detect Weixin auth failure via errcode during connect verification 2026-04-17 21:09:31 +08:00
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
xintaofei
aedf94c4a0 fix(ui): suppress streaming Agent partial content to avoid duplicate prompt display 2026-04-17 14:40:12 +08:00
xintaofei
7a92f3eef7 fix(acp): clear Claude API retry banner when streaming content resumes 2026-04-17 14:27:39 +08:00
xintaofei
3e30ab7d60 fix(parser): harden Agent subagent state machine, file matching, query performance and streaming child grouping
- Codex: decouple active_agent_count decrement from close_agent target
  parsing and reset counter on turn_context to prevent main assistant
  messages from being swallowed when close_agent events are malformed
- Codex: use exact filename match with separator-aware fallback and
  sorted candidates for deterministic subagent session file resolution
- Codex/OpenCode: truncate subagent tool call previews to 500 chars
- OpenCode: batch-load all subagent tool calls in a single SQL query
  instead of per-task N+1 queries to avoid slow detail page loads
- Streaming: restrict positional child grouping fallback to in-progress
  agents only, preventing top-level tool calls from being incorrectly
  folded into completed Agent cards
- Tests: update Claude context window assertions to match 1M default
2026-04-17 09:38:52 +08:00
xintaofei
73a910bb62 fix(ui): clean streaming Agent result output by unwrapping JSON and stripping task_id prefix
Refactor cleanAgentOutput to a sequential non-recursive pipeline: unwrap
JSON containers first, then strip task_id session lines, then extract
<task_result> content. Also apply cleaning to in-progress agent output
during streaming, not just completed results.
2026-04-17 09:12:54 +08:00
xintaofei
4f41a217c4 feat(settings): add xhigh reasoning effort level and update Claude Code model placeholders to claude-opus-4.7 2026-04-17 08:31:38 +08:00
xintaofei
834340e536 feat(acp): forward meta/locations fields and use parentToolUseId for precise Agent child grouping
Forward the previously-dropped `locations` and `meta` fields from ACP
SDK ToolCall/ToolCallUpdate events through to the frontend. The meta
field carries `claudeCode.parentToolUseId` which enables precise
parent-child matching for concurrent Agent tool calls during streaming.

- Forward locations/meta in Rust AcpEvent types and connection handlers
- Use parentToolUseId for exact agent→child mapping, with position-based
  fallback for agents that don't provide it (Codex, OpenCode)
- Replace `any` types with proper ToolCallMeta / unknown types
- Add runtime guards for meta field parsing (defensive against
  unexpected shapes from different agents)
- Cache inferLiveToolName results per tool_call_id to avoid redundant
  computation across Phase 1 and Phase 2
- Lazy-construct agentStats only when children exist
2026-04-17 08:24:12 +08:00
xintaofei
6763814a92 chore(acp): bump claude-agent-acp to 0.29.0 and gemini-cli to 0.38.1 2026-04-17 01:28:58 +08:00
xintaofei
4189aa04de feat(ui): render streaming Agent tool calls as Agent cards with nested child grouping
Support Agent card rendering during live streaming responses for Claude
Code, Codex CLI, and OpenCode. Previously Agent cards only rendered for
loaded/historical messages parsed from the DB.

- Fix tool name inference: subagent_type in input now returns "agent"
  instead of "task"; add spawn_agent/wait_agent/close_agent aliases
- Group sub-agent tool calls inside parent Agent cards during streaming
  using position-based heuristic (ACP SDK lacks parent_id tracking)
- Clean raw Agent output (JSON content blocks, XML task_result wrappers)
- Emit agent_stats with nested tool calls so AgentToolCallPart renders
  child execution inline, matching the loaded message appearance
2026-04-17 01:28:13 +08:00
xintaofei
488b0c2e53 feat(parser): render OpenCode task as Agent cards with nested tool calls
Transform OpenCode "task" tool calls with subagent_type into unified
Agent card display: rewrite as "Agent" tool with subagent_type, prompt,
description, and model; compute duration from time fields; query
sub-agent session parts from SQLite for nested tool call lists; extract
<task_result> content to strip preamble noise from agent output; guard
Streamdown code plugin against unsupported Shiki language identifiers
(e.g. "##", "function") in fenced code blocks from tool output.
2026-04-17 00:06:57 +08:00
xintaofei
68142651b3 feat(parser): render Codex CLI spawn_agent as Agent cards with nested tool calls
Transform Codex spawn_agent/wait_agent/close_agent into unified Agent
card display: rewrite spawn_agent as "Agent" tool with subagent_type,
prompt, and description; correlate final results from wait_agent and
close_agent outputs; parse sub-agent session JSONL files for nested
tool call lists; suppress intermediate status messages during agent
execution; clean exec_command output to show only the command and its
result.
2026-04-16 22:52:09 +08:00
xintaofei
e36ba36222 fix(ui): render Agent prompt as markdown and add max height to expanded card body 2026-04-16 21:57:58 +08:00
xintaofei
4c36da8ece fix(ui): prevent duplicate error display in Agent subagent card 2026-04-16 21:48:55 +08:00
xintaofei
9f82fdf350 feat(ui): add dedicated Agent subagent rendering with nested tool call display
Render Agent/Explore/Plan tool calls in a visually distinct collapsible
container with colored left border, replacing the generic tool card. Parse
subagent JSONL transcripts from {sessionId}/subagents/ to extract and
display the actual tool calls (Bash, Read, Grep, etc.) the subagent
executed, reusing the existing ToolCallPart for consistent appearance.

- Add AgentToolCallPart component with collapsible body, prompt section,
  execution stats, and nested tool call list via render prop injection
- Add AgentExecutionStats and AgentToolCall types (Rust + TypeScript)
- Parse toolUseResult.agentId to locate and read subagent JSONL files
- Validate agentId against path traversal before filesystem access
- Pass agentStats through adapter for both ID-matched and positional
  tool result pairing
- Strip agentStats in nested render to prevent recursive Agent expansion
- Add i18n keys for agent UI labels across all 10 languages
2026-04-16 21:32:25 +08:00
xintaofei
ffdc0019fc fix(ui): replace Codex icon to remove opaque white background
The upstream Codex.Color icon from @lobehub/icons renders an SVG with a
white background rectangle, which appears as a white square on dark
backgrounds. Replace it with a custom CodexColorIcon that renders only
the logo path with its original gradient fill, and adjust the viewBox to
better fit the content area.
2026-04-16 18:03:51 +08:00
xintaofei
3ebb18bdac # Release version 0.8.9
- feat(process): comprehensive cross-platform Node.js path discovery, supporting 9 version managers (nvm, nvm-windows, fnm, volta, asdf, mise, n, Homebrew, Scoop) across macOS, Linux, and Windows for reliable agent preflight.
- fix(process): use semver-aware sorting for Node.js version selection to prevent older versions being chosen over newer ones (e.g. v20.9 incorrectly ranked above v20.11).
- fix(process): harden Node.js path discovery for production readiness with improved error handling and edge-case resilience.
- fix(settings): remove ineffective max reasoning effort level for Claude Code.
- fix(ci): replace softprops/action-gh-release with gh CLI for server asset upload.
- fix(windows): improve fnm Node path discovery with correct platform-specific default directories. (thanks @Kwensiu, #75)

-----------------------------
# 发布版本 0.8.9

- 功能(进程):全面的跨平台 Node.js 路径发现,支持 9 种版本管理器(nvm、nvm-windows、fnm、volta、asdf、mise、n、Homebrew、Scoop),覆盖 macOS、Linux 和 Windows,确保代理预检可靠找到 Node.js;
- 修复(进程):使用语义化版本排序选择 Node.js 版本,避免旧版本被错误优先选择(如 v20.9 被排在 v20.11 之前);
- 修复(进程):增强 Node.js 路径发现的生产环境健壮性,改进错误处理和边界情况适应能力;
- 修复(设置):移除 Claude Code 中无效的最大推理力度级别选项;
- 修复(CI):将服务器产物上传从 softprops/action-gh-release 替换为 gh CLI;
- 修复(Windows):改进 fnm Node 路径发现,使用正确的平台特定默认目录。(感谢 @Kwensiu,#75)
2026-04-16 13:01:54 +08:00
xintaofei
17f4ee88e8 fix(process): use semver-aware sorting for Node.js version selection
Replace lexicographic sort with numeric (major, minor, patch) sort
across all 7 version-directory sort sites in find_node_bin_dir.

Lexicographic sort incorrectly orders v20.9 > v20.11 (because '9' > '1')
which could select an older Node.js version and cause agent preflight
failures for version-gated agents like OpenClaw (requires >=22.12.0).
2026-04-16 12:48:21 +08:00
xintaofei
045411b8d0 fix(process): harden Node.js path discovery for production readiness
- Fix thread safety: replace #[tokio::main] in codeg_server with manual
  runtime construction so set_var runs before any worker threads exist
- Fix nvm alias branch: sort matched candidates (read_dir order is
  undefined) and skip non-numeric aliases like lts/* that cannot be
  resolved without full nvm evaluation
- Fix HOME missing: accept Option<&Path> for home so env-var-only
  discovery (NVM_HOME, VOLTA_HOME, FNM_DIR, etc.) still works in
  Docker / systemd environments without HOME set
- Refactor resolve_dir to accept an env var chain, eliminating all
  inline Option chains for fnm, nvm-windows, mise, and scoop
2026-04-16 11:27:35 +08:00
xintaofei
9adff116ee feat(process): comprehensive cross-platform Node.js path discovery
Expand find_node_bin_dir to support 9 version managers / installation
methods across macOS, Linux, and Windows:

- nvm (Unix): fix alias duplicate candidates, skip symbolic aliases
  like lts/* that cannot be resolved without full nvm evaluation
- nvm-windows: detect via %NVM_SYMLINK% and %NVM_HOME% with correct
  directory layout (node.exe directly in version dir, no bin/)
- fnm: use platform-correct defaults (%APPDATA%/fnm on Windows,
  $XDG_DATA_HOME/fnm on Unix) instead of hardcoded Unix path
- volta: validate that a concrete Node image exists before adding
  the shim directory, preventing cryptic errors when volta is
  installed but no Node version has been set
- asdf (Unix): $ASDF_DATA_DIR or ~/.asdf/installs/nodejs/
- mise/rtx (cross-platform): $MISE_DATA_DIR with XDG fallback
- n (Unix): $N_PREFIX or /usr/local/n/versions/node/
- Homebrew (macOS): /opt/homebrew and /usr/local prefixes
- Scoop (Windows): nodejs-lts and nodejs app detection

Also improve production readiness:
- Document thread-safety requirements for set_var (unsafe in ed. 2024)
- Add warning log when HOME is unset (Docker / minimal containers)
- Clarify FNM_MULTISHELL_PATH scope (server binary only, not GUI)
- Note lexicographic sort limitation for semver edge cases
2026-04-16 11:06:33 +08:00
XinTaoFei
7a6a9d1615 Merge pull request #75 from Kwensiu/fix/windows-acp-node-detection
fix(windows): improve Node and npm detection for ACP agents
2026-04-16 10:44:25 +08:00
xintaofei
4abc198f44 Merge remote-tracking branch 'origin/main' 2026-04-16 09:40:31 +08:00
xintaofei
04eff14c0d fix(settings): remove ineffective max reasoning effort level for Claude Code
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 09:39:47 +08:00
xintaofei
3b331b15a4 fix(ci): replace softprops/action-gh-release with gh CLI for server asset upload
softprops/action-gh-release defaults draft to false, which publishes
the release prematurely before the publish-release job runs. Switch to
gh release upload which only uploads assets without modifying release
state, avoiding both the premature publish and the duplicate draft
release issues caused by the GitHub API not returning drafts via
getReleaseByTag.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 00:55:18 +08:00
Kwensiu
2f59d900fb fix(windows): improve fnm Node path discovery 2026-04-16 00:45:15 +08:00
xintaofei
8d0b0a2985 # Release version 0.8.8
- feat(settings): add ChatGPT OAuth device code login for Codex CLI, allowing users to log in with their ChatGPT account directly from the agent settings page without leaving the app.
- feat(chat): stream partial tool output during live agent response so running tools (e.g. bash stdout) render in real time instead of appearing blank until completion.
- fix(ui): sharpen dialog rendering with flex centering and stronger ring to eliminate subpixel blur on non-retina displays.
- chore(acp): bump bundled agent versions in registry.

-----------------------------
# 发布版本 0.8.8

- 功能(设置):为 Codex CLI 新增 ChatGPT OAuth 设备码登录,用户可直接在代理设置页面使用 ChatGPT 账号登录,无需切换到终端操作;
- 功能(聊天):实时流式显示工具执行中的部分输出(如 Bash 标准输出),不再等到工具完成后才渲染内容;
- 修复(界面):优化对话框渲染,使用 flex 居中替代 translate 居中并加强边框环,消除非 Retina 屏幕上的亚像素模糊问题;
- 维护(ACP):更新注册表中内置代理的版本号。
2026-04-16 00:33:10 +08:00
xintaofei
d163e42457 feat(settings): add ChatGPT OAuth device code login for Codex CLI
Add OAuth device code flow for Codex CLI official subscription auth,
allowing users to log in with their ChatGPT account directly from the
agent settings page without using the terminal.

- Backend: two new endpoints (codex_request_device_code, codex_poll_device_code)
  that handle the OpenAI OAuth device code flow and return tokens to frontend
- Frontend: login UI with verification URL, copyable user code, polling status,
  15-minute timeout, and auto-save via existing persistEnv/persistConfig path
- Auth.json written in Codex CLI compatible format (nested tokens, account_id,
  last_refresh) so codex-acp can use OAuth tokens directly
- Show logged-in status and re-login option when tokens are present
- Remove auth.json textarea from Codex settings UI
- i18n: all 10 languages updated with new login-related keys
2026-04-16 00:29:01 +08:00
xintaofei
7524613439 fix(ui): sharpen dialog rendering with flex centering and stronger ring
Replace translate-based centering with a grid place-items-center wrapper
to eliminate half-pixel subpixel blur on non-retina displays. Strengthen
the content border by switching from ring-foreground/5 to ring-border
and adding shadow-2xl for a clearer visual boundary.
2026-04-15 20:53:04 +08:00
xintaofei
e9dd0db6e8 chore(acp): bump bundled agent versions in registry 2026-04-15 19:24:13 +08:00
xintaofei
2cec462594 feat(chat): stream partial tool output during live agent response
Live tool calls that produce output while running (e.g. streaming bash
stdout from Codex) now render their partial output in real time instead
of appearing blank until the tool completes. The tool card keeps its
running visual state — spinner and 24KB tail truncation — while chunks
arrive, and transitions to the completed state once the final status
lands. A WeakMap keyed on the ACP reducer's chunks-array identity
memoizes the joined output so repeated renders don't re-run O(n) string
concatenation.
2026-04-15 19:16:50 +08:00
xintaofei
189399e5cf ci(release): use softprops/action-gh-release for server asset upload
Switches the build-server upload steps from the deprecated
actions/upload-release-asset@v1 to softprops/action-gh-release@v2,
which resolves intermittent socket hang up failures when attaching
release assets. Drops the now-unused upload_url output from the
create-draft-release job.
2026-04-15 17:20:31 +08:00
xintaofei
d81d76443d # Release version 0.8.7
- feat(skills): support folder-scoped skills in agent sessions so workflows defined in a project folder can be invoked directly from chat.
- feat(folder): add "Add to session" actions in the file changes menus to quickly reference modified files from the chat input.
- feat(folder): add a commit reset action in the Git log panel for rolling back to a selected commit.
- fix(folder): prevent the branch submenu from being clipped inside scroll areas.
- feat(settings): add a reasoning effort level option for Claude Code.
- feat(settings): add an Enable Fast toggle for the Codex service tier.
- feat(settings): use overlay scrollbars for sub-page scroll areas to keep the layout stable.
- fix(acp): stop stripping the auto config option for Claude Code so the chosen value is preserved.

-----------------------------
# 发布版本 0.8.7

- 功能(技能):支持在代理会话中使用文件夹级别的技能,使项目目录内定义的工作流可直接在聊天中调用;
- 功能(文件夹):在文件变更菜单中新增"加入会话"操作,便于快速将修改的文件引用到聊天输入;
- 功能(文件夹):在 Git 日志面板中新增提交回滚(reset)操作,可一键回退到所选提交;
- 修复(文件夹):避免分支子菜单在滚动区域内被裁剪;
- 功能(设置):为 Claude Code 增加推理强度(reasoning effort)等级选项;
- 功能(设置):为 Codex 服务档位增加 Enable Fast 开关;
- 功能(设置):子页面滚动区域改用覆盖式滚动条,避免布局抖动;
- 修复(ACP):不再丢弃 Claude Code 的 auto 配置项,保留用户所选的配置值。
2026-04-15 16:58:12 +08:00
xintaofei
f9010634ff fix(acp): stop stripping auto config option for Claude Code
Claude Code SDK now supports the "auto" permission mode, so the
filtering that hid it from the selector and silently dropped attempts
to set it is no longer needed.
2026-04-15 16:54:04 +08:00
xintaofei
2da2378ae3 feat(settings): add reasoning effort level for Claude Code
Add an Effort Level dropdown under the Claude Code model inputs with
options Low / Medium / High / Max (Opus only). The selection writes an
"effortLevel" key at the root of the Claude Code config JSON, and is
removed when the default is chosen. Manual edits to the native JSON
textarea stay in sync with the dropdown.
2026-04-15 16:38:39 +08:00
xintaofei
503b149d03 feat(settings): use overlay scrollbars for sub-page scroll areas 2026-04-15 15:54:22 +08:00
xintaofei
b46db2f1a1 feat(settings): add Enable Fast toggle for Codex service tier 2026-04-15 15:29:17 +08:00
xintaofei
a6f80088d0 feat(skills): support folder-scoped skills in agent sessions
- Thread workspace path through useAgentSkills so Codex $-autocomplete
  surfaces folder-local skills in addition to global ones; cache keyed
  by agent + workspace and invalidated per key on focus.
- Add Global/Folder scope tabs and a folder picker (sourced from the
  folder table via loadFolderHistory) to the Skills settings page.
  CRUD for skills now operates against the selected scope and folder.
- Default the settings right panel to a placeholder hint; the new-skill
  form only appears after clicking "New Skill" or selecting an existing
  skill. Search input is hidden in folder scope.
- Disable "New Skill" when folder scope has no folder chosen; show a
  pick-folder hint in the path preview for that state.
- Add scope/noSelectionHint/pickFolderHint strings across 10 locales.
2026-04-15 14:56:53 +08:00
xintaofei
3148966371 fix(folder): prevent branch submenu from being clipped in scroll area 2026-04-15 13:18:10 +08:00
xintaofei
f3630ba48a feat(folder): add commit reset action in git log
Add a "Reset to Here" context action for git log commit items in the folder page.

Show a reset dialog with branch, target commit, commit message, and reset mode details for soft, mixed, hard, and keep.

Disable reset when viewing a non-current branch filter and keep the action ordering under commit diff.

Add git_reset support across Rust commands, Tauri invoke registration, web handlers/routes, and frontend API/type bindings.

Add localized reset labels, mode descriptions, and toast messages across all supported languages.
2026-04-15 11:14:37 +08:00
xintaofei
66549ce2f7 feat(folder): add Add to session actions in changes menus
Add the Add to session context action for tracked and untracked nodes in the Changes panel, including root, directory, and file entries.

Reorder Changes context actions so Add to session is placed below View diff, and Rollback is placed below Add to VCS.

Update attachToCurrentSession translations to the Add to session wording across all supported locales.
2026-04-15 09:54:07 +08:00
xintaofei
11b6a4f051 # Release version 0.8.6
- feat(folder): improve folder workspace stability by unifying state streaming for the file tree and Git panels.
- fix(folder): prevent stale file-watch subscriptions in aux panels and keep mobile sidebars closed on initial load.
- fix(folder): add conversation actions to the sidebar blank-space context menu and align the file workspace tab bar height.
- feat(acp): send a system notification when an agent requests permission approval while the app window is not visible.
- feat(acp): surface Claude API retry status in the chat input with localized progress and error details.
- perf(chat): reduce unnecessary rerenders in the conversation input area.
- fix(windows,linux): reduce the white flash when opening the window in dark mode.

-----------------------------
# 发布版本 0.8.6

- 功能(文件夹):统一文件树与 Git 面板的状态流,提升文件夹工作区的更新一致性和整体稳定性;
- 修复(文件夹):避免辅助面板出现陈旧的文件监听订阅,并防止移动端首次进入时侧边栏自动展开;
- 修复(文件夹):为空白区域的会话侧边栏补充右键操作,并对齐文件工作区标签栏高度;
- 功能(ACP):当应用窗口不可见且代理发起权限审批请求时,发送系统通知;
- 功能(ACP):在聊天输入区展示 Claude API 重试状态,并提供本地化的重试进度与错误信息;
- 性能(聊天):减少会话输入区域的不必要重复渲染;
- 修复(Windows/Linux):降低深色模式下窗口打开时的白屏闪烁。
2026-04-14 23:39:04 +08:00
xintaofei
98fc75e585 fix(folder): add sidebar blank-space conversation actions 2026-04-14 23:09:28 +08:00
xintaofei
570b142e44 fix(folder): align file workspace tab bar height 2026-04-14 22:44:27 +08:00
xintaofei
0557eab154 refactor(folder): remove workspace debug logging from aux panels 2026-04-14 22:39:57 +08:00
xintaofei
b5e8fd8acb feat(folder): unify workspace state streaming for tree and git panels
Introduce a shared workspace-state backend stream with snapshot/delta APIs for file tree and git changes.

Migrate both aux panels to a common frontend workspace store with lifecycle-safe stream handling.

Apply batched watch throttling, path-aware git refresh gating, no-op delta suppression, and bounded history compaction to improve runtime stability.
2026-04-14 22:26:36 +08:00