[pull] main from xintaofei:main - #173
Merged
Merged
Conversation
The named-pipe e2e suite builds its DelegationListener by hand, so it has to spell out every arm the constructor takes, and it was still passing six where the work-task reporting arm made seven. Being `#![cfg(windows)]`, the file is cfg'd out of every check run on macOS and Linux, so the mismatch only ever surfaced as an E0061 in the windows desktop cell. It now mirrors its UDS twin: a NoTaskTools stub rejecting both `task_progress` and `task_complete` with "no engine", since neither round-trip drives the task arms, handed to both listener constructions.
Move OpenCode to 1.18.11 (including its six per-platform download URLs), Gemini CLI to 0.53.1, Cline to 3.0.49, CodeBuddy to 2.132.0, Kimi Code to 0.31.1, pi-acp to 0.0.33 and Grok to 0.2.118. Declared `engines.node` is unchanged across every bumped npm package — gemini, pi-acp and grok still say `>=20`, kimi `>=22.19.0`, and cline and codebuddy still declare none — so the existing preflight floors stand. The doc comments that name a pinned release move with them.
claude-agent-acp 0.64.1 (#930, absent from its release notes) adopts the
option-level `_meta.permission = {version, changes[]}` contract codex-acp
already speaks, so Claude permission requests now carry a rendered sentence
per policy change. Option metadata is forwarded verbatim and the parser never
looked at which agent sent it, so those sentences surface with no wiring --
but reading only `description` would mislead. codex writes the duration into
its sentences; Claude keeps it in the structured `lifetime`, and its default
suggestion is session-scoped. An "Always Allow" button over "Allow all Bash
calls" would leave no way to tell a grant that dies with the session from one
about to be written into settings the repo commits.
The parser now normalizes `lifetime` into a single scope token, naming each
persistent destination and degrading an unrecognized one to a plain persistent
warning rather than to silence. An absent or unknown lifetime makes no claim
about duration at all.
The card gains a section listing, per option, what picking it would grant: the
scope as a leading badge, then the agent's own sentence. It sits last in the
scrollable body, directly above the options it describes, which lets the
buttons go back to the compact row they had before any option could spell
itself out -- a grant list inside a filled button turns every option into a
full-width block of small text on the accent colour, and Claude attaches one
to every request.
Also pin claude-agent-acp 0.64.1. Its other change (#938, ExitPlanMode
Markdown as `plan_update`) is inert here: it gates on
`clientCapabilities.plan`, which sacp 11.0.0 cannot express, so plans keep
riding the switch_mode tool call unchanged. Dependencies and the Node floor
match 0.64.0's and `_session/steering` is byte-identical, so the native
steering channel stays disabled.
The whole reorder container was mounted only when the toolbar had a folder selected, because sort_order is per folder and a mixed-folder column has no order it could persist. Dropping a card on In-progress took the same gate even though starting a task needs no order at all, so on the default "all folders" view the column simply did not drag. The container is always mounted now and only the reorder half waits on a folder: without one the cards stay put and nothing is written, while the drop that starts a task works everywhere. That drop was also invisible. The card drags on the y axis while droppedness is judged from the pointer, and the column is a scroll area that would clip a card leaving it either way, so the gesture read as impossible while in fact running. A preview now follows the pointer instead -- portalled to the body, since a fixed element is positioned against the nearest transformed ancestor and the board sits inside several -- offset by the grab point measured at pointerdown, with the card it came from dimmed to a slot. The In-progress column is quiet from the moment a drag starts and loud only while the pointer is actually inside it, where the preview also names what releasing does. A gesture can end without a drop, and both ways it does were unhandled. `pointercancel` reaches the drag's end handler exactly like a release, so a touch drag the system took back would have started the task for real -- a worktree and an agent run. Losing the window with the button held, or the card unmounting because the scheduler claimed the task mid-air, reports no end at all, which stranded the preview on screen and left the click latch swallowing every card open until the next completed drag. Both now abort: the preview, the highlight and the latch come down, the optimistic order is discarded, and a flag keeps a late end callback from mutating anything. The drop itself reads the live row rather than the snapshot the drag started from. Ten locales gain the release-to-start string.
- feat(tasks): **New — the Task Board (beta).** Write down what needs doing and agents work through the list, each in its own copy of the code, so several run at once without disturbing what you're doing. A finished task waits for you to look it over, then merges when you say yes. - feat(automations): **An automation can now file a task instead of starting a session.** A nightly job leaves you a queue to review in the morning, rather than sessions you have to go hunting for. Automations you already saved are unchanged. - feat(automations): **The Automations page has been rebuilt** — one toolbar with folder and on/off filters, list and detail sharing a single panel, and Run now and Edit right under the title. - feat(acp): **Every permission option says what it grants, and for how long.** Before you press anything, each choice spells out what it would allow and whether it lasts for this call, for the session, or gets written into the repository's settings. Claude Code and Codex both. - feat(acp): **Claude Code and Codex need an adapter, and codeg now says so.** They're the only built-in agents whose own CLI doesn't speak codeg's protocol, so having `claude` on your PATH and still reading "Not installed" was baffling. Their settings card now explains the difference — and that both read the same config directory, so there's no second sign-in. - feat(codex): **Codex asks before acting on a plan**, and that request now arrives as a proper plan card instead of an empty one. - fix(codex): **Old Codex conversations read like conversations again.** Recent Codex builds pack a whole turn into a single script, which reopened as one card full of raw output; the commands, patches, reads and searches inside get their own cards back. Live conversations were never affected. - fix(chat): **Tool results without a card of their own are readable now** — a collapsible tree instead of a blob of JSON, with a switch back to raw text. - fix(acp): **A reply that comes back empty tells you why**, instead of one generic line about checking your configuration. - fix(claude): **Typing your own answer to a question keeps working.** - fix(ui): **A dropdown inside a dialog no longer closes the dialog with it.** - chore(acp): **Updated the built-in agents.** Claude Code 0.64.1, Codex 1.1.9, Gemini CLI 0.53.1, OpenCode 1.18.11, Cline 3.0.49, CodeBuddy 2.132.0, Kimi Code 0.31.1, pi 0.0.33 and Grok 0.2.118. ----------------------------- # 发布版本 0.23.0 - 功能(任务):**全新「任务看板」(beta)。** 把要做的事写下来,智能体自己一件件做完。每个任务用一份独立的代码副本,同时跑几个也不会打扰你手头的活。做完了会停下来等你过目,你点了通过它才会合并进来。 - 功能(自动化):**自动化任务除了开启会话,现在也能直接排入一条任务。** 夜里跑的定时任务,留给你的是第二天可以逐条验收的队列,而不是一堆得自己去翻的会话。已保存的自动化任务行为不变。 - 功能(自动化):**自动化页面重做了**——工具栏合并为一条,带文件夹与启用状态筛选;列表与详情合进同一个面板;「立即运行」和「编辑」移到标题下方。 - 功能(智能体):**每个权限选项都会说明它授予什么、管多久。** 在你按下按钮之前,每个选择都会写清楚它允许什么,以及有效期是仅本次、本次会话,还是要写进仓库的配置文件里。Claude Code 与 Codex 都是如此。 - 功能(智能体):**Claude Code 与 Codex 需要适配器,codeg 现在会说明这一点。** 内置智能体里只有这两个的官方 CLI 不支持 codeg 所用的协议,所以此前你 PATH 里明明装着 `claude`,界面却显示「未安装」,让人摸不着头脑。现在设置卡片会解释两者的区别,并说明它们共用同一个配置目录——不需要再登录一次。 - 功能(Codex):**Codex 执行计划前会先征求你的确认**,这个请求现在会显示为一张完整的计划卡片,而不再是一张空卡片。 - 修复(Codex):**旧的 Codex 会话终于又像会话了。** 新版 Codex 会把整个回合打包成一段脚本,重新打开时只看到一张塞满原始输出的卡片;现在里面的命令、补丁、文件读取和搜索会各自恢复成独立卡片。实时会话从来不受影响。 - 修复(聊天):**没有专属卡片的工具结果,现在看得下去了**——可折叠的树状结构取代一坨 JSON,并可随时切回原始文本。 - 修复(智能体):**回复为空时会告诉你原因**,不再只给一句「检查智能体配置」的笼统提示。 - 修复(Claude):**自己输入答案的选项依然可用。** - 修复(界面):**对话框里的下拉菜单不会再把对话框一起关掉。** - 维护(智能体):**更新内置智能体版本。** Claude Code 0.64.1、Codex 1.1.9、Gemini CLI 0.53.1、OpenCode 1.18.11、Cline 3.0.49、CodeBuddy 2.132.0、Kimi Code 0.31.1、pi 0.0.33、Grok 0.2.118。
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )