Thanks for your interest in contributing! Here's how to get started.
- Fork and clone the repo
- Install dependencies:
npm install - Copy
.env.exampleto.env.localand fill in your values (see README) - Set up the database:
npx prisma generate && npx prisma db push - Start the dev server:
npm run dev
- Create a branch from
mainfor your changes - Make your changes and test them locally
- Run
npm run lintto check for lint errors - Run
npm run buildto verify the build succeeds - Commit with a clear, descriptive message
When changes touch auth, workspace membership, invites, or Settings team management, validate:
- Role rules
- Owner can invite and remove members
- Member can invite and revoke invite links
- Member cannot remove members
- Invite flow
- Invite link creation + copy works
- New user can sign up with invite token and join workspace
- Existing user can sign in with invite token and join workspace
- Revoked or expired links are rejected
- Workspace data access
- Rooms, agents, tasks, messages, artifacts, and notifications are accessible only within the active workspace
- Public room share links still work as view-only
- Shared Warp API key
- Key save/read works in Settings
- Agents in the same workspace can invoke using the shared key
- Keep PRs focused on a single change
- Include a description of what your PR does and why
- Link any related issues
- Make sure CI checks pass
- Use GitHub Issues to report bugs or request features
- Include steps to reproduce for bugs
- Include your Node.js version and OS
- TypeScript throughout
- Follow existing patterns in the codebase
- Use the existing Prisma schema conventions for database changes
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.