Thanks for contributing to ExtBridge!
- Read
README.mdfor project goals and current implementation status. - Search existing issues/PRs before opening new ones.
- Keep changes focused and scoped to a single concern where possible.
- Install Node.js 20+.
- Enable Corepack:
corepack enable - Install dependencies:
corepack pnpm install
- Build, test, and format code:
npm run build # Run core tests npm run test
packages/core: shared business logic (adapters, registry, dedup, sync, doctor, watch)packages/cli: command-line interfacepackages/gui: Desktop GUI built with Electron, React, Vite, and tailwindcss.
- Use TypeScript with strict typing.
- Keep modules small and purpose-specific.
- Favor explicit errors over silent failures.
- Preserve cross-platform behavior (Windows + Unix-like).
- For the GUI: ensure React components are strictly typed and use Tailwind for UI styling following the
kit/DESIGN_KIT.md.
When developing the GUI in packages/gui:
- Start the dev server:
pnpm --filter @iamjarvis/extbridge-gui run dev
- Run E2E Playwright tests to ensure Cross-Platform compatibility:
pnpm --filter @iamjarvis/extbridge-gui exec playwright test
ExtBridge's CI will enforce Playwright E2E tests before merges on Linux, Windows, and macOS.
ExtBridge modifies extension directory entries. Follow these rules:
- Do not introduce destructive behavior without a dry-run path.
- Ensure file operations are deliberate and recoverable.
- Maintain or improve current safety behavior for
init,sync,clean, anddoctor.
- Build passes (
npm run build) - Core tests and typechecks pass (
npm run test,npm run typecheck) - GUI E2E tests pass (
playwright test) - Documentation updated for user-facing changes (README.md, CLI docs, GUI docs)
- Backward compatibility and migration impact considered
Use clear, imperative commit subjects, for example:
core: fix symlink repair for missing store entriescli: add doctor commandgui: implement dark mode toggledocs: update GUI setup instructions
- Bug reports: include OS, Node version, command run (or GUI screen), expected result, and actual result.
Do not open public issues for sensitive vulnerabilities.
See SECURITY.md for private disclosure guidance.