Repository navigation
v0.24.1 — 修复:对话在画布上新建控件失败
v0.24.1 — 修复:对话在画布上新建控件失败 / Controls a conversation writes now build
用户报告:在画布里让对话新建控件,画布上出现一摞 未支持的控件:unknown 方框,什么控件都没建出来。
根因(从会话记录里取到了那条真实回复):模型把控件名当成了键写,而不是写文档规定的 kind 字段 —— { "stats": [ … ] }、{ "trend": { … } }、{ "note": "…" }、{ "heading": "标题", "text": "正文" },于是全部落成"未支持的控件"。
修复:控件解析器现在会还原对话真正写出的形状 —— 控件名当键、中文名与同义词(表格 / 计数器 / 折线图 / 待办 / 标题 / 代码块 …,以及 metrics / todo / sparkline / iframe 等英文同义词)、以及完全没写控件名时按字段判断(until → 倒计时、src → 图片、url → 网页应用、values → 趋势、columns+rows → 表格、rows → 键值、label+value → 统计、text → 文本)。仍然建不出来的控件会被跳过并点名(已应用:新增控件 2 · 跳过 1(看板)),不再留下死掉的错误框;画布提示词也把规则和完整示例写清楚了。
顺带修掉一个老 bug:trend 从不读取它自己的规范字段 items,任何经过第二次消毒的趋势控件(画布 add / 实例收养 / 展开控件都会走第二次)都会被静默丢掉 —— {"op":"add","kind":"trend"} 因此永远建不出来。现在 19 种控件都通过"消毒两次结果不变"的测试。
回归测试:报告里那块画布上真实出现过的回复已作为 smoke.mjs 的固定用例(3 个操作、零丢弃、含 8 个控件的卡片 + 2 个裸控件、无 unknown 块);npm run verify:embed 在 Chromium 里把同样形状的回复从主对话送进去,断言 kinds=trend、unsupported=0 且趋势图真的画了出来。
同时包含 v0.24.0 的全部内容:画布可以承载任何插件(🧩 插件 选择器 / [canvas] 的 addPlugin 与 rebuild 操作 / 主对话与专属对话都能驱动)。
Install / 安装
dsh plugin --profile web add dsh-task-console # npm(发布后)
dsh plugin --profile web add ./dsh-task-console.tgz # 本 Release 的预构建 tarballFull changelog / 完整变更记录: CHANGELOG.md · README: README.md