Runtime setting
Update src/config.rs, config.example.toml, docs in using/configuration, relevant reference/* pages, and generated default tests.
Use this checklist before opening a pull request that changes ProxAI behavior. It is intentionally operational: update the code path, tests, and docs that keep the project coherent.
Update src/config.rs, config.example.toml, docs in using/configuration, relevant reference/* pages, and generated default tests.
Update route matching behavior, provider request preparation, provider transport/auth, behavior contracts, and focused route tests.
Add request, non-streaming response, streaming conversion, route selection support, protocol docs, and e2e behavior tests.
Check terminal events, SSE byte preservation, idle-read timeout, semantic tool-call timeout, Unicode chunk scanning, and stream outcome logs.
Update typed error projection, client-facing error payload, preserved headers, SSE error rendering, docs, and contracts.
Keep pages paired under en and zh, update sidebar, update index/hub pages, and run just site check.
| Boundary | Rule |
|---|---|
| Request translation | (request_protocol, provider_protocol, normalized_payload) -> payload |
| Non-streaming response translation | (request_protocol, provider_protocol, payload) -> payload |
| Streaming response translation | (request_protocol, provider_protocol, ByteStream) -> ByteStream |
| Do not pass through | HTTP Response, Body, route/model rewrite details, or provider request structs into translation/ |
| Section | Owns | Avoid |
|---|---|---|
using/ | Task walkthroughs: how to run, configure, route, observe, and troubleshoot ProxAI | Long reference tables or source-level internals |
protocol/ | Wire behavior, request/response shapes, streaming expectations, and interaction examples | Implementation details that belong in developer/ |
developer/ | Source-level architecture, conversion boundaries, streaming internals, error internals, and maintainer checklists | User-facing setup instructions |
reference/ | Exact values, defaults, phase names, protocol names, behavior contracts, and glossary terms | Tutorial flow or implementation narrative |
| Change area | Relevant contracts |
|---|---|
| Runtime settings and startup | C1–C4 |
| Listener separation and MCP | C5–C6 |
| Routing and conversion | C7–C10 |
| Provider authentication | C11–C12 |
| Response reconstruction | C13–C14 |
| Errors | C15–C22 |
| Privacy | C23–C25 |
| Change area | Suggested validation |
|---|---|
| Docs only | just site check |
| Formatting only | cargo fmt --check |
| Rust unit coverage | just test_lib |
| Proxy behavior / routing / normalization | just test-e2e |
| Warning-free Rust checks | pixi run cargo clippy --lib --tests -- -D warnings |
| Full local path | just check |
config.toml, API keys, private captures, logs, or prompt-bearing local fixtures.