dsh-input-history
sunshaobei/dsh-input-history
Standalone arrow-key input history for the DSH web composer: ↑/↓ recalls sent prompts from one global ring shared across all sessions and workspaces, persisted to localStorage with an overridable cap.
インストール
dsh plugin --profile web add github:sunshaobei/dsh-input-historyREADME
dsh-input-history
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.
Restore fidelity
Restored entries go through the product's own draft pipeline
(conversation.createDrafts + the session input shell's
setDraft/addAttachments actions), so:
- images come back as real thumbnails (fresh object-URL previews),
- files restart the background upload like a hand-picked attachment,
- @references in the text are preserved verbatim.
Entries whose blobs are gone restore text-only.
Install
dsh plugin --profile web add dsh-input-history
# restart dsh web / the desktop app (bundle layer applies at boot)
How it works
- Capture — wraps
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. - Storage — metadata in
localStorage["dsh-input-history:entries:v1"], bytes in IndexedDBdsh-input-history/blobs(key<entryId>:<index>). - Active session — tracked via a
conversation.composer.dockslot whoseinject(sessionId)runs for the mounted composer, falling back to the most recently updated session.
Configuration
None. Zero npm dependencies.
License
MIT