Before you start
- Open an issue first for anything substantial. A design discussion is cheaper than a rejected pull request.
- Read Repository layout so your change lands in the right package.
- Adding a provider or a telephony vendor? Follow Adding an AI provider or Adding a telephony provider — both are designed as extension points, so you should not need to touch shared code.
Setting up
make application-up wraps ./scripts/start-application-services.sh; make help lists every target.
There is no pip install -e . — pyproject.toml is an empty placeholder. Install per app:
Branching
Branch fromdev, not main:
dev-<feature> and chore/<task>.
Commit messages
Match the existing history: a sentence-case imperative summary, no type prefix, no trailing period.Code style
model-server/ruff.toml is the lint configuration for that tree. It deliberately excludes vendored upstream model code — restyling somebody else’s project turns every upstream sync into a merge conflict — but everything authored here is linted.
Run the checks
There is no CI, so nothing runs these for you. Run them before opening a pull request:Opening a pull request
Targetdev. In the description:
- What changed and why.
- Which suites you ran, and their result.
- Anything you deliberately left out.
- For behaviour changes, how a reviewer can reproduce it.
Documentation
Documentation lives indocs/ and is built with Mintlify. Navigation is defined in docs.json at the repository root. A hosted docs site is not live yet — until it is, read the Markdown in the repo. If your change alters behaviour, update the page that describes it — a feature with stale docs is a feature people cannot use.
.docs-meta/STYLE.md is the style contract: front matter, callout and tab usage, mermaid conventions, naming, and the rule that every value must come from the source rather than from memory.
New page? Add it to the matching tab and group in docs.json, or Mintlify will not show it. Preview with npx mint dev from the repository root.