Skip to content

Releases

v0.2.3 — run_code 里的提问、行标题、DSH 风格表格

Choose a tag to compare

@DDDMUC DDDMUC released this 05 Nov 13:30

这一版把 issue #1 里剩下两条(思考/代码标题、表格与代码样式)做完了,并修掉了「提问嵌在 run_code 里就认不出来」的问题。

提问卡片:支持 run_code 内部调用

标准/极简模式里 ask_user_question 是顶层工具,能直接认出来;但 PTC 一类 preset 只把 run_code 暴露给模型,提问是在程序内部调的,日志里根本没有那次工具调用——所以之前的卡片不会出现。

现在:

  • 从 run_code 的 code 参数里读出 JavaScript 对象字面量(裸键名、模板字符串,JSON.parse 用不了)
  • 答案按形状 { id, selected } 在返回值里递归查找,不依赖键名——程序返回的键是它自己起的(userAnswer、answers、埋更深都行)
  • 卡片显示在 run_code 那一行之上
  • 读不懂的写法(questions: qs 这种变量)回退成普通工具卡片,不猜

每行都有标题

改前 改后
思考(1306 字) 思考 · 核对分支二的条件(32 字)
run_code · 606ms · 结果已截断 run_code · 查看 core/compatibility.py … · 606ms · 结果 1 行

思考块的标题取正文首行(日志里没有标题字段,这跟聊天界面的「思考预览」是一回事),工具行用调用的 description。

排版

  • 正文标题:# / ## / ### 会被降级成 h4–h6 以保持「回合/消息」的文档骨架,但之前只给 h1–h3 写了样式,### 落回浏览器默认的 0.67em(约 10px),比正文还小。现在三级都有明确字号,全部大于正文。
  • 表格:改成 DSH 的「有横线、无框线」——去掉外框和所有竖线,表头加粗 + 一条深色下边线,行间细线。
  • 行内代码:改成圆角胶囊,跨行时两段都有圆角;代码块去掉边框,只留浅色底。

修复

  • 导出对话框左下角的缩放手柄方向错了:用了 nwse-resize(西北–东南),应该是 nesw-resize(东北–西南)。八个方向的光标现在由一张表生成,并有测试断言,不会再和 CSS 脱节。

安装

dsh plugin --profile web add dsh-chat-export@0.2.3

src/html.js 属于宿主半,需要重启 DSH 才能看到导出效果;对话框相关的改动会热更新。

验证

npm test — 356 条全过。提问卡片用 issue 里提供的真实 run_code 载荷跑过一遍导出,并用无头浏览器渲染核对。

v0.2.2 — 导出对话框八向拖拽缩放

Choose a tag to compare

@DDDMUC DDDMUC released this 05 Nov 07:43

导出对话框现在可以像窗口一样拖拽缩放了。

新增

八向拖拽缩放 — 弹窗四边、四角都能拖,光标会跟着方向变(ns-resize / ew-resize / nwse-resize)。右下角有一个小抓握角标,其余七个是透明热区。

记住尺寸 — 拖完的大小存本机浏览器,下次打开沿用;双击任意手柄还原默认。

默认宽度放宽 — 从原来那条窄栏改成 min(760px, 94vw),窄屏自动收,宽屏不再一行挤成一团。

高度受约束时内部滚动 — 拖矮之后内容在弹窗内滚,页脚按钮始终留在底部可点。

说明

  • 弹窗由框架居中,所以拖左边/上边时是往两边一起长,不是左边缘固定、右边缘跟着跑。这样不会把弹窗拖出屏幕。
  • 手柄贴在边框内侧(不是外侧),因为 dialog 会裁掉自己的溢出内容。

安装

dsh plugin --profile web add dsh-chat-export@0.2.2

这次只改了浏览器半(src/client.js),不需要重启 DSH,client-hmr 会热替换。

验证

npm test — 341 条全过(+6:八个热区、className 传递、东/西/南/北/四角的拖拽数学与边界钳制)。手柄的定位与光标用真实浏览器引擎核对过计算样式。

v0.2.1 — 提问卡片、可调宽度、ZIP 导入带图片

Choose a tag to compare

@DDDMUC DDDMUC released this 05 Nov 06:02

首个 GitHub Release。dsh-chat-export 之前只在 npm 上发过,这次把仓库和产物对齐到同一版本。

新增

提问卡片 — ask_user_question 不再是一坨 JSON。导出的 HTML / Markdown 里会变成一张卡片:问题正文、每个选项及其说明、以及你实际选中的那条(高亮 + ✓ 已选),默认展开。

阅读宽度可调 — HTML 顶栏一个按钮,在「标准 900 / 宽 1120 / 超宽 1360 / 全宽」之间循环切换,选择记在本机浏览器里。不再固定 900px 一条窄栏。

对话框记住上次的选项 — 格式、范围、内容开关、输出方式会沿用上一次;目录、选中的文件和预览仍按会话重置。

ZIP 导入带图片写回 — 导出 ZIP 时附带 assets.json(文件 → attachmentId 映射);导入 .zip 时把 assets/ 里的图片写回附件库并重连事件里的引用,所以跨机器也能把图带回来。ZIP 读取器是自研的(EOCD 扫描 → 中央目录 → inflateRawSync → 大小与 CRC 校验),没有引入依赖。

拖拽导入 — 导入 tab 整块都是投放区,虚线框替代了原生文件选择器。

修复

工具输出被丢掉 — 提取工具结果时只认 tool-result 块,但当前日志把结果存成普通 text 块。在参考机器上 1340 条结果里只有 87 条是旧格式,也就是说约 94% 的工具输出在导出时静默丢失,表现就是工具卡片显示「结果 0 行」。两种形状现在都能读。

安装

dsh plugin --profile web add dsh-chat-export@0.2.1

或从仓库直接装:

dsh plugin --profile web add github:DDDMUC/dsh-chat-export

验证

npm test — 12 个文件、335 条测试全过。导出产物用真实会话(含两次真实提问)跑过一遍,并用 headless 浏览器渲染核对。