Thanks for considering a contribution to leads-finder. This document covers everything you need to get a change merged.
By submitting a contribution you agree that it is licensed under Apache 2.0.
See the README for environment setup. TL;DR:
pnpm install
docker compose up -d postgres
cp .env.example .env # fill at least DATABASE_URL and ANTHROPIC_API_KEY
pnpm migrate
pnpm worker # in one terminal
pnpm web # in another- Branch from
main. Name branches<type>/<short-slug>(e.g.feat/sequence-pause,fix/inbox-pagination). - Use Conventional Commits:
feat(scope): …,fix(scope): …,docs(scope): …,chore(scope): …,refactor(scope): …,test(scope): …. - Keep commits atomic and in English.
The schema lives in db/schema.ts and is the single source of truth. After editing it:
pnpm migrate:generate # produces db/migrations/NNNN_*.sql
pnpm migrate # apply locallyCommit both the schema edit and the generated SQL file in the same commit.
Vitest runs against a real Postgres. The integration suite expects a database reachable at port 5434 (the default in docker-compose.yml).
pnpm test # full run
pnpm test:watch # watch modevitest.config.ts uses fileParallelism: false because the suite shares a single test database — keep it that way.
pnpm lintBoth the root and web/ packages are covered.
Before requesting review:
-
pnpm lintis clean. -
pnpm testpasses locally. - If you touched
db/schema.ts, a generated migration is committed alongside. - Public-facing changes (CLI flags, env vars, API routes) are reflected in
README.mdor relevantdocs/*.md. - Commits follow Conventional Commits.
- No secrets, fixtures with real customer data, or unrelated formatting noise.
Open the PR against main and fill in the template. Small, focused PRs get merged faster.
Use the bug report or feature request template under .github/ISSUE_TEMPLATE/. For security issues, do not open a public issue — see SECURITY.md.
This project follows the Contributor Covenant v2.1. Please read it before participating.