#4266·AionUi

[Bug]: Kimi(ACP) 的 TodoList 待办清单不渲染成卡片,只折叠进 "View Steps"

Author: marce006982Created Sep 15, 2026Updated Sep 15, 2026
Labelsneeds-triage

环境

  • AionUi 2.2.2(Windows)
  • 后端:kimi(ACP),Kimi CLI 0.42.0

现象

使用 Kimi 后端时,agent 更新 TodoList(ACP 的 tool_call_updatetitleUpdating todo list)界面上看不到任何待办卡片

  • 这些更新被折叠进连续的 View Steps · N 分组里,展开后只是一条条普通工具调用条目(因为 kind: "execute",被当作"执行命令"类渲染)
  • 界面上没有专用的待办清单卡片/面板
  • 每次 todo 更新都是一个全新的 tool_call_id(不是同一张卡片刷新),某些会话里会累积 100+ 条这样的条目,全部堆在 View Steps 里

界面观感就是一路的 思考完成 / View Steps · 1 / 思考完成 / View Steps · 2 …,没有可读的待办列表。

证据(数据库里收到的原始 ACP 数据,已脱敏)

messages 表中的一条记录(hidden=0,没有被丢弃):

json
{
  "type": "acp_tool_call",
  "content": {
    "session_id": "session_xxx",
    "update": {
      "session_update": "tool_call_update",
      "tool_call_id": "9:call_00_xxx",
      "status": "completed",
      "title": "Updating todo list",
      "kind": "execute",
      "content": [
        {
          "type": "content",
          "content": {
            "type": "text",
            "text": "Todo list updated.\nCurrent todo list:\n  [in_progress] …\n  [pending] …"
          }
        }
      ],
      "raw_input": {
        "todos": [
          { "status": "in_progress", "title": "…" },
          { "status": "pending", "title": "…" }
        ]
      }
    }
  }
}

也就是说:数据里 raw_input.todos 已经是结构化的待办数组(status + title),前端只要识别这个工具就能渲染成清单卡片,但目前走的是通用工具卡片渲染。

另外,在 app.asar 前端产物中搜索 TodoList / TodoWrite / todo,只能匹配到 Markdown 的 task-list 插件,没有针对待办的工具渲染组件;"View Steps " 是硬编码的工具分组折叠标签。

期望

Kimi(ACP)的 TodoList 更新在消息流里渲染成可读的待办清单卡片(或面板),能反映当前 todo 状态,而不是折叠成一长串 View Steps 工具条目。

建议

  • AionUi 侧:按工具名/title(如 TodoListUpdating todo list),或直接按 raw_input.todos 是否存在,做专用渲染
  • 或由 Kimi 侧改走 ACP 的 plan 通道(但目前消息列表里 case "plan": return null,需要 AionUi 先把 plan 渲染补上)

关联

  • #3754 [Feature] 新增模型任务 Todo 列表 —— 维护者回复「待办列表/看板已在路线图,设计草稿已出」。本 issue 可视为该设计落地前,Kimi/ACP 这条数据源的具体 case
  • #688 长 todolist 执行中状态不显示(v1.8.1,已关闭)