Memory
dsh-project-summary
callqh/dsh-project-summary · ★ 1
A compact floating Git project summary for DeepSeek Harness: branch, changes, commits and GitHub pull requests.
Manifest details
安装
dsh plugin --profile web add 'github:callqh/dsh-project-summary#10696ed2d255b1c40c4bcdd942fdb94ea9221423'GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
For install and environment setup, plus plugin development tutorials, see DSH community docs ↗
README
Table of contents
A floating card for branches, changes, commits and pull requests inside DeepSeek Harness.
简体中文 · English
A third-party, read-only DSH plugin. The compact card floats at the top-right of the active conversation pane, rather than consuming an entire right-hand column. It follows the conversation as the sidebar opens, closes or resizes, and inherits the client's light/dark theme colors.
Initial compatibility target: DSH
0.2.0-rc.2. Runtime integration was developed on macOS Desktop; source version0.1.2also passes disposable Web-profile startup and summary/diff RPC checks on DSH0.2.2-rc.1. Windows is not verified. Development tests can run on Linux CI. This project is not affiliated with DeepSeek or OpenAI. UI labels are currently Chinese.
Preview
| Dark theme, sidebar open | Light theme, sidebar open |
|---|---|
![]() |
![]() |
Component-demo screenshots use a simulated layout, theme variables and fictional repository / PR data. They are not screenshots of a real DSH session.
Features
- Repository and branch, detached HEAD, and ahead/behind counts against the locally known upstream.
- Changed-file count and added/deleted lines, with a read-only tracked-file diff preview.
- GitHub PR title, number, status, base branch and link; open PRs are preferred.
- Three recent commits, including short hash, subject, author and date.
- A roughly 296px-wide expanded card, persistent collapsed state, and a collapsed default on narrow screens.
- DSH light/dark palette inheritance and conversation-bounded positioning, without replacing the sidebar.
- Local Git refresh every 15 seconds while expanded; PR cache of 60 seconds; reads pause when the page is hidden.
- Graceful states for non-repositories, missing GitHub CLI, inaccessible repositories and failed queries.
Install
Source version
0.1.2has not been released yet. It removes the old exact DSH version gate and uses host services without installing private DSH dependencies. Runnpm pack --ignore-scriptsto create a local archive. The Release links below still refer to published0.1.1; use the fixed local archive for DSH0.2.2-rc.1.
1. Get the prebuilt bundle
Download dsh-project-summary-0.1.1.tgz from GitHub Releases. Host and Client artifacts are included: no installation build scripts need approval.
2. Install and enable through DSH
Ask your DSH Agent:
Use plugin_manager to install and enable this plugin bundle:
https://github.com/callqh/dsh-project-summary/releases/download/v0.1.1/dsh-project-summary-0.1.1.tgz
Alternatively, provide the absolute path of the downloaded tarball. Tool arguments:
{
"action": "install_bundle",
"target": "https://github.com/callqh/dsh-project-summary/releases/download/v0.1.1/dsh-project-summary-0.1.1.tgz",
"enabled": true
}
This is a DSH tool payload, not a shell command. Depending on your permission settings, DSH may ask for approval. Profile-wide installation and activation affect all sessions in that profile.
3. Load the new version
Follow the plugin manager's result:
applied: refresh the current DSH page to load the new Client bundle.restart-required: quit and reopen DSH; refreshing alone may keep the old version.
Open a main conversation whose working directory is a Git repository. No additional plugin configuration is required.
Not published to the npm registry yet. Use the GitHub Release tarball, not
npm install dsh-project-summary.
Optional GitHub PR support
Local branches, changes and commits only require Git. PR metadata additionally requires GitHub CLI to be installed and authenticated in the environment used by the DSH Host:
gh auth login
gh auth status
The plugin queries GitHub.com repositories referenced by origin, supporting HTTPS, git@github.com: and ssh://git@github.com/ URL forms. Open, merged and closed PRs can be displayed; an open PR is preferred among matching results. GitLab, GitHub Enterprise and alternative remote names are not supported.
Missing gh, missing credentials, insufficient access or network failure only affect the PR area. The plugin never starts a login flow, reads a token value or displays credentials.
Data scope and limitations
| Item | Definition |
|---|---|
| Project | The loaded main Session's host-owned working directory; Git discovers the repository in that directory or its parents |
| Line statistics | Final worktree contents relative to HEAD, including staged and unstaged edits; not an AI-turn edit count |
| Untracked files | Names only; no content reads or line statistics. Untracked directories are summarized by Git's --untracked-files=normal mode |
| No initial commit | Staged changes are displayed; recent commits are empty |
| Binary files | Counted separately, not as text lines |
| Ahead/behind | Compared to the locally known upstream; no automatic fetch; zero without an upstream |
| Diff | Tracked-file preview capped at 100,000 characters; excludes untracked contents |
| Large repositories | 8-second timeout and 2 MB output cap per command; oversized output produces an error state |
| Refresh | 4-second local snapshot cache and 60-second PR cache; manual refresh still respects the PR cache |
Security and privacy
Commands use fixed command names and argument arrays through execFile, not shell interpolation. Git reads disable fsmonitor, hooks, external diff, textconv, pager and optional locks. Only existing Session IDs are accepted from the client, not arbitrary filesystem paths.
There is no telemetry, independent database or credential storage. Local storage only remembers the collapsed state. Installing this trusted Host plugin authorizes local reads and GitHub CLI network queries using existing credentials; it is not a sandbox for malicious repositories.
See SECURITY.md for boundaries and private vulnerability reporting. Never put tokens, private repository contents or unredacted logs in public issues.
Troubleshooting
- No card: check that the bundle is enabled, perform the required restart, and open a loaded main conversation with a working directory. Settings pages do not display the card. An incompatible runtime may lack the expected slots or semantic layout markers.
- Theme mismatch: the card follows the active DSH theme, not an independent OS theme preference. Choose DSH's system theme setting to follow the OS.
- No PR: check the GitHub.com
origin, whether the branch has a PR, andgh auth statusin the Host environment. Allow up to a minute for the PR cache to expire. - Narrow pane: collapse the card. Its position follows the conversation boundaries rather than the window's right edge.
- Disable or uninstall: use DSH's plugin manager with
set_bundle(enabled: false) orremove_bundle, targetingdsh-project-summary; refresh or restart as instructed.
Development and contributions
Requires Node.js 22.18+ and Git. No sibling project or private runtime checkout is needed:
git clone https://github.com/callqh/dsh-project-summary.git
cd dsh-project-summary
npm ci --ignore-scripts
npm run check
npx playwright install chromium
npm run test:ui
npm pack --ignore-scripts
npm run check includes type checking, builds, Git tests and package checks. UI tests use mocked RPC, layout and theme fixtures: they do not start a DSH server or modify your profile. Source and prebuilt artifacts are committed.
Issues and pull requests are welcome. See CONTRIBUTING.md for the project layout and guidelines, and CHANGELOG.md for release notes.
License
MIT © 2026 callqh. Use, modify and redistribute while retaining the license notice.

