Repository navigation
v0.24.0 — 画布可以承载任何插件
v0.24.0 — 画布可以承载任何插件 / The canvas hosts any plugin
🧩 插件(或一句对话)现在可以把另一个插件的原生界面放到画布上 —— 不局限于卡片与控件。
- 两个新的
[canvas]操作 ——addPlugin(id/title/height/bare/x/y)与rebuild(重建某个已有插件项),会校验、计数并汇报为新增插件 1 · 重建插件 1;画布提示词会列出启动清单里的插件(已挂载过的标 ✓)并教这两个操作。 - 主对话与专属对话都可以 —— 画布自带的对话框一直可以;现在任意会话里的
[canvas]块也会被对话行监听器拾取并应用(与[taskcard]建卡同一条路径),作用于块里指名的画布("canvas": "名字或 id",不存在就创建)或当前画布,任务台上出现可点击的提示,点它直接打开那块画布。 - 嵌入约定 —— 插件发布
globalThis.__DSH_<去掉 dsh-plugin- 的 ID>__.mountEmbedded(host, api),api提供render(独立 React root)、dark与onStatus(显示在项头部的实时徽标上:待挂载 / 加载中… / 已挂载 / 未挂载)。mount(host, api)与纯函数形式也接受。 - 一次加载、多处挂载 —— 客户端包每会话只取一次,同一插件每个项各挂自身宿主(无 iframe、无第二份 React);
⟳或rebuild换新修订号 → 重新取包并重新挂载,且修订号保证严格递增。 - 失败也说得清楚 —— 没有嵌入入口 / 启动清单里没有 / 加载失败时显示写明期望全局名与示例的说明面板,而不是空白框;选择器还会列出插件管理端口报告的动态插件。
- 顺带修掉 —— 平面上有插件项 / 内嵌应用时切换画布会触发的两个拆除问题(插件宿主节点的卸载顺序、桥接通知抹掉页面标题)。
另外包含此前未发布的改动:画布对话新增的控件会被收养回对应卡片(canvasAdoptItems),以及内置预设卡「工作时序」(承载 dsh-plugin-tpt-chronicle 面板)。
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