dsh-chat-fold
消息通讯 活跃维护

dsh-chat-fold

tntcannon5000/dsh-chat-fold

轻量级网页版对话工具功能插件,支持恢复长会话中被折叠的已完成对话回合,原生折叠功能关闭时也能完整查看历史上下文,安装后无额外配置负担。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
TypeScript
主要语言
MIT
开源协议
84 KB
仓库大小
15 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:tntcannon5000/dsh-chat-fold
git clone https://github.com/tntcannon5000/dsh-chat-fold.git
git clone git@github.com:tntcannon5000/dsh-chat-fold.git
README.md main

DSH Chat Fold

Unofficial, removable DeepSeek Harness plugin that restores compact turn folding in long sessions. Once a session outgrows the initial transcript window, stock folding stays disabled and every completed process segment remains expanded forever. This plugin restores the compact interaction and preloads a five-times-larger default history window without touching Harness or the relay.

What it does

  • Every settled turn collapses behind a disclosure above the final answer, in the same slot stock uses. System prompts, tool calls, context injections, intermediate narration, and reasoning embedded in the answer row are folded; user/steering rows, final prose, errors, and the footer remain visible.
  • The disclosure reuses stock's localized end-to-end Ran for … value, renders it slightly larger, and uses a crisp rotating SVG chevron. Clicking expands the turn in place; clicking again re-collapses it.
  • Selecting a session automatically loads four more stock pages after its initial page, expanding the default history window from 50 to as many as 250 messages.
  • A turn still streaming is never folded; it folds automatically when its footer arrives. While stock folding is available, the plugin stands down completely.

The fold controller writes plugin-namespaced data-dsh-fold-* attributes and one stylesheet on top of stock semantic anchors. Its only DOM addition is the disclosure subtree inside each turn's empty stock turn-process row. It copies stock's already-formatted duration label verbatim rather than parsing localized text or estimating timing. A separate bounded controller calls the selected Session's public loadOlder() operation sequentially. The disclosure is self-healing against stock re-renders, and React reconciliation, streaming, rewind, fork, and footer actions remain untouched.

Install

Development (local checkout):

pnpm install
pnpm run check

Then add a link: dependency to the Web profile's package.json and append dsh-chat-fold to that profile's dsh.profile.bundles list. Build this package before reloading Harness because the Web runtime serves lib/client.js. Tagged releases include the same checked build artifacts used by local development.

From GitHub:

dsh plugin add tntcannon5000/dsh-chat-fold

Compatibility

The current development target is DeepSeek Harness 0.1.3-alpha.1; the DOM anchors are pinned to that release. This Harness version can activate stock folding after the plugin's bounded history preload finishes, in which case the plugin deliberately hands the transcript back to stock and adds no duplicate disclosure. It owns folding only while stock folding remains unavailable. The plugin works alongside other client plugins, including dsh-mobile-web, because each owns its own namespaced attributes.

Known Limitations and Deferred Work

  • Expansion state lives in memory: it resets on reload and on session switch.
  • Rows hidden by this plugin stay hidden for in-page search; revealing a search hit inside a folded turn requires expanding that turn first.
  • If stock cannot derive a turn duration because a boundary is outside the available event window, the disclosure falls back to the previous tool/message-count summary.
  • Turn classification trusts the stock turn-tail and empty turn-process rows as markers; if a future Harness release changes these anchors, the plugin degrades to no-op rather than breaking the transcript.