Thanks for contributing.
- Read the
CODE_OF_CONDUCT.md. - Check open issues and PRs to avoid duplicate work.
- For security issues, do not open a public issue. Follow
SECURITY.md.
Prerequisites:
- Node.js 22.x
- pnpm 10.12.4
Runtime and types policy:
Install:
pnpm installRun desktop app:
pnpm devRun web app:
pnpm -C web dev- Create a branch from
main. - Make focused changes.
- Run checks locally.
- Open a PR with clear context and test evidence.
Suggested branch naming:
feat/<short-name>fix/<short-name>docs/<short-name>chore/<short-name>
Run these before opening or updating a PR:
pnpm lint
pnpm lint:web
pnpm typecheck
pnpm build
pnpm -C web build
pnpm test:coverageIf your change touches desktop behavior, also run:
pnpm test:smokeRuleset required checks (exact GitHub check names):
Desktop Lint, Typecheck, BuildFrontend Lint, Typecheck, BuildSmoke Coverage (non-Electron)Smoke ScopeDesktop Smoke (Electron)
- Prefer small, reviewable commits.
- Use clear commit messages (Conventional Commit style is recommended).
- Include screenshots or recordings for UI changes.
- Document behavior changes in
CHANGELOG.mdunderUnreleased.
Docs and guides live in web/content/docs/.
When changing product behavior:
- Update relevant docs pages.
- Keep examples and command snippets in sync.
- Website installer endpoint:
/download(serves macOS.dmgwhen available). - GitHub Action:
Release Desktop Installeruploads.dmgassets to published releases. - Manual backfill for an existing tag:
gh workflow run "Release Desktop Installer" -f tag=v1.2.0See SUPPORT.md for where to ask questions and report issues.