DeepSeek Harness 插件

dsh-md-table-formatter

Aligns markdown tables in assistant replies after each turn and adds a /clear-history command.(英文原文)

跳到安装方式

来源信息

GitHub 仓库
Hyna-hla/dsh-md-table-formatter
最近更新
2026年8月14日
分类
界面增强
GitHub stars
1
载体类型
bundle
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/Hyna-hla/dsh-md-table-formatter
插件名:dsh-md-table-formatter
作者:Hyna-hla

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

dsh-md-table-formatter

DeepSeek Harness 插件:两个功能,都建立在会话 surface-replace 机制上(与内置 compaction 同一套,可安全回放):

1. 自动对齐 Markdown 表格:每个回合结束后,把助手回复里没对齐的 GFM 表格在「模型可见表面」上替换为对齐版本。原始输出仍完整保留在仅追加的会话日志里。 - 支持 :---(左)、---:(右)、:---:(居中)对齐标记。 - 宽度按 Unicode 码点计算,CJK/全角字符按 2 列计算。 - 代码围栏(`` 内)的表格不动;连续两张表不会互相吞行。 2. /clear-history` 命令:把模型可见的对话记录整体替换为一条占位消息(原始日志保留,可继续对话)。回合进行中会拒绝执行。

移植思路来源:@franlol/opencode-md-table-formatter(OpenCode 的 experimental.text.complete 钩子 → DSH 的 turn/end + surface-replace)。

配置(cordis.patch.yml 可覆写)

- insert:
    - id: dsh-md-table-formatter
      name: dsh-md-table-formatter
      config:
        autoFormat: true      # 是否回合后自动格式化
        minColumns: 2         # 少于该列数的表格不动
        clearMarker: '(对话记录已清除)'  # /clear-history 的占位文本

构建与安装

pnpm install
pnpm build
pnpm test
# 安装到 profile(拷 node_modules + 注册 cordis.patch.yml):
.\scripts\install-to-profile.ps1 -Name dsh-md-table-formatter -SourceDir .
# 然后重启 DeepSeek Harness

实现要点

  • 替换事件 = assistant/message + { surfaceOp: { op: 'replace', start: seq, end: seq }, sourceEventSeqs: [seq] },与 dsh-compaction-tool-result-pruner 完全同款;替换副本保留原消息 id(freezeMessage),usage 只留在原始事件上避免重复计数。
  • 格式化 pass 由 session/event 观察者里的 turn/end 触发,用 queueMicrotask 逃出刚提交 append 的接纳边界后再写替换。
  • apply 是箭头函数(cordis 4 会把带 prototype 的 function 当类构造器)。