Neplich/dsh_plugin--packages-feature-dsh-chat-autoload ↗★ 1
@neplich/dsh-chat-autoload
dsh Web GUI plugin: automatically pages a session's full history into the client on open, and exposes the chatAutoload service other plugins can depend on 适合需要索引完整对话历史的插件或用户;不写文件与设置,移除后依赖方会降级为仅索引已加载窗口。
インストール
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Neplich/dsh_plugin#c83599509c2f790ba23c59b19d90e521fa774c1d&path:packages/feature/dsh-chat-autoloadドキュメント
README 全文を読む ↗dsh-chat-autoload
English · 中文版
dsh Web GUI plugin: when a session becomes current, automatically page its full history into the client — the equivalent of clicking "load older" until the log head is reached — and expose the chatAutoload service so other plugins can depend on (and re-trigger) that behavior.
Why
The Web GUI pages long conversations 50 messages at a time. Features that index the whole conversation (e.g. dsh-chat-navigator) need the complete window. The host places no upper bound on the page size, so this plugin simply drives the session's own loadOlder() to completion — existing session data stays the single source; nothing is persisted, no model request is made.
Behavior
- On every session switch, pages older history until the window reaches the log head, sequentially (one page per request, with a no-progress stall guard).
- After a reconnect resync truncates the window back to the tail page, re-arms and pages again automatically.
- Provides the
chatAutoloadservice:ensureLoaded(id)— start/re-arm full-history paging for a session (idempotent).isComplete(id)— whether the session's full history is currently paged in.
Install
dsh plugin --profile add @neplich/dsh-chat-autoload
Uninstall
dsh plugin --profile remove @neplich/dsh-chat-autoload
The plugin writes no files and no settings fields, so removal leaves no residue. Consumer plugins that read chatAutoload (e.g. dsh-chat-navigator) degrade gracefully once it is removed — they index only the loaded window instead of the complete history.
Model Experience
None: the plugin never sends model requests and never touches the session log; it only reads history through the existing paging RPC.