- Copy
.env.exampleto.env. - Prefer
docker compose up -d --buildfor full-stack local work. - For manual backend work, run commands from
backend/. - For frontend work, run
npm installbefore lint/build/test.
./scripts/verify_threading.shFor backend-only changes, run cd backend && python3 -m pytest -q. For frontend changes, run cd frontend && npm test && npm run lint && npm run build.
- Add or update tests before production code changes.
- Keep
backend/services/threading_service.pyas the only canonical thread assignment owner. - Keep fixtures in
backend/tests/fixturessmall and synthetic; do not commit real email data. - Preserve honest send semantics: simulated local send is not delivery proof.
- Do not claim production multi-user email isolation until historical
emails.user_idvalues are audited/backfilled against verified mailbox owners and the scoped query tests are kept green.
Never commit .env, real mailbox exports, SMTP credentials, OAuth secrets, OpenAI keys, or user email content. Use synthetic .eml fixtures only.
To keep our project organized and easy to navigate for everyone, please adhere to the following communication guidelines:
- Issues: Use the provided Issue Templates (
Bug ReportorFeature Request). Search existing issues before creating a new one to prevent duplicates. - Pull Requests: Ensure your PR title is descriptive (e.g.,
fix: correct email parsing bug). Fill out the PR template entirely. Keep PRs focused on a single logical change. - Review Process:
- Ensure all CI checks pass (linting, tests, etc.) before requesting a review.
- Respond to reviewer comments promptly.
- Be respectful and constructive in your code reviews.