# DSH Session Intelligence [中文](README.md) A DeepSeek Harness Web plugin with a persistent right-side session intelligence tab, first/latest user-request summaries, activity statistics, and read-only Git status. The UI is currently Chinese; summaries follow the language of the source message. ## Feature previews Actual plugin components rendered with **fictional session data** in an illustrative layout, not a screenshot of the full DSH application. No private chats or projects are shown. ![Persistent right-side panel and header summary](assets/sidebar-overview.jpg) ![Separate first/latest user-request summaries and Git status](assets/request-summaries.jpg) ## Install Requires an initialized DSH Web profile, a configured model, and the original author's [dsh-better-sidebar](https://github.com/omdsh-dev/DSH-better-sidebar) enabled. Original functionality was verified with DSH `0.1.1-rc.2`, better-sidebar `0.14.0`, and Node.js 24 on macOS. Other environments have not been fully verified. The package requires Node.js 22 or later. ```sh dsh plugin --profile web add dsh-better-sidebar@0.14.0 dsh plugin --profile web add https://github.com/leechengwei/dsh-session-intelligence/releases/download/v0.1.0/dsh-session-intelligence-0.1.0.tgz ``` A downloaded tarball can also be installed using its absolute path. Wait for running tasks to finish, restart DSH Web, then hard-refresh the page. The tab opens on entering a session; subsequent close/collapse/tab choices are respected. Clicking the header summary reopens the tab. If upgrading from `@local/dsh-client-ui-session-status`, remove that old package first with `dsh plugin --profile web remove @local/dsh-client-ui-session-status`. Both packages share route/tab IDs and must not run together. Remove only legacy manual mount entries that refer to the old package, if any. Uninstall with `dsh plugin --profile web remove dsh-session-intelligence`, then restart and refresh. Chats and other plugins remain untouched. ## Behavior and boundaries - Summarizes the first and latest text-bearing human user messages, not assistant output or the entire conversation. With one message, both fields share a summary. - Shows the latest session title, activity times, message/completed-turn counts, running subagents, and preset. - Shows branch/worktree/HEAD, up to 40 changed file entries, and ahead/behind against the local upstream reference. It does not fetch or modify Git. - Uses the real better-sidebar right workbench, including migration of a legacy bottom tab. Compatibility is currently limited to `0.14.x` because docking uses its layout state. - Refreshes approximately every 30 seconds, on focus, and on session changes. Pure images/attachments are not summarized. Generation failures are retried on refresh. ## Privacy and cost Opening a session automatically invokes the session's most recently recorded DSH provider/model with the full selected user text. This may incur extra model costs. There is no separate API key, automatic redaction, or guarantee of offline processing. The plugin does not append source prompts to chat events or expose raw-message fields through its own API. It caches up to 200 summaries in process memory, not on disk; restarts/evictions/model changes can trigger regeneration. Generated summaries may still contain sensitive information. DSH/provider logging policies remain outside this plugin's control. See [PRIVACY.md](PRIVACY.md). For trusted local DSH use only. Loopback gating is not full authentication; do not expose these endpoints through a public reverse proxy. Direct LAN access is unsupported. ## Develop Runnable JavaScript is committed; there are no install/build scripts. Tests use Node.js built-ins and synthetic data, with no model credentials required: ```sh npm run check npm pack --dry-run npm pack ``` ## License [MIT](LICENSE). DSH and better-sidebar retain their respective licenses.