Developer guide
| Task | Start here |
|---|---|
| Add a provider / protocol | Complete Go registration example |
| Change model forms / endpoints | Models, Credential forms |
| Change routing | Template JSON, Groups |
| Change permissions / limits | Authorization, Quota chain |
| Change billing / guardrails | Pricing, XGo example |
| Find HTTP handlers | API and source |
| Verify changes | Commands, Regression, Browser E2E |
Make a change
git status --short
rg 'RegisterTransport' internal/provider
go test ./internal/provider/... -count=1Read the applicable AGENTS.md, CLAUDE.md and package README. Product changes need unit, backend regression and browser E2E tests. Use isolated schemas and clean up test records.
Preserve these rules
- Reauthorize on the server; hiding buttons is not authorization.
- Templates cannot expand model access. Never switch providers after emitting stream content.
- Read historical price snapshots. Commit PostgreSQL before acknowledging the Redis queue.
- Maintain both UI languages; keep request examples and prompts in English.
- Do not edit schema.d.ts manually. Go OpenAPI generation is not available; gen:api fails explicitly. Verify contracts through real HTTP regression and frontend consumer tests.