packages/dsh-task-board
zhu1090093659/dsh-web侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
阅读视图增强插件——执行过程自动收起、右缘消息导航导轨、页内查找、统一失败卡片,支持生成式 MCP Apps(SEP-1865)沙箱交互。
🙏 鸣谢原仓库 aa2246740/dsh-better-display(MIT)及其作者与贡献者。
dsh-deckseek 是 aa2246740/dsh-better-display 的 fork,由 JNNarrator 独立维护的 DeepSeek Harness 展示与交互增强插件(MIT)。
它给 DSH 增加一个独立的 DeckSeek 阅读页签:执行过程自动折叠、最终回答完整保留,并支持三套阅读皮肤。它只改展示与交互视图——原生「对话 / 轨迹」页签、输入框、模型选择、工具与审批全部原样保留。
阅读视图(软卡皮肤):执行过程自动折叠、最终回答完整呈现——标题、表格、代码块、公式、引用都排在同一列里;工具栏吸顶常驻(读数 + 查找 / 动效 / 导出),右缘消息导航气泡贴附,输入框之上留白紧凑,不再被长任务列表撑出大片空白。
终端皮肤(默认):窗口四角是字符边框、顶部是工作区标题栏(DeckSeek ~/work/deckseek)、底部是常驻状态栏(RUN / WAIT / IDLE + 12 轮 · 最新一轮 34 步 + ^K 命令 / ? 帮助),正文里 > 提示符开轮、⏺ ⎿ ✻ 一套字形词汇、braille spinner 转着表示在跑。三套皮肤(终端行 / 软卡卡片 / 纸面排版流)共用同一份 DOM,只换结构、密度与字号;颜色一律取自宿主主题 token,亮暗自动适配。
| 消息导航导轨 | 页内查找 |
|---|---|
| 悬停气泡显示「第 N 轮 · 标题」,点击平滑跳转并闪烁标记落点,当前阅读位置自动加宽高亮 | 实时匹配计数、上/下跳转,命中精确滚动定位并闪烁高亮 |
| 执行过程与工具行 | 统一失败卡片 |
折叠的回合直接给出计数(3 次工具调用 · 1 次失败),展开后每行按分类标注状态(已运行 / 已失败…),思考卡片可展开 | 失败原因、退出码与 stderr 摘要,外加可展开的原始记录,重试提示共用同一文案 |
在 DSH 设置的独立 DeckSeek 页里切换,即时生效,默认终端;也可以随时按 Ctrl/Cmd+K 在命令面板里换。
| 皮肤 | 取向 | 适合 |
|---|---|---|
| 终端(默认) | 行列:等宽字体、字符边框窗口、状态栏、ANSI 角色色与工具类别色是唯一的颜色 | 喜欢 TUI / Claude Code 观感;盯执行过程 |
| 软卡 | 卡片容器:回答卡用宿主自己的 elevation(0.5px 发丝描边 + 柔光),用户卡从品牌色派生身份色 | 一般阅读;上下文分明、层次清楚 |
| 纸面 | 排版流:没有容器,只有标题层级与文章尺度的正文节奏,颜色只留给失败 | 长文精读、导出打印 |
三套皮肤只表达结构、密度、字体与圆角;颜色全部取自宿主主题 token,亮暗主题自动适配,插件不携带自己的调色板。皮肤切换不改变组件树——同一份 DOM,只有样式表换一册;详见 docs/design/reading-skins.md。
终端皮肤额外有:字符边框的窗口四角、可选的屏幕纹理(扫描线 / 暗角 / 辉光,三档,默认关闭)、底部状态栏(RUN / WAIT / IDLE + 轮数读数 + 两个面板键)、Ctrl/Cmd+K 命令面板与 ? 快捷键面板、j k g G / 导航键、工作区标题栏、流式回答末尾的 ▌ 光标、braille spinner + 每轮动词 + 右对齐耗时、工具调用按类别取色的 ⏺、右对齐的数字列、折叠回合的计数摘要(39 次工具调用 · 4 个文件 · 2 次失败)、收尾读数行的挂右发丝线、用户回合的整行底纹带,以及空闲屏的 braille 点阵标识。设计取舍与实测参数见 terminal-skin-v3.md、terminal-skin-v4.md、terminal-skin-v5.md。
阅读视图
导航与查找
Alt+↑ / Alt+↓ 在你的消息之间跳转,与导轨同一套定位逻辑。导出与复制
交互与状态
prefers-reduced-motion,两处开关一次停下全部动画。兼容
mcp-app 代码块即自动挂载为活体交互卡片,在 sandbox="allow-scripts allow-forms" 沙箱 iframe 中运行,通过 JSON-RPC postMessage 双向通信(ui/initialize、ui/resize、ui/submit 等),卡片高度随内容在 60–2400px 之间自适应。| 键 | 作用 |
|---|---|
Alt+↑ / Alt+↓ | 在你的消息之间跳转(输入框内打字时不触发) |
Cmd/Ctrl+F | 打开 / 关闭阅读页查找 |
Enter / Shift+Enter | 查找中跳到下一个 / 上一个命中 |
Esc | 关闭查找 |
← → Home End | 工具卡内切换标签页 |
发布渠道有两处,版本不同步:npm 上当前是 0.6.0,更新的版本以 GitHub Releases 的 tarball 为准(本仓库最新 0.11.0)。
0.11.0 起只支持 DSH ≥ 0.1.7-rc.1:peer 范围收窄为
>=0.1.7-rc.1 <0.2.0-0,不再兼容 0.1.3;装在更旧的宿主上会被 peer 校验判为不兼容,需dsh plugin allow-version放行。升级到 0.11.0 还有一处破坏性变更:设置命名空间由deckseek改为dsh-deckseek,旧文档里的deckseek.skin不再被读取(皮肤会落回默认软卡),改名即可保留原选择。详见 CHANGELOG。
# 从 npm 安装(0.6.0)
dsh plugin --profile web add dsh-deckseek
# 或从 Releases 下载 tarball 后安装最新版
dsh plugin --profile web add ./dsh-deckseek-0.11.0.tgz
--profile 取 web / desktop / headless,按你实际使用的宿主形态选择。装好后重启宿主。
已收录于:
npm test # 252 项(node --test + happy-dom)
npx tsc -p tsconfig.json --noEmit # 类型检查
DSHX_HARNESS=<DSH 检出路径> npm run build # 构建 lib/(client + host 两半)
构建若报
Set DSHX_HARNESS to the checkout used for this build.或DSHX externalClientBundle adapter is missing,说明 devkit(tools/dshx)不在DSHX_HARNESS指向的检出里——用DSHX_DEVKIT=<带 tools/dshx 的检出> DSHX_HARNESS=<目标检出> npm run build分别指。
node scripts/link-harness-dependencies.mjs <DSH 检出路径> 以符号链接接入一个已构建的 Harness 检出,不要在本目录执行 pnpm install / pnpm add。package-lock.json 是 --legacy-peer-deps 语义下的尽力而为产物:已发布的 @deepseek-ai/dsh-client-ui-settings 对 @deepseek-ai/dsh-client-ui-primitives 声明了 ^0.0.1-rc.1 peer,与本插件 0.1.x 区间无法相交,严格解析必然 ERESOLVE。npm ci——它无法复现可用的依赖树。file: 指向 tarball 时,重建同名 tarball 后单独 dsh plugin --profile web install 不会更新(报 Already up to date)。需要 rm -rf <profile>/node_modules/dsh-deckseek 后 dsh plugin --profile web install --force,再逐字节比对 lib/client.js。v0.11.0 · 非官方 DSH 展示与交互增强插件。只改展示与交互视图,不改 Agent 核心执行逻辑、SDK 或模型凭据。