Contributing to dsh-conversation-share
August 14, 2026 · View on GitHub
Focused fixes, tests, and documentation changes are welcome. By participating, you agree to follow the Code of Conduct.
Before you start
- Read README.md — features, usage, and troubleshooting.
- Search existing issues and pull requests before opening duplicate work.
- Open an issue before changing the share flow (markers, snapping, capture pipeline, preview modal) or the bundle manifest.
- Keep each change narrowly scoped. Do not mix a feature or fix with unrelated refactoring or generated-output churn.
Architecture and scope
dsh-conversation-share is an out-of-tree DeepSeek Harness Web client plugin. Contributions must preserve these responsibilities:
- The plugin is a standard DSH bundle with a no-op host half and a browser half (
dsh.clientdeclaration +exports["./client"]) that does the sharing work. - Range selection uses two non-crossing markers: the start handle snaps to top edges, the end handle to bottom edges.
- Extra-long content is chunked and stitched to bypass the canvas height limit; the branded footer stays at the bottom.
- The vendored
html-to-imagesnapshot is MIT-licensed; keep its LICENSE and do not edit it as an untracked fork.
Development
pnpm run check # tsc --noEmit
DSH_CHECKOUT=/path/to/dsh-checkout pnpm run build # -> lib/ (committed)
Keep the bilingual README in sync (edit both README.md and README.zh.md, then node scripts/verify-i18n.mjs --write).
Commit and release
- Bump the version and update
CHANGELOG.md(Keep a Changelog format) in the same change that ships a user-visible difference. - Commit the rebuilt
lib/with the source change so consumers install without building. - Tag releases with a semantic version (
v0.1.1) and push tags with the release.