packages/dsh-task-board
zhu1090093659/dsh-web侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
在 DSH 的会话输入框里按 ↑ / ↓,翻出这个会话之前发过的提示词。
想改一改上次说过的话,不用翻聊天记录重打一遍——在输入框里按一下 ↑,上一次发过的提示词就回来了;接着按还能往更早翻。
翻的过程中,输入框右上角会显示 ↑↓ 历史 3/12,告诉你现在翻到第几条:

/ 命令菜单、@ 引用菜单抢方向键,也不会打断正常编辑(输入法打字中、按着 Ctrl/Alt/Shift 时都不管)。# 从 npm(推荐;需要 DSH >= 0.2.0)
npx @deepseek-ai/dsh plugin --profile web add dsh-tweaks-prompt-history
# 或从本仓库源码(开发调试)
npx @deepseek-ai/dsh plugin --profile web add "<仓库目录>/plugins/prompt-history"
重启 DSH,并在浏览器中强制刷新(Ctrl + Shift + R)。
web为 DSH 的 profile 名称;profile 配置在 DSH 主目录下的profiles/里:默认即用户目录下的~/.dsh(Windows 为%USERPROFILE%\.dsh),若设置了DSH_HOME则以其为准。
conversation.input.overlay 席位(kind: 'list' / scope: 'session' /
replaceRisk: 'none')、session 标准 props useInput / inputActions / useChat、
useChat(s => s.legacy.nodes) 里 kind: 'user' | 'steering' 节点的文本块、
inputActions.setDraft(text)、locale.register / locale.bind、client bundle 的
window.__ModuleLoader__ 加载协议。[data-composer-card] 是运行时 DOM 判据,不在任何 d.ts 里:官方改名或把 overlay 挂载点移出
composer 卡片时,类型检查不会报警,anchor.closest('[data-composer-card]') 会返回 null,
表现为 ↑/↓ 静默失效(界面无反应、无报错)。升级 DSH 后复核这一条,要直接读运行时产物:
确认 "data-composer-card" 与 renderSlot("conversation.input.overlay") 仍在同一个卡片节点内
(scripts/selftest.mjs 已有这条官方产物断言,提供 DSH 部署路径时生效)。useChat / useInput / inputActions 是 Slot 运行时注入的 props,本插件用结构投影
(src/client/types.ts)读取,没有编译期保证;升级 DSH 后同样要跑一遍真机冒烟(输入框为空时按 ↑)。scripts/selftest.mjs(CI 自动跑:bundle 协议 + 源码契约面 + 纯逻辑历史提取 + vm 驱动
apply 的行为断言;官方产物段需要提供 DSH 部署路径,CI 上自动跳过);仍没有 clientsmoke——
键盘交互(Shift 放行、IME 组合期、相位判断)最终仍需真机冒烟。本仓库的开发约定、DSH 契约与通用坑见 AGENTS.md。