dsh-motion-ui 0.5.6 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +121 -0
- package/README.md +112 -4
- package/VERIFICATION.md +145 -0
- package/client.js +4869 -22533
- package/examples/mechanism-assembly.json +50 -0
- package/examples/mechanism-crank.json +103 -0
- package/examples/mechanism-gears.json +103 -0
- package/index.js +52 -15
- package/lib/assets/echarts-core.js +47 -0
- package/lib/assets/echarts-full.js +78 -0
- package/lib/assets/katex-fonts/KaTeX_AMS-Regular.woff2 +0 -0
- package/lib/assets/katex-fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- package/lib/assets/katex-fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- package/lib/assets/katex-fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- package/lib/assets/katex-fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- package/lib/assets/katex-fonts/KaTeX_Main-Bold.woff2 +0 -0
- package/lib/assets/katex-fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- package/lib/assets/katex-fonts/KaTeX_Main-Italic.woff2 +0 -0
- package/lib/assets/katex-fonts/KaTeX_Main-Regular.woff2 +0 -0
- package/lib/assets/katex-fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- package/lib/assets/katex-fonts/KaTeX_Math-Italic.woff2 +0 -0
- package/lib/assets/katex-fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- package/lib/assets/katex-fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- package/lib/assets/katex-fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- package/lib/assets/katex-fonts/KaTeX_Script-Regular.woff2 +0 -0
- package/lib/assets/katex-fonts/KaTeX_Size1-Regular.woff2 +0 -0
- package/lib/assets/katex-fonts/KaTeX_Size2-Regular.woff2 +0 -0
- package/lib/assets/katex-fonts/KaTeX_Size3-Regular.woff2 +0 -0
- package/lib/assets/katex-fonts/KaTeX_Size4-Regular.woff2 +0 -0
- package/lib/assets/katex-fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- package/lib/assets/katex.css +1 -0
- package/lib/assets/mermaid.js +3644 -0
- package/lib/assets/standalone-runtime.css +1 -0
- package/lib/assets/standalone-runtime.js +330 -0
- package/lib/assets/three.js +3842 -0
- package/lib/assets/visual.css +1 -0
- package/lib/assets/visual.js +416 -0
- package/lib/author-expression.js +3 -2
- package/lib/authoring-guide.js +4 -3
- package/lib/build-info.js +1 -1
- package/lib/canvas-system.js +3 -3
- package/lib/catalog.js +94 -92
- package/lib/components.js +11 -6
- package/lib/delivery.js +18 -0
- package/lib/diagnostics-route.js +6 -0
- package/lib/document-update.js +27 -0
- package/lib/export-runtime-bundle.js +1 -1
- package/lib/expressive-examples.js +6 -0
- package/lib/fence-feedback.js +61 -0
- package/lib/fence-route.js +14 -0
- package/lib/fences.js +9 -0
- package/lib/freeform.js +4 -3
- package/lib/inspection.js +3 -2
- package/lib/links.js +13 -0
- package/lib/mechanism-catalog.js +24 -0
- package/lib/mechanism-css.js +13 -0
- package/lib/mechanism-entry.js +20 -0
- package/lib/mechanism-geometry.js +62 -0
- package/lib/mechanism-render.js +24 -0
- package/lib/mechanism-runtime-bundle.js +2 -0
- package/lib/mechanism-scenes.js +20 -0
- package/lib/motion-library.js +18 -0
- package/lib/normalize-authoring.js +52 -3
- package/lib/normalize-visual.js +36 -0
- package/lib/presentation.js +1 -1
- package/lib/protocol.js +361 -318
- package/lib/sandbox.js +2 -0
- package/lib/scene-library.js +13 -0
- package/lib/store.js +17 -2
- package/lib/stream.js +12 -0
- package/lib/style-system.js +28 -0
- package/lib/text-document.js +25 -0
- package/lib/text-guide.js +13 -0
- package/lib/third-party/anatomy-LICENSE.txt +21 -0
- package/lib/third-party/anatomy-NOTICE.md +13 -0
- package/lib/third-party/anatomy-iso.mjs +674 -0
- package/lib/third-party/bundled/@braintree_sanitize-url-LICENSE +21 -0
- package/lib/third-party/bundled/@iconify_utils-license.txt +21 -0
- package/lib/third-party/bundled/@mermaid-js_parser-LICENSE +21 -0
- package/lib/third-party/bundled/@upsetjs_venn.js-LICENSE +22 -0
- package/lib/third-party/bundled/cose-base-LICENSE +21 -0
- package/lib/third-party/bundled/cytoscape-LICENSE +19 -0
- package/lib/third-party/bundled/cytoscape-cose-bilkent-LICENSE +21 -0
- package/lib/third-party/bundled/cytoscape-fcose-LICENSE +19 -0
- package/lib/third-party/bundled/cytoscape-license-update.mjs +32 -0
- package/lib/third-party/bundled/d3-LICENSE +13 -0
- package/lib/third-party/bundled/d3-array-LICENSE +27 -0
- package/lib/third-party/bundled/d3-axis-LICENSE +13 -0
- package/lib/third-party/bundled/d3-brush-LICENSE +13 -0
- package/lib/third-party/bundled/d3-chord-LICENSE +13 -0
- package/lib/third-party/bundled/d3-color-LICENSE +13 -0
- package/lib/third-party/bundled/d3-contour-LICENSE +13 -0
- package/lib/third-party/bundled/d3-delaunay-LICENSE +14 -0
- package/lib/third-party/bundled/d3-dispatch-LICENSE +13 -0
- package/lib/third-party/bundled/d3-drag-LICENSE +13 -0
- package/lib/third-party/bundled/d3-dsv-LICENSE +13 -0
- package/lib/third-party/bundled/d3-ease-LICENSE +28 -0
- package/lib/third-party/bundled/d3-fetch-LICENSE +13 -0
- package/lib/third-party/bundled/d3-force-LICENSE +13 -0
- package/lib/third-party/bundled/d3-format-LICENSE +13 -0
- package/lib/third-party/bundled/d3-geo-LICENSE +34 -0
- package/lib/third-party/bundled/d3-hierarchy-LICENSE +13 -0
- package/lib/third-party/bundled/d3-interpolate-LICENSE +13 -0
- package/lib/third-party/bundled/d3-path-LICENSE +27 -0
- package/lib/third-party/bundled/d3-polygon-LICENSE +13 -0
- package/lib/third-party/bundled/d3-quadtree-LICENSE +13 -0
- package/lib/third-party/bundled/d3-random-LICENSE +13 -0
- package/lib/third-party/bundled/d3-sankey-LICENSE +27 -0
- package/lib/third-party/bundled/d3-scale-LICENSE +13 -0
- package/lib/third-party/bundled/d3-scale-chromatic-LICENSE +28 -0
- package/lib/third-party/bundled/d3-selection-LICENSE +13 -0
- package/lib/third-party/bundled/d3-shape-LICENSE +13 -0
- package/lib/third-party/bundled/d3-time-LICENSE +13 -0
- package/lib/third-party/bundled/d3-time-format-LICENSE +13 -0
- package/lib/third-party/bundled/d3-timer-LICENSE +13 -0
- package/lib/third-party/bundled/d3-transition-LICENSE +13 -0
- package/lib/third-party/bundled/d3-zoom-LICENSE +13 -0
- package/lib/third-party/bundled/dagre-d3-es-LICENSE.md +23 -0
- package/lib/third-party/bundled/dayjs-LICENSE +21 -0
- package/lib/third-party/bundled/delaunator-LICENSE +15 -0
- package/lib/third-party/bundled/dompurify-LICENSE +202 -0
- package/lib/third-party/bundled/dompurify-LICENSE-MPL +373 -0
- package/lib/third-party/bundled/echarts-LICENSE +222 -0
- package/lib/third-party/bundled/echarts-NOTICE +5 -0
- package/lib/third-party/bundled/es-toolkit-LICENSE +21 -0
- package/lib/third-party/bundled/es-toolkit-NOTICE +39 -0
- package/lib/third-party/bundled/internmap-LICENSE +13 -0
- package/lib/third-party/bundled/katex-LICENSE +21 -0
- package/lib/third-party/bundled/khroma-license +21 -0
- package/lib/third-party/bundled/layout-base-LICENSE +21 -0
- package/lib/third-party/bundled/lodash-es-LICENSE +47 -0
- package/lib/third-party/bundled/marked-LICENSE.md +44 -0
- package/lib/third-party/bundled/mermaid-LICENSE +21 -0
- package/lib/third-party/bundled/react-LICENSE +21 -0
- package/lib/third-party/bundled/react-dom-LICENSE +21 -0
- package/lib/third-party/bundled/robust-predicates-LICENSE +24 -0
- package/lib/third-party/bundled/roughjs-LICENSE +21 -0
- package/lib/third-party/bundled/scheduler-LICENSE +21 -0
- package/lib/third-party/bundled/stylis-LICENSE +21 -0
- package/lib/third-party/bundled/three-LICENSE +21 -0
- package/lib/third-party/bundled/ts-dedent-LICENSE +21 -0
- package/lib/third-party/bundled/tslib-LICENSE.txt +12 -0
- package/lib/third-party/bundled/uuid-LICENSE.md +9 -0
- package/lib/third-party/bundled/zrender-LICENSE +29 -0
- package/lib/third-party/dsh-genui-LICENSE.txt +21 -0
- package/lib/third-party/dsh-genui-NOTICE.md +26 -0
- package/lib/third-party/echarts-LICENSE.txt +222 -0
- package/lib/third-party/echarts-NOTICE.txt +5 -0
- package/lib/third-party/katex-LICENSE.txt +21 -0
- package/lib/third-party/lucian-uxui-LICENSE.txt +21 -0
- package/lib/third-party/lucian-uxui-NOTICE.md +1 -0
- package/lib/third-party/mermaid-LICENSE.txt +21 -0
- package/lib/third-party/three-LICENSE.txt +21 -0
- package/lib/tool-schema.js +20 -9
- package/lib/typography.js +16 -0
- package/lib/ui-intent.js +15 -14
- package/lib/ui-skill.js +54 -47
- package/lib/visual-assets.js +7 -0
- package/lib/visual-defaults.js +2 -0
- package/lib/visual-guard.js +2 -0
- package/lib/visual-styles.js +142 -0
- package/lib/visual.js +40 -0
- package/package.json +20 -5
- package/skills/intelligent-ui/SKILL.md +22 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,102 @@
|
|
|
1
1
|
# DSH Motion UI
|
|
2
2
|
|
|
3
|
+
## 0.7.0 — 2026-10-13
|
|
4
|
+
|
|
5
|
+
这次更新让 Motion UI 从统一配色的组件集合,进一步扩展为有不同排版语言、真实交互反馈和机制图解能力的对话界面插件。日常说明仍可轻量交付;内部结构、工作原理和机械运动可以直接生成可调整的图解。
|
|
6
|
+
|
|
7
|
+
### 六种风格拥有各自的排版语言
|
|
8
|
+
|
|
9
|
+
- 重做清爽阅读、柔和彩色、技术图解、活力展示、明亮扁平的构图、文字层级、分组、表面和控件外观,新增柔光渐彩。默认继续使用明亮扁平,已有风格配置保持兼容。
|
|
10
|
+
- 风格同时覆盖原生文字、卡片、指标、表单、流程、表格、复制块和相关画布示例。
|
|
11
|
+
- 设置中提供文字说明、双列对比、分隔列表、数据摘要、控件表单、流程图解六类预览,方便比较。预览采用实际组件样式,保持只读。
|
|
12
|
+
- 视觉风格仅作用于引导模式;自由模式继续由模型自主设计。
|
|
13
|
+
|
|
14
|
+
### 全局交互与动效
|
|
15
|
+
|
|
16
|
+
- 分段选择支持方向键、Home/End;滑块按实际数值填充,并改善步进、开关、复制与按钮反馈。
|
|
17
|
+
- 动效覆盖各风格和自由模式的相关原生控件,反馈节奏适配风格。精确读数即时更新,图形与装饰可以平滑过渡。
|
|
18
|
+
- 增加按需动态案例和设置页本地交互演示。尊重减少动态效果、只读状态与实际操作结果,不模拟下载进度或工具成功。
|
|
19
|
+
- 切换风格保留参数和输入焦点;原生标题与文档标题相同时避免重复展示。
|
|
20
|
+
|
|
21
|
+
### 结构拆解、工作原理与机械动画
|
|
22
|
+
|
|
23
|
+
- 新增 `render_mechanism` 快捷工具:以少量参数直接交付分层装配、齿轮传动或曲柄连杆,插件生成图形、控件与共享状态绑定,减少模型复制长源码带来的失败。
|
|
24
|
+
- 支持部件/分组选择、拆解进度、隐藏外壳,以及转速、齿数、曲柄半径、手动角度、播放和暂停。
|
|
25
|
+
- 齿轮转速与中心距、连杆位置与行程由同源运动学计算,图形和实时读数保持一致。
|
|
26
|
+
- 自定义画布可显式启用 `libraries:["mechanism"]`,组合 box、cylinder、gear、rod、spring,并使用局部姿态更新与运动计算函数。
|
|
27
|
+
- 提供精简模型指引和按需目录;静态轮廓可先预览,整轮回复完成、参数恢复后启用交互。支持状态保存、减少动态效果、离屏挂起和独立 HTML 导出。
|
|
28
|
+
|
|
29
|
+
### 计算与易用性修复
|
|
30
|
+
|
|
31
|
+
- 支持 `ceil` / `floor`,改善奇数人数订房等常见计算;图表和表格支持行内响应式公式单元格。
|
|
32
|
+
- 二维表格行可按明确列定义无损适配,改善复杂表达式的重复预算计算与错误定位。
|
|
33
|
+
- 明确提示缺失版本、节点和控件等问题,保留普通文字回退及原有源码大小、权限和隔离边界。
|
|
34
|
+
|
|
35
|
+
### 验证与适用范围
|
|
36
|
+
|
|
37
|
+
- 117 项单元/集成测试、23 组构建及浏览器回归;覆盖 PC 深浅主题、窄宽度、键盘、状态恢复、只读渐进预览、隔离与离线导出。
|
|
38
|
+
- MiniMax M3.1 Flash Preview 在测试工作区完成自然齿轮提问和曲柄连杆两组实测,均零工具报错;单组小样本不代表所有模型的成功率。
|
|
39
|
+
- 机制库使用 Anatomy 的 MIT 投影与轮廓数学,保留固定版本、来源和许可证;场景、状态桥接、渲染与交互为 Motion UI 的集成实现。相关交互参考同样保留 MIT 声明。
|
|
40
|
+
- 机制图解提供教学几何与运动学;简化齿形、按层/深度排序和隐藏外壳不构成制造精度、碰撞/受力验证或任意实体剖切。动画瞬时相位可在刷新后重置,声明的用户参数仍保存。
|
|
41
|
+
|
|
42
|
+
安装/更新:DSH 首页 → 插件,添加 `dsh-motion-ui`。现有安装请卸载后重新安装新版;DSH 当前插件安装流程尚不提供自动更新。
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
## 0.6.0 — 2026-10-12
|
|
46
|
+
|
|
47
|
+
这次更新让 Motion UI 更适合日常对话:简短说明可以快速排版,复杂内容可以组合图表、表单和图解;所选风格也会覆盖原生组件,让 HTML 画布内外更统一。
|
|
48
|
+
|
|
49
|
+
## 日常文字与可复制内容
|
|
50
|
+
|
|
51
|
+
- 新增轻量 `render_text` 入口,普通文字无需编写 HTML,自动补齐节点 ID。
|
|
52
|
+
- 提供自然阅读、简洁面板、并排对比、分隔列表、重点提示、评分摘要、纵向流程、极简文字八种排版预设,由模型按内容选择。
|
|
53
|
+
- 支持文字大小、字重、颜色、对齐、行距与段内重点标注。
|
|
54
|
+
- 新增原生代码块和可复制文本块,右上角小按钮复制正文或代码,保留缩进与换行,提供成功/失败反馈。
|
|
55
|
+
- 新增网页与本地文件链接按钮,点击后才打开目标。
|
|
56
|
+
- 一次回复可以交付多个独立 UI,各自保留布局、参数与正文标记。
|
|
57
|
+
|
|
58
|
+
## 五种视觉风格,设置里直接预览
|
|
59
|
+
|
|
60
|
+
- 首页 → 插件中可选择清爽阅读、柔和彩色、技术图解、活力展示、明亮扁平。
|
|
61
|
+
- 每种风格提供文字说明、双列对比、列表、数据摘要和流程图解五种布局预览,点击选择即保存。
|
|
62
|
+
- 新配置默认使用明亮扁平;保留用户已经保存的风格选择。
|
|
63
|
+
- 引导模式同步原生卡片、指标、控件、按钮与复制块的外观,并注入对应设计提示词和案例。
|
|
64
|
+
- 明亮扁平采用浅彩底、白色大圆角卡片、彩色细边与轻偏移阴影,改善混合 HTML 界面外部过素的问题。
|
|
65
|
+
- 自由模式关闭风格提示及原生风格覆盖,让模型自主设计。切换设置不会改写已生成 HTML 源码或重置输入值。
|
|
66
|
+
|
|
67
|
+
## 扩展可视化组件
|
|
68
|
+
|
|
69
|
+
- 支持扩展 `title/items` 组件描述,与原有 v1 组件、HTML/SVG 画布组合使用。
|
|
70
|
+
- 新增表格排序/筛选/CSV 导出、选项卡、时间线、代码与 JSON、媒体、数学公式等组件。
|
|
71
|
+
- 支持 ECharts(含词云等)、Mermaid、安全表达式函数绘图与基础可旋转 3D 场景;引擎从本地认证路由按需加载。
|
|
72
|
+
- 支持单题即时判分、多题统一检查答案与解析、表单收集后一次提交后续请求;简单交互在本地完成。
|
|
73
|
+
- 复用 MIT 项目 [dsh-genui](https://github.com/omdsh-dev/dsh-genui) 0.11.4 的组件与校验核心,保留许可证和来源声明;Motion UI 自行管理宿主工具、状态、侧栏和风格引导。
|
|
74
|
+
|
|
75
|
+
## 渐进预览与正文展示
|
|
76
|
+
|
|
77
|
+
- 接入工具参数流与显式 `dsh-ui` / `motion-ui` 源码围栏,完整组件可以逐步预览,HTML/SVG 先显示静态内容。
|
|
78
|
+
- 预览独立于工具卡片生命周期,避免模型继续思考、输出时界面闪现后消失。
|
|
79
|
+
- 预览阶段保持只读;整轮回复结束后保存并启用交互及模型生成的画布脚本。
|
|
80
|
+
- 统一使用正文标记定位,删除回答尾部/侧栏展示模式选项。DSH 原生“智能 UI”侧栏随时可用,正文不再显示额外侧栏按钮。
|
|
81
|
+
- 同一界面只保留一次正文展示,重复标记不会重复挂载;正文和侧栏共享保存的参数。
|
|
82
|
+
|
|
83
|
+
## 连续编辑、恢复与交付可靠性
|
|
84
|
+
|
|
85
|
+
- 新增 `update_ui` 追加/替换操作、修订校验、幂等重放与历史归档,保留兼容的用户参数。
|
|
86
|
+
- 保存扩展组件的测验答案、表单字段、函数图参数/视区、排序、选项卡、折叠状态等;内部状态不会混入提交给模型的表单字段。
|
|
87
|
+
- 新增只读 `validate_ui`、更易用的 `inspect_ui`、八场景案例库和前后端构建/本地资源运行诊断。
|
|
88
|
+
- 简化 `render_text` 工具传输 Schema;对明确无歧义的字段别名、数组包装、数字/布尔字符串做归一化,保留严格运行时校验,不随意改写源码或数据。
|
|
89
|
+
- 可选的同轮自动反馈覆盖无法渲染的源码围栏、工具失败后的空交付、仅思考无正文,以及简短“要做 UI”后直接结束的情况;提醒去重,不限制模型思考时间或输出长度。
|
|
90
|
+
- 已成功交付、正常文字回答、明确要求不回复、取消操作和子 Agent 不会被强行补 UI。模型是否选对展示方式、生成代码是否正确仍需结合实际内容判断。
|
|
91
|
+
|
|
92
|
+
## 导出与兼容
|
|
93
|
+
|
|
94
|
+
- 扩展组件支持 HTML / JSON 导出,HTML 内嵌所需组件、图形引擎与公式字体,保留本地交互;外部媒体仍使用原地址。
|
|
95
|
+
- 独立 HTML 不执行宿主 Agent 请求,也不能打开宿主本地文件。
|
|
96
|
+
- 面向 DSH 0.2.0-rc.2 的 Web 界面,已验证对应 Web 与 Desktop 宿主中的插件加载和前后端构建一致性。
|
|
97
|
+
- 旧文档和存储标识继续兼容;旧展示模式与默认文字排版配置保留读取兼容,但不再限制新界面。
|
|
98
|
+
|
|
99
|
+
|
|
3
100
|
## 0.5.6 — 2026-10-10
|
|
4
101
|
|
|
5
102
|
- Disable tool-time UI preview and defer committed UI presentation until durable turn/end. Reasoning/text still stream normally. Completed, interrupted and failed turns reveal successfully generated UI; partial/failed tools do not produce a flashing canvas.
|
|
@@ -46,3 +143,27 @@ First public release for DeepSeek Harness Web 0.2.0-rc.2.
|
|
|
46
143
|
Validation: 54 automated tests, 11 release checks, and natural-completion DeepSeek V4.1 Flash Fast trials. Model-authored typography and contrast still vary; diagram precision and generated program correctness require review. Standalone export excludes surrounding native UI controls. External libraries/resources and direct host access are unavailable in canvases. Desktop compatibility is not claimed.
|
|
47
144
|
|
|
48
145
|
Development migration: uninstall `dsh-generative-ui` before installing `dsh-motion-ui`. Legacy storage, tool result metadata and route identifiers remain compatible; configure design/display modes again in the new plugin entry.
|
|
146
|
+
|
|
147
|
+
### 未发布:依据本地案例校正(2026-10-13)
|
|
148
|
+
- 柔光渐彩改为暖白实色表面,重点渐变留给控件;移除不必要的磁吸禁止指导。
|
|
149
|
+
- 主按钮渐变从图标圆点扩散,文字上下滚动、轻磁吸;数字输入提供增减按钮、指标滚动强调;开关可拖拽并拉伸回弹。
|
|
150
|
+
- 增加三个原生按需案例和动态画布示例,保留真实行为与 MIT 来源声明。
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
### 本地开发修正:动效与风格解耦
|
|
154
|
+
|
|
155
|
+
原生按钮的磁吸/填充/文字换位、开关拖拽回弹、数字步进和指标更新反馈适用于所有风格;自由模式保留原生交互反馈且不注入视觉风格。柔光渐彩统一文字层级、卡片、指标、表单、表格、流程与复制块外观。五类风格预览移除额外演示按钮,直接展示布局材质。默认仍为明亮扁平,本次不发布或增加版本号。
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
### 本地开发:计算器首次交付修复
|
|
159
|
+
|
|
160
|
+
针对会话 d696983a 的七次失败:明确缺失 document.nodes/version 和嵌套 children 的路径,图表错误给出行号、缺失字段及已有列;新增安全原生 ceil/floor;chart/table 支持内联 ref/expr 公式单元格,避免短构成图使用复杂 map。更新工具 Schema、Skill 与协议参考,静态 data 仍为字面数据,不猜测或补造金额。默认 4620 元、1..12 人奇偶房间数、动态图表和刷新恢复加入回归。不增加版本号、不发布。
|
|
161
|
+
|
|
162
|
+
进一步实测修正:重复表达式按不同结构计入静态复杂度,运行步数/深度限制保留;已声明且唯一的字符串列键支持等宽二维表格,按列顺序无损转换。真实模型第一份失败文档加入回归,可一次通过并保留项目名、规则和动态金额。
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
### 本地开发:视觉风格系统重构
|
|
166
|
+
|
|
167
|
+
六种稳定风格 ID 和明亮扁平默认值保留。新增构图、文字层级、表面、控件、反例的统一风格语法;原生文字/卡片/指标/表单/流程/表格/复制块与扩展卡片/指标有独立形态。所有风格保留共享交互动效,反馈幅度/节奏适配语言,减少动态效果仍优先。设置提供六种布局预览(含控件表单),直接复用生产组件 CSS,预览不包含可操作控件。相同内容的深浅主题、黑白对照、显式文字样式优先、输入焦点及数值保留加入回归。自由模式不注入这些风格。当前保持 0.6.0,本轮不发布。
|
|
168
|
+
|
|
169
|
+
模型实测补充:六种风格均实际交付;部分调用发生格式错误后由模型修正,记录不计为一次成功。进一步提示模型沿用风格默认字号/颜色,并在首个 heading 与文档标题完全相同时仅显示一个标题,保留显式文字样式和源文档。
|
package/README.md
CHANGED
|
@@ -4,7 +4,77 @@
|
|
|
4
4
|
|
|
5
5
|
Interactive, declarative tool views for **DeepSeek Harness Web 0.2.0-rc.2**.
|
|
6
6
|
|
|
7
|
-
The plugin adds `
|
|
7
|
+
The plugin adds `render_text` (quick native typography), `render_ui` (validated components), `render_canvas` (HTML/SVG), `render_mechanism` (compact assembly/kinematics scenes), and `ui_catalog` (protocol + examples). It saves per-document input state on the Host and sends explicit follow-up requests with the current parameter snapshot.
|
|
8
|
+
|
|
9
|
+
### v0.7.0:风格、交互与机制图解
|
|
10
|
+
|
|
11
|
+
六种风格拥有各自的构图与组件形态,设置提供六类真实样式预览;原生交互反馈全局增强。新增 `render_mechanism`,无需生成长篇绘图源码即可交付装配拆解、齿轮传动和曲柄连杆。保留现有文档协议、默认明亮扁平风格、自由模式和参数保存。详细更新见 [CHANGELOG.md](CHANGELOG.md)。
|
|
12
|
+
|
|
13
|
+
### 扩展可视化(v0.6.0)
|
|
14
|
+
|
|
15
|
+
在原有轻量文字、原生控件和自由 HTML/SVG 画布之外,新增扩展原生组件语言。直接传入 `render_ui({document:{title,items:[...]}})`,或在回答中写 `dsh-ui` / `motion-ui` JSON 源码围栏;无需为普通测验、图表和表单编写 HTML。完整组件依次预览,整轮回复结束后保存并启用交互,正文与原生“智能 UI”侧栏共用同一份文档和参数。
|
|
16
|
+
|
|
17
|
+
| 场景 | 新增能力 |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| 日常表达 | 卡片、分栏、列表、时间线、标签、代码、JSON、复制、公式、选项卡 |
|
|
20
|
+
| 数据探索 | 本地表格排序、输入筛选、CSV 导出,轻量柱/线/环图,按需加载 ECharts(含词云等) |
|
|
21
|
+
| 学习解释 | 单题即时判分;多题单选统一提交、正确答案与解析、重新作答,全程本地完成 |
|
|
22
|
+
| 数学与结构 | 带参数的安全函数绘图、Mermaid、定位图解、SVG、可旋转缩放的基础 3D 场景 |
|
|
23
|
+
| 信息收集 | 表单收集参数,一次显式提交后续请求;控件变化不会逐次请求模型 |
|
|
24
|
+
| 保存分享 | 扩展可视化的 HTML / JSON 导出位于可选详情区;HTML 内嵌组件与所需图形引擎,媒体仍使用原地址 |
|
|
25
|
+
|
|
26
|
+
例如:
|
|
27
|
+
|
|
28
|
+
```js
|
|
29
|
+
render_ui({document:{title:"Git 小测",items:[
|
|
30
|
+
{type:"radio",group:"q1",label:"提交记录什么?",options:["暂存区快照","所有未暂存修改"],answer:0,explanation:"git commit 记录暂存区快照。"},
|
|
31
|
+
{type:"submit",label:"检查答案",groups:["q1"]}
|
|
32
|
+
]}})
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
`ui_catalog({topic:"visual"})` 提供完整字段和示例;`validate_ui` 可只检查而不创建界面。引导模式注入组件选择、协议与短案例;自由模式只提供必要接口说明。确定无歧义的数组适配包装与声明字段的数字/布尔字符串会先无损归一化,任意 JSON 数据和源码不会被随意改写。
|
|
36
|
+
|
|
37
|
+
这一扩展复用了 MIT 项目 [dsh-genui](https://github.com/omdsh-dev/dsh-genui) 的组件渲染与校验核心,基于 0.11.4 / `7ff0cf5`,保留其许可证和来源声明。Motion UI 自行管理工具、参数持久化、流式展示、侧栏与风格提示词,并增强测验答案持久化。图形和公式引擎从本地认证路由按需加载,普通文字回答无需加载这些资源。
|
|
38
|
+
|
|
39
|
+
我们吸收的是可验证的组件能力,并未复制上游宿主插件的所有交互:不提供其 `/panel` 命令或输入框常驻 dock,也未开放自定义渲染器注册 API。独立 HTML 保留本地交互,但无法发送宿主 Agent 请求或打开宿主文件;外部媒体仍需网络。函数图参数沿用组件内状态,跨文档精确共享计算请使用 Motion UI 的 `state/derived` 或画布。
|
|
40
|
+
|
|
41
|
+
### 连续修改、自动反馈与案例库
|
|
42
|
+
|
|
43
|
+
- 同一界面继续编辑:`inspect_ui` 获取版本,`update_ui` 追加或替换内容;操作有版本检查和去重重放,不必再生成一张。只有一个扩展根节点时,追加扩展片段会自动合并进去。保留原组件的唯一 `id`,可在重新排版后继续恢复兼容的参数和视图状态。
|
|
44
|
+
- 最终源码围栏若无效或缺少关键控件,插件在同一轮回复结束检查时反馈具体诊断。最多两次去重提醒;不限制思考时长,取消生成后不触发。设置里可关闭。
|
|
45
|
+
- 渲染工具失败后没有交付正文,或整轮只有思考、没有任何正文和工具调用时,也会反馈完成提醒。空交付提醒允许普通文字回答,不强制生成 UI;明确要求不用回复时跳过。
|
|
46
|
+
- 简短正文若只是“现在补上组件”“用流程图看最清楚”等 UI 交付声明,却没有实际界面,也会触发去重提醒。此检查仅匹配可见声明,不读取思考内容;已有界面、完整正文或 UI 概念问答不因这条检查重做。
|
|
47
|
+
- 非关键组件被修复省略时,工具明确返回部分交付及原因;关键题目/输入控件被丢弃时拒绝把结果当成成功。已知的标题、容器拼写与声明类型包装会安全归一化。
|
|
48
|
+
- 首页插件设置新增八类只读场景预览:重点说明、方案对比、简易流程、数据摘要、本地测验、需求表单、函数探索、结构图解。模型通过 `ui_catalog({topic:"templates",scene:"plot"})` 按需取一个短案例,避免每轮塞入整个案例库;自由模式不注入该设计指导。
|
|
49
|
+
- “运行状态”检查前后端构建、客户端渲染通道、原生侧栏、同轮反馈接口和本地资源路由;不会展示 API Key 或本地配置路径。
|
|
50
|
+
- 扩展表单、测验、函数图参数/视窗、表格排序、选项卡、折叠项和开关状态可保存、同步并带入导出。自动播放不按动画帧写入宿主;恢复时保持暂停。删除/改变字段语义时,模型仍应明确告知用户;不承诺把旧答案解释成新的问题答案。
|
|
51
|
+
|
|
52
|
+
### 日常阅读样式
|
|
53
|
+
|
|
54
|
+
生成期间支持渐进预览:文字和原生组件按完整且校验通过的块出现,HTML/SVG 先提供不执行模型脚本的静态预览。独立展示容器保留最后有效内容,后续思考不会主动卸载它;整轮结束后恢复参数并启用交互。宿主未传输增量时仍显示正常的正式结果。
|
|
55
|
+
|
|
56
|
+
展示位置统一通过正文 `dsh-ui` 标记定位,不再提供回答尾部和侧栏模式切换。通过 DSH 原生侧栏“智能 UI”入口查看当前会话的界面,正文和侧栏共享参数。旧 `displayMode` 配置保留兼容读取,但不再影响展示和提示词。
|
|
57
|
+
|
|
58
|
+
首页 → 插件 → dsh-motion-ui 的「视觉风格(仅限引导模式)」提供五套可点击预览:清爽阅读、柔和彩色、技术图解、活力展示、明亮扁平。每套可切换文字说明、双列对比、分隔列表、数据摘要和流程图解,共 25 种预览组合。切换预览只用于比较,不保存排版限制;点击风格卡片才保存选择。从下一次请求开始,只注入该风格的设计指导和两份短案例。组件、工具、状态、权限和已有界面保持原样。自由设计模式保留选择但不注入风格模板;切回引导模式后恢复使用。已有会话可能保留旧指导,对比时建议新建会话。
|
|
59
|
+
|
|
60
|
+
未选择过风格时,默认使用「明亮扁平」。已保存的其他风格继续尊重用户选择;自由模式仍不注入视觉风格模板。
|
|
61
|
+
|
|
62
|
+
明亮扁平参考 PrismFrame v0.2 的 Occamy 案例:浅彩背景、白色大圆角卡片、细彩色边线与偏移阴影,配色随解释内容变化。适配聊天宽度与内容高度,不复制视频字幕、页码或满屏留白,不使用玻璃效果。风格是模型生成偏好,并非强制重绘所有原生组件;简单文字仍走轻量排版。新增风格集中注册在 `lib/visual-styles.js`,设置预览、提示词和案例使用同一个注册表。
|
|
63
|
+
|
|
64
|
+
`render_text` 直接接收文字或原生节点,自动补齐节点 ID。八种独立预设:自然阅读 `reading`、简洁面板 `brief`、并排对比 `comparison`、分隔列表 `list`、重点提示 `callout`、评分摘要 `scorecard`、纵向流程 `flow`、极简文字 `minimal`。排版由模型按每块内容自选,设置不再提供默认文字排版。旧配置中的 `defaultPreset` 保留兼容读取,但不再影响提示词和生成;工具省略 `preset` 时安全回退到自然正文。
|
|
65
|
+
|
|
66
|
+
文字支持 `size`(12–48 px 或 sm/md/lg/xl/hero)、`weight`、`color`(语义色或十六进制色)、`align`、`lineHeight`;`spans` 可强调同一段中的部分文字。布局支持 `row.columns`(1–4)、`gap` 和 `divider`。日常默认采用轻边框与少量强调色。
|
|
67
|
+
|
|
68
|
+
```js
|
|
69
|
+
render_text({preset:"reading",blocks:[
|
|
70
|
+
{type:"text",spans:[{text:"重点:"},{text:"先交付最小完整结果",weight:700,color:"success"}]},
|
|
71
|
+
{type:"link",text:"查看项目",href:"https://github.com/Scorp1o117/dsh-motion-ui",variant:"primary"}
|
|
72
|
+
]})
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
同一回复可调用多次,每份文档独立选择预设、配色并保存参数。正文定位时,每份成功结果使用自己的文档 ID 标记一次;没有标记时回退至回答下方。生成期间先逐步预览完整内容,回复结束后恢复参数并启用交互。
|
|
76
|
+
|
|
77
|
+
`link` 或 `button` 支持三种按钮外观:`primary`、`secondary`、`text`。`href` 打开 HTTP(S) 网页,`path` 通过 DSH 原生文件打开接口打开本地文件(可相对当前工作区);仅在用户点击后触发。每个按钮只能指定一个目的地:网页、文件或 Agent `action`。不会向画布开放宿主文件或工具权限。
|
|
8
78
|
|
|
9
79
|
### Reliable process guides (0.5.5)
|
|
10
80
|
|
|
@@ -25,7 +95,7 @@ dsh plugin --profile web add dsh-motion-ui
|
|
|
25
95
|
dsh web --no-open
|
|
26
96
|
```
|
|
27
97
|
|
|
28
|
-
The release artifact includes the generated browser bundle; users installing the tarball do not need the build tool. Restart an existing Web process after installation, then reload its browser page. Source builds are also supported: `npm ci
|
|
98
|
+
The release artifact includes the generated browser bundle; users installing the tarball do not need the build tool. Restart an existing Web process after installation, then reload its browser page. Source builds are also supported: `npm ci --legacy-peer-deps` (DSH peers are supplied by the host), `npm run build`, `npm test`, then `npm pack` and install the generated tarball.
|
|
29
99
|
|
|
30
100
|
Development installs of `dsh-generative-ui` must be uninstalled before installing `dsh-motion-ui`; do not enable both because they register the same tools. Existing UI documents remain readable: the internal `dsh-generative-ui` storage directory, result metadata and authenticated route namespace are retained for compatibility. Plugin settings must be selected again under the new plugin entry.
|
|
31
101
|
|
|
@@ -71,7 +141,7 @@ Development installs of `dsh-generative-ui` must be uninstalled before installin
|
|
|
71
141
|
|
|
72
142
|
Free canvases now include optional theme-aware `.ui-*` primitives for typography, controls, result readouts, SVG nodes, connectors and annotations. Guided mode actively injects a construction handbook covering Chinese label widths, connector routing, actual rendered SVG font sizes, validated calculations and reset behavior. Free mode retains autonomous composition and only receives the interface/delivery contract.
|
|
73
143
|
|
|
74
|
-
|
|
144
|
+
Validated native blocks and inert HTML/SVG previews appear progressively during generation. Preview roots survive tool-card and tail-seat replacement; incomplete or failed input never activates scripts. The final UI takes over after the entire turn ends and parameter restoration enables controls. Failed calls, retries, cancellation and conversation navigation clean transient previews.
|
|
75
145
|
|
|
76
146
|
Each committed canvas offers **说明与操作 → 导出独立 HTML**. The downloaded file includes the current parameter snapshot, the shared calculation interpreter and an isolated canvas. Declared state and derived results recompute locally without DSH or external libraries. It is a single-canvas export, not a complete mixed native layout; it does not send Agent requests or save back to DSH. Reloading the file restores the export-time parameters. External resources remain unavailable.
|
|
77
147
|
|
|
@@ -79,7 +149,7 @@ These improvements adapt the public design-system/skill, CSS-first streaming and
|
|
|
79
149
|
|
|
80
150
|
### Presentation, authoring and history (0.5.2)
|
|
81
151
|
|
|
82
|
-
|
|
152
|
+
Presentation uses same-conversation documentId markers in the answer. The model receives marker instructions for every successful UI tool result; missing markers retain a visible fallback. Tail/sidebar mode selectors have been removed. The native Intelligent UI sidebar tab lists current conversation documents; inline UI adds no sidebar button. successfully saved inputs synchronize between the inline view and sidebar, with explicit conflict/retry handling for concurrent drafts.
|
|
83
153
|
|
|
84
154
|
For simple formulas, write `derived: {power: {expr: "state.V * state.V / state.R"}}` and bind a metric with `{ref:"derived.power"}`. The authoring parser compiles to the existing bounded interpreter, including dependency/cycle validation. It supports arithmetic, comparisons, ternary conditions, parentheses, double-quoted strings, booleans and min/max/round/abs. It does not execute JavaScript or introduce a second calculation runtime. Existing op/args documents remain compatible; freeform animation continues to use the isolated canvas.
|
|
85
155
|
|
|
@@ -207,3 +277,41 @@ Run `npm test`, `npm run build`, and `npm run check` before packing. Browser smo
|
|
|
207
277
|
|
|
208
278
|
|
|
209
279
|
|
|
280
|
+
|
|
281
|
+
### 可复制的文本与代码
|
|
282
|
+
|
|
283
|
+
`render_text` 支持 `{type:"text",title:"文案",text:"正文",copyable:true}` 和 `{type:"code",lang:"bash",code:"git status"}`。文本按需显示复制按钮,代码默认显示;按钮位于右上角,复制后反馈成功或失败。代码保留原始缩进与换行,默认长行横向滚动,可设 `wrap:true` 换行。扩展组件也支持同样的复制面板(文本使用 `content`)。
|
|
284
|
+
|
|
285
|
+
引导模式的视觉风格会同步应用于原生卡片、指标、控件和可复制内容块,也会注入模型风格提示及案例。切换风格即时更新原生外观和侧栏副本,不修改已生成 HTML 的源码,不改变输入值或计算。自由模式关闭这层风格覆盖。
|
|
286
|
+
|
|
287
|
+
### 动态交互与柔光渐彩(v0.7.0)
|
|
288
|
+
|
|
289
|
+
新增「柔光渐彩」可选风格:浅色渐彩背景、实色圆润卡片、深色胶囊按钮与柔和阴影,无玻璃材质。设置中提供六种布局预览与本地交互演示,不改变现有明亮扁平默认值。
|
|
290
|
+
|
|
291
|
+
原生 select 可设置 `variant:"segmented"`,适合 2..8 个短选项,其他情况自动回退下拉框。滑块值填充、开关、复制反馈与关联进度提供短促过渡;精确数值即时更新,减少动态效果和只读预览不播放交互动画。`ui_catalog({topic:"motion"})` 返回简短目录,加 `scene:"plan"/"checklist"/"copy"/"plot"` 只取一个完整示例。示例数据需替换为真实任务数据,不能将演示动画当作实际操作结果。
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
### 本地开发修正:动效与风格解耦
|
|
295
|
+
|
|
296
|
+
原生按钮的磁吸/填充/文字换位、开关拖拽回弹、数字步进和指标更新反馈适用于所有风格;自由模式保留原生交互反馈且不注入视觉风格。柔光渐彩统一文字层级、卡片、指标、表单、表格、流程与复制块外观。五类风格预览移除额外演示按钮,直接展示布局材质。默认仍为明亮扁平,本次不发布或增加版本号。
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
### 本地开发:视觉风格系统重构
|
|
300
|
+
|
|
301
|
+
六种稳定风格 ID 和明亮扁平默认值保留。新增构图、文字层级、表面、控件、反例的统一风格语法;原生文字/卡片/指标/表单/流程/表格/复制块与扩展卡片/指标有独立形态。所有风格保留共享交互动效,反馈幅度/节奏适配语言,减少动态效果仍优先。设置提供六种布局预览(含控件表单),直接复用生产组件 CSS,预览不包含可操作控件。相同内容的深浅主题、黑白对照、显式文字样式优先、输入焦点及数值保留加入回归。自由模式不注入这些风格。这些改进随 v0.7.0 发布。
|
|
302
|
+
|
|
303
|
+
### 结构拆解、工作原理与机械动画(v0.7.0)
|
|
304
|
+
|
|
305
|
+
常见场景直接调用 `render_mechanism({scene:"assembly"|"gears"|"crank",title?,rpm?,teeth?,radius?,running?,angle?,explode?})`,插件生成图形、控件和参数绑定,无需模型复制绘图源码。其他结构可按需读取 `ui_catalog({topic:"mechanism",scene:"assembly"|"gears"|"crank"})`,获取精简调用与自定义接口。三个原创案例分别覆盖分层装配、齿轮传动、曲柄连杆;用户可以选择部件、调整拆解进度、隐藏外壳、改变转速/齿数/曲柄半径、暂停和手动调角度。六种引导风格继续生效,自由模式仍可自行设计。
|
|
306
|
+
|
|
307
|
+
例如,下面这一小次工具调用会同时生成齿轮图、参数控件和实时读数:
|
|
308
|
+
|
|
309
|
+
```js
|
|
310
|
+
render_mechanism({scene:"gears", rpm:20, teeth:32})
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
画布显式声明 `libraries:["mechanism"]` 后,隔离框架内才会启用本地 `DSHUI.mechanism`。可用 box/cylinder/gear/rod/spring 组合自己的结构,使用 mount/pose/update 驱动图形;gearPair、sliderCrank 提供同源数值和运动。无需模型重复生成整套 SVG 引擎。普通画布不注入该辅助库;现有源码限制、共享状态验证、网络隔离、减少动态效果和离线导出保持适用。静态轮廓先预览,回复完成并恢复参数后启用完整立体图解。
|
|
314
|
+
|
|
315
|
+
这是教学几何与运动学:简化齿形不能用于加工,隐藏盖板不是任意实体剖切,按层与深度排序不构成精确遮挡/碰撞审计。瞬时动画相位不持久化,用户参数仍保存。
|
|
316
|
+
|
|
317
|
+
投影和轮廓数学参考并使用 [Anatomy](https://github.com/wheresryan22/anatomy) 的 MIT 代码(固定版本及许可证见 `lib/third-party/anatomy-NOTICE.md`)。插件的状态桥接、机制案例、渲染与交互逻辑为本项目实现,没有引入完整上游工作流或其 3D 引擎。
|
package/VERIFICATION.md
CHANGED
|
@@ -1,5 +1,118 @@
|
|
|
1
|
+
# v0.7.0 发布验证(2026-10-13)
|
|
2
|
+
|
|
3
|
+
本次整合风格系统、全局交互、计算易用性和 Anatomy 机制图解。构建 0.7.0+6adc22f63978。
|
|
4
|
+
|
|
5
|
+
- 发布构建通过117项单元/集成测试与23组构建/浏览器回归,命令:npm run verify:release(Windows测试环境提供DSH_PLAYWRIGHT路径)。
|
|
6
|
+
- 打包检查194个文件,包含新工具、机制库、三个完整案例及相关MIT许可证;排除node_modules、test-output与测试私有日志。
|
|
7
|
+
- 在干净目录通过npm安装本地tarball,DSH 0.2.0-rc.2所需peer依赖完整,Host入口可导入,48齿/30rpm机制的初始值与−10rpm计算正确。
|
|
8
|
+
- 通过Desktop自身的Electron载体与官方dsh-desktop-host CLI,在隔离Desktop profile完成同一tarball安装,退出码0并重读安装清单。
|
|
9
|
+
- 功能开发阶段已在真实Desktop/Web核验194个文件、前后端构建一致、机制参数/行程联动与恢复;M3.1 Flash两组实测零工具报错。版本化发布包将在发布后再次核验registry完整性、官方安装、重启与实际运行时。
|
|
10
|
+
- 下文保留此前开发过程与历史验证,不将历史的单次成功、未发布构建或中途报错当成本次最终发布状态。
|
|
11
|
+
|
|
12
|
+
# v0.6.0 发布验证(2026-10-12)
|
|
13
|
+
|
|
14
|
+
本次正式发布汇总此前 0.5.6 本地开发批次的功能。下面的未发布说明与构建号均为历史记录;当前发布验证以 test-output/v060-release-verification.log 及正式安装核验为准。
|
|
15
|
+
|
|
1
16
|
# Verification
|
|
2
17
|
|
|
18
|
+
## Empty turn and unfulfilled announcement recovery — 2026-10-12
|
|
19
|
+
|
|
20
|
+
Final candidate 0.5.6+bad69c62ddd4. Two actual failures are retained: the user's screenshot session (reasoning only) and Desktop acceptance attempt afea5106-cb3b-460e-9e6a-d39b39de6517 (a short visible flowchart announcement, no tool call). The latter reproduced after schema simplification, so reduced schema size alone is demonstrably not a complete fix.
|
|
21
|
+
|
|
22
|
+
- Both 22-event/announcement failure replays now enqueue one deduplicated same-turn completion notice (test-output/m31-two-failures-replay.json). The visible-announcement detector never examines reasoning; it excludes substantive lists, source fences and UI-concept questions. Reminder permits useful plain text, preserves existing UI and respects explicit silence/cancellation/subagents.
|
|
23
|
+
- Earlier final Desktop assertion correctly failed because no UI was delivered; that test is not a passing acceptance result. Its event log is test-output/m31-final-events.jsonl.
|
|
24
|
+
- Final full regression evidence: test-output/m31-empty-announcement-final-regression.log. Version remains 0.5.6 and nothing is published. Root trigger of the model/provider stop is still unproven; this change fixes observable incomplete-delivery recovery and reduces tool-schema complexity.
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
## M3.1 reasoning-only regression — 2026-10-12 (unpublished)
|
|
28
|
+
|
|
29
|
+
Screenshot session 06d45422-6105-4fc1-bb8b-c18148afc264 has one reasoning-only assistant response, no visible answer or tool calls, and provider finish stop. Its MiniMax High / maxTokens=256000 configuration and system prompt size match a successful Desktop trial. A stop finish is not evidence that plugin prompts/schema played no role. The exact trigger remains unproven.
|
|
30
|
+
|
|
31
|
+
- Fix a proven recovery gap: reasoning-only empty turns previously bypassed feedback. Now one deduplicated same-turn completion notice allows either useful plain text or a suitable UI, without inspecting hidden reasoning, requiring UI, setting inference limits, or retrying cancellation/explicit silence/subagents/existing delivery. Replaying the screenshot's 22 events produces exactly one notice.
|
|
32
|
+
- Simplify render_text's native schema from 7176 to 758 characters; keep its direct outer array and exact runtime validation. All strings, nested nodes and component capabilities remain supported. Expanded component unions are no longer duplicated in the tool schema. This is a compatibility improvement, not a proven cause of the original stops.
|
|
33
|
+
- Align the stale authoring lifecycle instruction with actual read-only progressive previews and end-of-turn interaction activation.
|
|
34
|
+
- Live comparisons in J:\测试结果 used the same MiniMax-M3.1-Flash-Preview High without reasoning/time caps or cancellation: two current Web requests, one current Desktop request, one previously published HEAD request, and two compact-schema requests all actually called rendering tools. Small samples cannot establish a reliability rate or prove a root cause. Reports: test-output/m31-current.json, m31-desktop-baseline.json, m31-old-published.json and m31-compact-schema.json. Early harness visual counts used a selector for extended visuals and are not native-UI acceptance evidence.
|
|
35
|
+
- 99 tests pass; 18 verification stages pass in test-output/m31-empty-turn-regression.log. The final lifecycle wording is additionally covered by a fresh build and all 99 tests in test-output/m31-empty-final-unit.log. Final build 0.5.6+9cfd7b980bdd; no publishing or version bump.
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
## Premature-stop investigation — 2026-10-12 (unpublished)
|
|
39
|
+
|
|
40
|
+
Session ed7a97be contains three user turns. Turns 1 and 2 end with short promises and no rendering calls; turn 3 calls ui_catalog and fails render_text, then ends with reasoning only. All final stream finishes are provider stop, not length/cancel/error. Tools are available; request configuration is MiniMax-M3.1-Flash-Preview, reasoningEffort=max, maxTokens=256000. No render_ui call exists in the export. This evidence cannot distinguish model behavior from upstream service behavior.
|
|
41
|
+
|
|
42
|
+
- The original failed render_text arguments now validate unchanged: six nodes, all nine table rows retained. Content aliases and exactly identical text/spans normalize without discarding conflicts; typed native object-row tables retain their column presentation through an extended visual.
|
|
43
|
+
- Replaying all 47 exported events yields exactly one same-turn correction notice for the failed-tool/empty-answer ending. Promises without a tool error are addressed by delivery guidance, not forced retry or hidden-reasoning inspection. No reasoning cap, timeout, model configuration change, publishing or version bump.
|
|
44
|
+
- 98 unit/integration tests and 18 stages pass in test-output/stopped-delivery-regression.log. After a tool-description clarification, build and host/focused tests pass again in test-output/stopped-delivery-final-tests.log. Final build: 0.5.6+a8c2739fed9b.
|
|
45
|
+
- Both Web and Desktop packed files match the final build; authenticated PC browser checks confirm matching client/host builds, local resources, registered feedback hook, native sidebar, read-only scene previews and no page errors (test-output/completion-live/stopped-delivery-profiles.json).
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
## Completion optimizations — 2026-10-12 (unpublished)
|
|
49
|
+
|
|
50
|
+
Final development build `0.5.6+bd244406ae57` passes **95 unit/integration tests and 18 verification stages**. The complete run is `test-output/completion-regression-final-v4.log` with structured results in `test-output/release-verification.json`. No version bump or publishing was performed.
|
|
51
|
+
|
|
52
|
+
- Canonical partial diagnostics survive repeated validation. Invalid critical questions/controls fail explicitly rather than disappearing from a supposedly complete delivery. Source-fence repair only accepts deterministic grammar repairs, not fabricated completion of truncated JSON. Same-turn notices are deduplicated, cancellation/subagent aware, limited to two notices without stopping inference, and disabled by the optional autoRepair setting.
|
|
53
|
+
- All eight scene examples validate and render read-only in settings. Targeted retrieval injects only a short index in guided mode. Browser checks verify real asset fetching, matching builds, activation/feedback reporting, style-save conflict behavior and PC/light/dark layouts.
|
|
54
|
+
- update_ui covers ownership, atomic revision archives, canonical key-order-independent retries, conflicting operation IDs, stale revisions, unambiguous extended append, root/target replacement and newly introduced input defaults. Existing compatible state survives edits. Browser checks append a defaulted select, reorder a stable-ID plot, and restore parameter 2, panned viewport, selected tab, table sort and quiz state across remount/twin views and offline HTML export.
|
|
55
|
+
- Repeated known same-session markers show one interface without exposing UUID plumbing; foreign IDs remain plain code. Existing progressive-preview stability, script isolation, local computation, export and recovery suites remain passing.
|
|
56
|
+
|
|
57
|
+
Real-model acceptance used **MiniMax-M3.1-Flash-Preview High**, `J:\测试结果`, and natural completion with no reasoning/time cap or cancellation. The final test build for the model was `0.5.6+d5e32048c472`; the only subsequent production change hides repeated UUID markers, covered by the final regression and installed smoke test.
|
|
58
|
+
|
|
59
|
+
1. Function explanation/parameter plot: completed in 19.1s, validate_ui + render_ui, zero tool errors, one rendered visual, reload restores it.
|
|
60
|
+
2. Follow-up append: completed in 18.0s, inspect_ui + update_ui, zero tool errors, still one visual and amplitude **2** retained through refresh.
|
|
61
|
+
3. Deliberately malformed quiz source: one plugin correction notice in the same turn; model supplied missing options and naturally finished in 10.8s. The corrected quiz grades locally and retains the answer after refresh. This is an intentional failure probe, not an organic model-error rate.
|
|
62
|
+
|
|
63
|
+
Both Web and Desktop were replaced with the final build. Authenticated runtime checks confirm matching client/host build, local assets, feedback registration, native sidebar and read-only scene preview; evidence: `test-output/completion-live/installed-profiles.json`. All 176 package files are checked against each installed profile. The final package/audit report is retained under completion-pack.json and completion-audit.json.
|
|
64
|
+
|
|
65
|
+
Evidence: `test-output/completion-live/acceptance.json`, `interactions.json`, `updated-retained.png`, `repaired-graded.png`. Earlier development retries are retained as initial/second/third/fourth-retry.json. They exposed heading/container spellings, mixed vocabulary and update defects fixed in this batch. One harness assertion incorrectly expected a separate check button on an immediate-grading quiz; the follow-up interaction run used the actual option button and passed. These are a few observed cases, not a guarantee that every model will always generate correct UI in one attempt.
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
## Extended native visuals and source fences — 2026-10-12
|
|
69
|
+
|
|
70
|
+
Development build `0.5.6+9c515da98b29` passes **89 tests and 18 verification stages**. Browser fixtures execute numeric table sorting/filtering, quiz/input remount restoration, keyboard tabs and KaTeX, local radio-paper grading, one collected form request, ECharts (including word cloud), Mermaid and Three.js lazy loading, source-fence preview/commit/source replacement, and 1920/1365 PC bounds. Ordinary text does not load the visual core or engines. A two-view fixture verifies that untouched snapshots do not save and edited fields synchronize without initialization conflicts. Standalone HTML restores input state, grades quizzes and renders math without HTTP requests.
|
|
71
|
+
|
|
72
|
+
MiniMax-M3.1-Flash-Preview (High), exclusively in `J:\测试结果`, naturally completed these accepted cases: a three-question Git paper with one local submission (28.9s, ui_catalog + render_ui); a direct assistant source fence containing a table and donut chart (6.7s, no tools); and Mermaid + ECharts + adjustable function plot (10.0s, one render_ui). Each has a rendered visual and no tool/browser errors and survives reload. These are individual observations, not a model-wide reliability benchmark; no reasoning cap or cancellation was used. Evidence: `test-output/visual-live/initial-results.json` (first two cases) and `results.json` (accepted complex rerun).
|
|
73
|
+
|
|
74
|
+
Earlier attempts exposed real integration defects: omitted buffered GET mode produced HTTP 400 for local assets; typed quiz option wrappers were discarded during partial repair; omitted nodeIds failed explicit node inspection; untouched initial answer snapshots could trigger competing saves. These were corrected and covered by regression fixtures. The initial complex case retained its inspection error in evidence rather than being counted as a pass.
|
|
75
|
+
|
|
76
|
+
Real Web interaction acceptance also passes: three selected answers grade without starting a model turn and survive refresh; the model's function slider changes locally; ECharts/Mermaid render; the source fence restores exactly one UI without duplicate JSON. Evidence: `test-output/visual-live/acceptance.json` and `interactions.json`.
|
|
77
|
+
|
|
78
|
+
The npm dry-run package includes local runtime/engine/font assets and the MIT upstream attribution plus licenses of the bundled dependency graph (170 files, approximately 2.96 MB compressed). No test output, vendor source tree, node_modules, profile configuration or credentials are packed. Full dependency audit reports zero vulnerabilities. Web and Desktop installed-file checks match all 170 packaged files to this build. Desktop starts from `F:\DSH-Desktop\DeepSeek Harness.exe` using its own desktop profile and owns the localhost 19387 listener; the unrelated Tailscale listener is untouched. Version stays 0.5.6 and this batch is unpublished.
|
|
79
|
+
|
|
80
|
+
Scope: this embeds the upstream component core, not its host plugin. Motion UI retains native sidebar placement instead of `/panel` or composer-dock commands and does not expose custom renderer registration. External media still needs its source; standalone exports cannot invoke host Agent actions/files. Function-plot parameters remain component-local; native state/derived or canvas is the supported shared-calculation path.
|
|
81
|
+
|
|
82
|
+
## Progressive previews and native sidebar — 2026-10-12
|
|
83
|
+
|
|
84
|
+
Build `0.5.6+2f37d594aac7` passes 79 tests and 17 verification stages. Complete native blocks and inert canvas previews appear during generation. An independent conversation surface retains valid previews across tool-seat remounts and live-to-durable rebasing; explicit failures invalidate only their own calls. Generated scripts and interactive controls activate after the whole reply finishes. Production fixtures cover multiple calls, malformed later prefixes, iframe identity, navigation and cancellation cleanup.
|
|
85
|
+
|
|
86
|
+
MiniMax-M3.1-Flash-Preview (High) naturally completed a two-document task in `J:\测试结果` with render_text and render_canvas, then continued prose. First preview appeared at about 18.2 seconds and the reply completed at about 35.5 seconds. Across 1048 sampled preview frames there were zero gaps, no tool or browser errors, and both durable UIs restored after reload. No reasoning cap or cancellation was applied. This is one observed case, not a general model success-rate benchmark. Evidence: `test-output/progressive-live/results.json`.
|
|
87
|
+
|
|
88
|
+
Display-location controls and inline sidebar-opening buttons are removed. Markers position documents in the reply; the native right-sidebar “智能 UI” entry remains available. A real Web smoke check opened that entry, found two current-session documents, and confirmed zero inline sidebar buttons and browser errors. Evidence: `test-output/native-sidebar-verification.json`. Version remains 0.5.6; this development batch is unpublished.
|
|
89
|
+
|
|
90
|
+
## Default bright flat and five-style real-model acceptance — 2026-10-12
|
|
91
|
+
|
|
92
|
+
Build `0.5.6+b15c6ac6ff08` passes 75 tests and 16 verification stages. A shared default constant selects 明亮扁平 in Host configuration, model prompt resolution and settings fallback. Existing explicit style choices remain respected; free mode remains free of selected design examples.
|
|
93
|
+
|
|
94
|
+
MiniMax-M3.1-Flash-Preview (High) completed the same static comparison/three-step task in five fresh `J:\测试结果` sessions. Each completed naturally with one render_canvas call and no tool errors: 清爽阅读 17.9s, 柔和彩色 17.7s, 技术图解 20.7s, 活力展示 21.3s, 明亮扁平 24.3s. Each durable system message includes only its selected style heading; all UIs restore after reload and fit their PC canvas width, with no page errors. Screenshots and computed CSS show distinct style directions. Technical used Host blue rather than the suggested teal, so this does not certify exact palette compliance. These are individual fixed-task observations, not a general success-rate or unsolicited-UI-selection benchmark. Evidence: `test-output/style-matrix/results.json`, `visual-review.md` and the five style screenshots. Web ends on 明亮扁平.
|
|
95
|
+
|
|
96
|
+
## Style preview and autonomous layout refinement — 2026-10-12
|
|
97
|
+
|
|
98
|
+
75 tests and 16 verification stages pass for build `0.5.6+528535839d64`. The style is now displayed as 明亮扁平. Five layouts (text, comparison, separated list, data summary, flow) can be previewed for each of five visual directions. Browser checks verify that preview switching makes no settings writes, while clicking a style saves and survives reload. The heading explicitly says guided-only; free-mode prompts still omit all selected style guidance/examples. The default text-layout control was removed. Legacy `defaultPreset` values remain readable for configuration compatibility but are ignored by new tool calls and prompt injection; models retain per-document layout choice, with ordinary reading as the omitted-preset fallback. PC light/dark and narrow-width checks pass.
|
|
99
|
+
|
|
100
|
+
## Selectable visual styles development build — 2026-10-12
|
|
101
|
+
|
|
102
|
+
75 automated tests and 16 verification stages pass. Five settings previews share fixed comparison content and cover selection, persistence after reload, rejected writes, keyboard navigation, free-mode preference preservation, PC light/dark screenshots and narrow-width bounds. Every registered style has valid native and sandbox examples. Host checks verify that live style changes affect only design guidance/examples, preserve the protocol section and do not change registered tools; free-mode prompts remain identical for every stored style.
|
|
103
|
+
|
|
104
|
+
PrismFrame bright-flat guidance was derived from the local v0.2 Occamy examples and style guide. It adapts their five palettes, rounded white panels, colored offset shadows and explanatory graphics to compact chat surfaces. Video subtitles, page counters, full-screen whitespace and glass effects are excluded. Preview cards are fixed illustrative samples; they are not a guarantee of an arbitrary model's design quality. Version remains 0.5.6; no publication for this development batch.
|
|
105
|
+
|
|
106
|
+
Real Home → Plugins selection/save/reload passes. A fresh MiniMax-M3.1-Flash-Preview session in `J:\测试结果` completed naturally in 54.6 seconds with one render_canvas call and zero tool/browser errors. The durable model-visible system message contains the selected PrismFrame guidance. Its three-stage diagram uses a pale green background, white rounded cards, colored edges and offset shadows; refresh restores it. This is one observed case, not a general success-rate claim. Original Web style/mode preferences were restored. Evidence: `test-output/styles-live-settings.json`, `styles-m31-live.json`, `styles-m31-prismframe.png`, `styles-restored-prefs.json`.
|
|
107
|
+
|
|
108
|
+
## Everyday reading development build — 2026-10-11
|
|
109
|
+
|
|
110
|
+
73 automated tests and 15 verification stages pass. New coverage includes eight independent presets, typography and inline emphasis, exact numeric/array transport normalization, bounded authoring, URL validation, native file callbacks, per-document parameter isolation, multiple inline markers, refresh recovery, and 1920/1365 px light/dark layouts. Settings were saved and reloaded through Home → Plugins, then restored to their original value.
|
|
111
|
+
|
|
112
|
+
MiniMax-M3.1-Flash-Preview was tested on the real Web host in `J:\测试结果`, without a reasoning time cap or early cancellation. The final proactive prompt produced comparison + flow in 19.6 seconds; the mixed-content prompt produced four independent native surfaces in 17.0 seconds, including web and enabled file buttons. Both completed with zero tool errors and restored after refresh. These are two observed cases, not a general first-attempt success rate.
|
|
113
|
+
|
|
114
|
+
Earlier attempts exposed missing typography transport normalization and incomplete multi-part delivery. The fixes preserve numeric ranges, reject ambiguous fields, unwrap only exact item-array wrappers, and clarify that necessary multiple UI calls are not limited by the optional polishing guidance. Replaying all seven calls from the transport-failure session now passes unchanged. The version remains 0.5.6 as a local development build; no registry release was made for this update.
|
|
115
|
+
|
|
3
116
|
## 0.5.6 — authoring compatibility and stable presentation (2026-10-10)
|
|
4
117
|
|
|
5
118
|
68 automated tests and 14 release stages cover typed transport normalization, decoded-object safety, exact node/argument diagnostics, field-order independence, canvas metadata defaults, durable end-of-turn UI presentation, state recovery, isolation and standalone export. Clean npm ci reports zero vulnerabilities. Production UI preview is disabled; static preview utilities remain internally tested but are not registered tool entry points.
|
|
@@ -170,3 +283,35 @@ All selected High effort. These single-run wall times include provider response,
|
|
|
170
283
|
- Separate MiMo display-repair acceptance passed: it inspected the real 390px report and patched its own canvas. The original 7px SVG label warnings disappeared at revision 2; animation, speed=2, paused state and refreshed parameters survived. This took about 242s including browser checks, showing a latency limitation rather than universal quick repair. Evidence: `model-matrix/mimo-v2-5/visual-repair.json`, `visual-repair-mobile.png`. The initial native 11px auxiliary warning is addressed by the final renderer font change, separately verified locally.
|
|
171
284
|
- Model selection also updates DSH's global default. The original entry observed before this user turn's tests (DeepSeek V4.1 Flash, Medium) is restored; each test conversation retains its own model. Original provider configurations were compared without exposing credentials. The named Step Chat test alias is retained. Evidence: `model-matrix/config-restoration.json`.
|
|
172
285
|
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
### 可复制文本与代码(0.5.6 未发布开发版)
|
|
289
|
+
原生 text(copyable/title) 与 code(lang/title/wrap),扩展 text/code 的字段校验和修复后保留均已验证。1920×1080 Edge 实测 Clipboard API 原文复制(Windows 原生换行规范化)、拒绝 API 后兼容复制、失败反馈、临时 textarea 清理、字面 HTML 不执行、长行内部滚动、明暗主题及只读预览禁用复制。证据:test-output/copy-verification.json、copy-light.png、copy-dark.png。
|
|
290
|
+
|
|
291
|
+
### 引导风格覆盖原生组件
|
|
292
|
+
五种风格逐一检查原生指标卡背景、控件配色、PC 明暗主题、横向溢出与切换自由模式后还原;共享状态和链接行为保留。证据:test-output/native-style-verification.json、native-style-prismframe-light.png。
|
|
293
|
+
|
|
294
|
+
### 动态交互与柔光渐彩(0.6.0 本地开发,未发布)
|
|
295
|
+
新增第六种可选风格,保留明亮扁平默认值;设置选择/持久化、五种布局比较和自由模式不注入新风格均验证。原生分段选择键盘方向键/Home/End、快速输入后的精确 derived/进度、超过八项回退下拉框、独立文档参数与刷新恢复、减少动态效果、预览禁用控件及 PC 明暗主题均由 tests/verify-motion.mjs 验证。证据:test-output/motion-verification.json、motion-aurora-light.png、motion-aurora-dark.png。
|
|
296
|
+
|
|
297
|
+
### 2026-10-13 本地参考案例校正
|
|
298
|
+
13 个用户提供的 HTML 按静止、悬停、操作中、结束状态审阅,结果在 test-output/reference-motion/review.json。新增原生主按钮渐变扩散/文字滚动/磁吸、数字步进、可拖拽弹性开关、指标滚动强调和真实状态动态画布案例;tests/verify-motion.mjs 覆盖拖拽与 Space 切换、实际链接打开、步进/精确数值/刷新恢复、画布持久化与减少动态效果。原始素材未改动,MIT 来源保留于 lib/third-party/lucian-uxui-*。
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
## 全局动效与完整风格回归
|
|
302
|
+
|
|
303
|
+
新增六种风格与自由模式的原生控件覆盖、不同动效配色、切换时输入焦点及数值保留、逐风格 reduced motion 验证。验证结果见 test-output/global-style-regression-final.log。
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
### 本地开发:计算器首次交付修复
|
|
307
|
+
|
|
308
|
+
针对会话 d696983a 的七次失败:明确缺失 document.nodes/version 和嵌套 children 的路径,图表错误给出行号、缺失字段及已有列;新增安全原生 ceil/floor;chart/table 支持内联 ref/expr 公式单元格,避免短构成图使用复杂 map。更新工具 Schema、Skill 与协议参考,静态 data 仍为字面数据,不猜测或补造金额。默认 4620 元、1..12 人奇偶房间数、动态图表和刷新恢复加入回归。不增加版本号、不发布。
|
|
309
|
+
|
|
310
|
+
进一步实测修正:重复表达式按不同结构计入静态复杂度,运行步数/深度限制保留;已声明且唯一的字符串列键支持等宽二维表格,按列顺序无损转换。真实模型第一份失败文档加入回归,可一次通过并保留项目名、规则和动态金额。
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
### 本地开发:视觉风格系统重构
|
|
314
|
+
|
|
315
|
+
六种稳定风格 ID 和明亮扁平默认值保留。新增构图、文字层级、表面、控件、反例的统一风格语法;原生文字/卡片/指标/表单/流程/表格/复制块与扩展卡片/指标有独立形态。所有风格保留共享交互动效,反馈幅度/节奏适配语言,减少动态效果仍优先。设置提供六种布局预览(含控件表单),直接复用生产组件 CSS,预览不包含可操作控件。相同内容的深浅主题、黑白对照、显式文字样式优先、输入焦点及数值保留加入回归。自由模式不注入这些风格。当前保持 0.6.0,本轮不发布。
|
|
316
|
+
|
|
317
|
+
模型实测补充:六种风格均实际交付;部分调用发生格式错误后由模型修正,记录不计为一次成功。进一步提示模型沿用风格默认字号/颜色,并在首个 heading 与文档标题完全相同时仅显示一个标题,保留显式文字样式和源文档。
|