packages/dsh-task-board
zhu1090093659/dsh-web侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
DSH 输入框历史记录切换器:本地保存每条已提交的提示词(含附件,最多 50 条),空输入框时用上下方向键召回,并自动恢复文件引用与图片预览。
Input history switcher for the DeepSeek Harness (DSH) composer.
Every submitted prompt — text plus attachment bytes — persists locally (localStorage metadata + IndexedDB blobs, newest first, capped at 50 entries; the oldest is dropped together with its blobs). With an empty composer, ↑ recalls the previous entry and continues to older ones, ↓ goes back; going past the newest clears the composer and ends the cycle. Any real edit ends the switching session, and a non-empty user-authored draft is never overwritten by accident.
Restored entries go through the product's own draft pipeline
(conversation.createDrafts + the session input shell's
setDraft/addAttachments actions), so:
Entries whose blobs are gone restore text-only.
dsh plugin --profile web add dsh-input-history
# restart dsh web / the desktop app (bundle layer applies at boot)
ConversationController.prototype.sendSession
(the single funnel for composer submissions) and snapshots the ordered
draft attachments (live File objects) before the original send consumes
them. Capture is async and failure-swallowing: storage problems never
break sending.localStorage["dsh-input-history:entries:v1"],
bytes in IndexedDB dsh-input-history/blobs (key <entryId>:<index>).conversation.composer.dock slot
whose inject(sessionId) runs for the mounted composer, falling back to
the most recently updated session.None. Zero npm dependencies.
MIT