PerryLink/dsh-composer-history ↗★ 15
dsh-composer-history
Terminal-style input history for the DeepSeek Harness web composer: edge-first arrows with exact draft/caret restore, browser-local persisted history, Ctrl+R reverse search, workspace-scoped recall, and fully configurable keys — plus sliding-context awareness (compaction summaries join recall/search, a compaction notice with one-click /compact fill) layered on the ordinary composer draft only.
AI 분석
适合需要终端风格的输入历史回溯、反向搜索及草稿恢复的Web端用户。
설치
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:PerryLink/dsh-composer-historyConfiguration
All tunables are Schemastery Config fields (changeable from cordis.yml and the settings document). An id-targeted override replaces the whole row — restate every key you need. Invalid enum values fail the whole dsh boot loudly.
| Key | Default | Meaning |
|---|---|---|
recallWithDraft | 'save' | Recall mode (save / gate): save stashes a non-empty draft before recall; gate recalls only an empty draft (Claude/Codex-style gating) |
restoreOnEscape | true | Restore the stashed draft when Esc ends browsing |
edgeMode | 'logical' | Edge detection mode (logical / visual): by \n lines or by measured wrapped lines |
enableCtrlAlias | true | Let Ctrl+↑/↓ behave like the bare arrows |
restoreCaret | true | Also restore the stashed caret on bottom-out / Esc |
upKey | 'ArrowUp' | KeyboardEvent.key that recalls upward; '' disables |
downKey | 'ArrowDown' | KeyboardEvent.key that walks newer / restores; '' disables |
escapeKey | 'Escape' | KeyboardEvent.key that escapes browsing; '' disables |
maxHistory | 500 | Maximum recalled entries (newest kept); 0 = unlimited |
includeKinds | ['user'] | Conversation node kinds admitted into the history (add 'steering' to include steer messages) |
historyScope | 'session' | History scope (session / workspace): workspace prepends other listed sessions' user messages before the current session's |
persistHistory | true | Append sent messages to the browser-local store |
maxPersisted | 200 | Maximum persisted entries; 0 = unlimited |
enableSearch | true | Enable the Ctrl+R reverse-search overlay |
searchKeys | ['Ctrl+R'] | Chord specs opening the search (modifiers Ctrl/Alt/Meta/Shift + a key name); a malformed spec fails the browser fiber loudly |
searchCaseSensitive | false | Whether search matching distinguishes letter case |
includeCompactionSummaries | true | Admit [compacted] … checkpoint summaries into recall and search |
showCompactionNotice | true | Show a transient notice when a compaction checkpoint lands |
compactCommandText | '/compact' | Slash command the notice's "Compact now" action fills into the composer; '' hides the action |
enableSnippets | true | Enable the snippet library (/save, /load, search-panel picking) |
maxSnippets | 200 | Maximum stored snippets; 0 = unlimited |
enableTemplates | true | Enable the prompt-template library (variables fill at insertion) |
enableInsights | true | Enable the reuse-insight hint (local usage statistics) |
insightMinUses | 2 | Minimum uses before the reuse hint shows |
enableCompactionHighlight | true | Badge [compacted] … summaries distinctly in the search panel |