Skip to content

[pull] main from xintaofei:main - #170

Merged
pull[bot] merged 3 commits into
MoozLee:mainfrom
xintaofei:main
Jul 30, 2026
Merged

[pull] main from xintaofei:main#170
pull[bot] merged 3 commits into
MoozLee:mainfrom
xintaofei:main

Conversation

@pull

@pull pull Bot commented Jul 30, 2026

Copy link
Copy Markdown

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 : )

A command Grok runs in the background showed nothing of what it did. Its
launch is acknowledged with a task id, and the model then polls the task
with `get_command_or_subagent_output` -- a call whose result carries no ACP
content and no prompt text at all: the command, its status, exit code and
shell output live only inside a structured `TaskOutput` envelope that
neither the live path nor the history parser knew how to read. Both showed
an empty card. A failed dev server that exited immediately was
indistinguishable from one still serving, and the reason was nowhere in the
conversation.

That envelope is now passed through whole by one function both paths call,
so live streaming and a later reload hand the frontend the same bytes, and
those polls collapse into the same background-task card Claude Code's do:
one row per task id showing the command, a status badge, the exit code, and
the output through the ANSI terminal. Grok's own launch acknowledgement is
recognized too, so the command that started the task keeps its concise
background-launch form instead of repeating the notice. The envelope is
bounded below the live emitter's single-message cap, since that truncation
would otherwise leave the frontend a fragment of JSON; a fragment that
arrives anyway falls back to the plain result view rather than a half-read
task.

The same tool also polls sub-agents, whose result is a different payload
entirely. So the card claims a call by its envelope, and by input shape only
while the call is still in flight -- long enough for the live card to render
in the lane it will settle into. A settled sub-agent poll keeps the generic
rendering it had.

Live and history also disagreed on what that poll even was. Grok rewrites a
tool call's title as it progresses, ending on the command being polled, so
the title fallback named one call three different things and finally
collapsed it to "bash", folding it into the tool group of the very command
it was reporting on -- while history, reading Grok's own tool metadata, kept
the real name. Live now reads that metadata as well. It is consulted after
input-shape detection, so every existing classification is unchanged, and
the generic MCP envelope is excluded because the inner tool name is already
recovered into the title.

Grok injects its own notices -- a background task finishing, most of them --
as user messages flagged to stay out of the scrollback, which its own
terminal honours. Rendered as a user bubble, one of those split a single
reply into two turns with a raw `<system-reminder>` block wedged between
them. They are now skipped, before the turn boundary is decided, so a notice
delivered mid-turn cannot cut a reply in half either.

The finished-task snapshot stays unrendered. It is keyed by task id, where
the tool call it belongs to is keyed by call id, so the guard built around
it never once matched and is gone. Applying it would mark the launching call
failed for a command that started fine, which is neither what Grok reports
on the wire nor what the live path -- which never receives that notification
-- could ever show. The failure shows where it happened, on the poll.
- opencode 1.18.8 -> 1.18.10
- cline 3.0.46 -> 3.0.47
- codebuddy 2.128.0 -> 2.130.0
- kimi-code 0.29.2 -> 0.31.0
- grok 0.2.112 -> 0.2.114
- feat(settings): **Kimi Code with your own API key now gets a reasoning picker.** A Reasoning card in the panel declares which levels to offer and which one to start on — until now only subscription accounts had the option.
- fix(acp): **A long-running command no longer freezes the conversation.** Agents that run their commands through the ACP terminal — Grok among them — got stuck halfway through a session with Stop doing nothing, because a command that never exits on its own blocked everything behind it. Such a command now runs in the background with its output streaming as it comes, and the turn stays interruptible. Agents that run commands themselves, Claude Code and Codex included, were never affected (#394).
- fix(codex): **Codex searches read like searches.** A `rg` or `grep` shows as "Grep <pattern>" with results grouped per file and every line clickable to open it there, instead of a raw JSON blob. Claude, Cline, Gemini, OpenCode and Cursor searches get the same view.
- fix(grok): **A command Grok runs in the background finally shows what it did.** Each task gets a card with the command, its status, exit code and terminal output, where it used to leave an empty one. Grok's internal notices no longer cut a reply in half either.
- fix(composer): **File and command references show as badges wherever text lands in the composer.** Quick messages, restored drafts, queued-message edits, expert and Office templates and saved automations used to leave raw `[label](file:…)` text behind. A Windows path also stops gaining a backslash every time the message is reopened.
- fix(acp): **Quitting codeg actually shuts the agents down.** Agent CLIs and the processes they start no longer linger after the window closes — thanks to @noxenys for the fix (#389).
- chore(acp): **Updated the built-in agents.** OpenCode 1.18.10, Cline 3.0.47, CodeBuddy 2.130.0, Kimi Code 0.31.0 and Grok 0.2.114.

-----------------------------

# 发布版本 0.22.2

- 功能(设置):**用自己 API Key 的 Kimi Code 也有了思考强度选择。** 面板新增「推理」卡片,用于声明提供哪些强度、默认用哪一档——此前只有订阅账号才有这个选项。
- 修复(智能体):**长时间运行的命令不再把整个会话冻住。** 通过 ACP 终端执行命令的智能体(Grok 就是其一)会聊到一半卡住、点「停止」也没反应,因为一条不会自己结束的命令堵住了它后面的一切。这类命令现在在后台运行,输出边跑边显示,回合随时可以打断。自己执行命令的智能体(包括 Claude Code 与 Codex)从来不受此影响(#394)。
- 修复(Codex):**Codex 的搜索终于长得像搜索。** 一次 `rg` 或 `grep` 不再是一坨原始 JSON,而是显示为「Grep <关键词>」,结果按文件分组,每一行都能点击跳转。Claude、Cline、Gemini、OpenCode 与 Cursor 的搜索也同样受益。
- 修复(Grok):**Grok 在后台跑的命令,终于能看到它干了什么。** 每个任务都有自己的卡片,包含命令、状态、退出码和终端输出,而不再是一张空卡片。Grok 的内部通知也不会再把回复从中间劈开。
- 修复(输入框):**只要文本被填进输入框,文件与命令引用就会显示成徽章。** 快捷消息、恢复的草稿、编辑排队中的消息、专家与办公模板、已保存的自动化任务,过去都还留着 `[label](file:…)` 的原始写法。Windows 路径也不会每重新打开一次就多出一层反斜杠了。
- 修复(智能体):**退出 codeg 时智能体真的会被关掉。** 智能体 CLI 及它拉起的进程不会再在窗口关闭后继续残留——感谢 @noxenys 贡献的修复(#389)。
- 维护(智能体):**更新内置智能体版本。** OpenCode 1.18.10、Cline 3.0.47、CodeBuddy 2.130.0、Kimi Code 0.31.0、Grok 0.2.114。
@pull pull Bot locked and limited conversation to collaborators Jul 30, 2026
@pull pull Bot added the ⤵️ pull label Jul 30, 2026
@pull
pull Bot merged commit 2418e7d into MoozLee:main Jul 30, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant