62 lines
2.7 KiB
Markdown
62 lines
2.7 KiB
Markdown
|
|
# Contributing to Rakazo
|
||
|
|
|
||
|
|
Thanks for helping improve Rakazo. Keep changes focused and testable.
|
||
|
|
|
||
|
|
## Run locally
|
||
|
|
|
||
|
|
See [README.md](README.md) for full details. Quick start from the repo root:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cp .env.example .env
|
||
|
|
# Set BETTER_AUTH_SECRET and ENCRYPTION_KEY to long random strings.
|
||
|
|
docker compose --env-file .env -f infra/compose/docker-compose.yml up postgres -d
|
||
|
|
pnpm install
|
||
|
|
pnpm db:generate
|
||
|
|
pnpm db:migrate
|
||
|
|
pnpm sandbox:build
|
||
|
|
pnpm dev
|
||
|
|
```
|
||
|
|
|
||
|
|
## Checks before you open a PR
|
||
|
|
|
||
|
|
| Command | When to run |
|
||
|
|
| --- | --- |
|
||
|
|
| `pnpm test` | Default. Units, properties, and in-process contracts. Scripted runtime, fake sandbox, in-memory wakeup — no live connector or model-provider calls. |
|
||
|
|
| `pnpm test:integration` | Postgres via Testcontainers: product journeys, authorization, executor lifecycle, Graphile / LISTEN/NOTIFY. Needs Docker. |
|
||
|
|
| `pnpm test:e2e` | Playwright against the emulated API. Needs Docker. |
|
||
|
|
| `pnpm test:topology` | Local product-path smoke: Docker computer + Graphile worker recovery. Needs Docker. Not PR CI. |
|
||
|
|
| `pnpm test:canary` | Live OpenRouter / E2B canaries. Needs keys. Not PR CI. |
|
||
|
|
| `pnpm test:computer` | Real vision model + E2B desktop. Needs keys; see README. Not PR CI. |
|
||
|
|
| `pnpm check` | TypeScript (`tsc`) across the monorepo. |
|
||
|
|
| `pnpm lint` | Biome lint and format check. |
|
||
|
|
|
||
|
|
CI runs `pnpm lint`, `pnpm check`, production builds (including Electron preload smoke), `pnpm test`, `pnpm test:integration`, and `pnpm test:e2e` on every PR.
|
||
|
|
|
||
|
|
## Secrets and configuration
|
||
|
|
|
||
|
|
- **Never** commit `.env` files or secrets.
|
||
|
|
- **Never** paste API keys, tokens, or passwords in issues or PRs.
|
||
|
|
- Use placeholders in examples (`your-openrouter-key`, etc.).
|
||
|
|
|
||
|
|
The product path is **Pi + Docker + Graphile**. Emulator settings (`AGENT_RUNTIME=scripted`, `SANDBOX_PROVIDER=fake`, `WAKEUP_DRIVER=memory`) are for tests only.
|
||
|
|
|
||
|
|
**Integrations** can use [Composio](https://composio.dev/) or Pipedream Connect as optional managed
|
||
|
|
app catalogs. Users can also install HTTPS MCP servers (including Treg) and bounded OpenAPI tool
|
||
|
|
sources. Connector tests must stay deterministic and offline. Never put connector credentials in
|
||
|
|
capability config, fixtures, logs, or snapshots; use the encrypted secret store and fake placeholders.
|
||
|
|
|
||
|
|
## Pull requests
|
||
|
|
|
||
|
|
- Keep PRs small and easy to review.
|
||
|
|
- Target the `main` branch.
|
||
|
|
- Describe what changed and **how you tested** (e.g. `pnpm test`, manual steps).
|
||
|
|
- Link related issues when applicable.
|
||
|
|
|
||
|
|
## Contact
|
||
|
|
|
||
|
|
| Address | Use for |
|
||
|
|
| --- | --- |
|
||
|
|
| [security@rakazo.com](mailto:security@rakazo.com) | Vulnerabilities only — see [SECURITY.md](SECURITY.md) |
|
||
|
|
| [support@rakazo.com](mailto:support@rakazo.com) | User and support questions |
|
||
|
|
| [elie@rakazo.com](mailto:elie@rakazo.com) | Maintainer |
|