Skip to content

Contributor Checklist

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.

C1

Runtime setting

Update src/config.rs, config.example.toml, docs in using/configuration, relevant reference/* pages, and generated default tests.

C2

Provider or route behavior

Update route matching behavior, provider request preparation, provider transport/auth, behavior contracts, and focused route tests.

C3

New conversion pair

Add request, non-streaming response, streaming conversion, route selection support, protocol docs, and e2e behavior tests.

C4

Streaming behavior

Check terminal events, SSE byte preservation, idle-read timeout, semantic tool-call timeout, Unicode chunk scanning, and stream outcome logs.

C5

Error rendering

Update typed error projection, client-facing error payload, preserved headers, SSE error rendering, docs, and contracts.

C6

Documentation architecture

Keep pages paired under en and zh, update sidebar, update index/hub pages, and run just site check.

BoundaryRule
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 throughHTTP Response, Body, route/model rewrite details, or provider request structs into translation/
SectionOwnsAvoid
using/Task walkthroughs: how to run, configure, route, observe, and troubleshoot ProxAILong reference tables or source-level internals
protocol/Wire behavior, request/response shapes, streaming expectations, and interaction examplesImplementation details that belong in developer/
developer/Source-level architecture, conversion boundaries, streaming internals, error internals, and maintainer checklistsUser-facing setup instructions
reference/Exact values, defaults, phase names, protocol names, behavior contracts, and glossary termsTutorial flow or implementation narrative
Change areaRelevant contracts
Runtime settings and startupC1–C4
Listener separation and MCPC5–C6
Routing and conversionC7–C10
Provider authenticationC11–C12
Response reconstructionC13–C14
ErrorsC15–C22
PrivacyC23–C25
Change areaSuggested validation
Docs onlyjust site check
Formatting onlycargo fmt --check
Rust unit coveragejust test_lib
Proxy behavior / routing / normalizationjust test-e2e
Warning-free Rust checkspixi run cargo clippy --lib --tests -- -D warnings
Full local pathjust check
  • Do not commit config.toml, API keys, private captures, logs, or prompt-bearing local fixtures.
  • Sanitized fixtures should be minimal and should not contain private upstream URLs or credentials.
  • Logs should not include request bodies, Authorization headers, API keys, or private prompts.