简体中文 | English
Thank you for contributing to dsh-mnemon. This document defines the Issue, Pull Request, verification, and maintenance rules. See the Development and Verification Guide for implementation details and test scenarios.
The repository accepts these external Pull Requests:
- Fixes: reproducible bugs, compatibility problems, and security hardening;
- Enhancements and optimization: improvements to existing capabilities, performance, stability, and user experience;
- Maintenance: tests, build work, refactors, and dependency compatibility.
New capabilities, Providers, persistence formats, RPC authority, or security-boundary changes require an Issue and maintainer approval before implementation begins.
Documentation-only PRs from external contributors are not accepted directly. Open an Issue first so maintainers can confirm the scope. Maintainer release notes, bilingual synchronization, and documentation maintenance are exempt.
- Node.js
^22.19.0 || >=24.0.0; DSH 0.1.1-rc.2 uses host primitives unavailable on Node 20, and CI covers Node.js 22.19 plus 24 with pnpm 10.13.1; - use only published
@deepseek-ai/*NPM contracts; do not modify DSH source or point tsconfig at a DSH source checkout; - do not commit tokens, credentials, private memory, sensitive paths, or unredacted logs in repository configuration, fixtures, screenshots, or PR descriptions;
lib/is generated build output and must not be committed or edited manually.
git clone https://github.com/omdsh-dev/dsh-mnemon.git
cd dsh-mnemon
pnpm install
pnpm run verifyverify runs TypeScript checks, Vitest, reproducible double builds, isolated real Headless-profile activation, and published-package validation.
Commit messages and PR titles use Conventional Commits:
type(scope): subject
Allowed types are feat, fix, chore, docs, test, refactor, perf, build, ci, and revert. Use a module or topic for the scope, for example:
fix(version): run pnpm update inside the owning profile
fix(client): honor trusted remote management grant
Code, comments, documentation, commit messages, and PR titles must not contain emoji.
- Use the latest main: rebase onto or merge the latest
main, resolve conflicts, and rerun verification before submitting. - Run complete verification: run
pnpm run verifyby default. If a check cannot run, document the reason, alternative evidence, and remaining risk in the PR. - Add targeted regression coverage: bugs need a test that fails before the fix and passes afterward. UI behavior must cover both authorized and rejected paths.
- Provide real evidence: attach a local screenshot or short video for user-visible changes. For Host, CLI, or Headless changes, attach redacted logs or command results.
- Keep both languages synchronized: long-lived documents under
docs/en/anddocs/zh-CN/must have matching names and responsibilities. KeepREADME.mdandREADME.zh-CN.mdsynchronized. - Explain security and data effects: changes to persistence formats, paths, RPC authority, Provider credentials, or import/export must explain compatibility, migration or rejection, rollback, and data retention.
- Keep boundaries stable:
src/shared/contracts.tsis the single source of Client and Host wire DTOs. Do not reintroduce Host modules into browser code. - Disclose AI coding: complete the PR template with the model and coding tool used. Contributors remain responsible for the final code, verification, and security.
- Do not commit generated output: ensure the worktree contains no
lib/output or temporary Provider-lab data.
- When user-visible behavior changes, review the English and Chinese versions of
ui-guide.md,getting-started.md,configuration.md, andoperations.md; - commands, configuration keys, paths, and code symbols must match across both languages;
- Runtime, Documents, and Memory Space registry format changes must not happen silently; include legacy-format handling and damaged-input tests;
- do not send user preferences into long-term Memory Spaces or use real private data in fixtures and documentation examples.
- Search open and closed Issues before submitting;
- use the bilingual Bug report form for bugs, including reproduction, environment, evidence, smoke tests, code references, and a patch proposal;
- use the bilingual standard Issue form for features, enhancements, documentation, and questions;
- Issues with missing required information are closed automatically; contributors may request reopening after completing the template;
- see Issue Triage or Issue 分类标准 for labels, classification, and closure criteria;
- report security vulnerabilities privately through SECURITY.md, not in a public Issue.
- Keep the bilingual PR template intact and complete its summary, context, affected areas, type, latest-code confirmation, AI disclosure, compatibility and data safety, local validation, and user-visible evidence;
- CI and PR policy checks must pass. Correct the description or implementation when a check fails; do not remove template sections;
- PRs superseded by a more complete solution, based on an obsolete design, or unable to upgrade safely will be closed with an explanation;
- reviews use the current
main, public contracts, and released behavior as the source of truth, not only the PR description.