Contributing
Contributions are welcome.
Quick start for contributors
Section titled “Quick start for contributors”git clone https://github.com/komaa-com/cartesia-msteams-bridge-pycd cartesia-msteams-bridge-pypython -m venv .venv && source .venv/bin/activatepip install -e ".[dev]"pytest -q # 61 tests, no network or Cartesia account neededruff check src testsruff format --check src tests- One runtime dependency (
aiohttp); everything else is dev-only. - The relay is verbatim at 16 kHz - the Line stream is pinned to
pcm_16000and the base64 payload must stay untouched on the hot path; the provider adapter (cartesia.py) owns the event framing. Keep that boundary. - Tests use a fake
AgentPort(seetests/conftest.py), so the suite runs without a Cartesia account - including the ack ordering gate and the goodbye paths. - CI runs ruff + the test suite on Python 3.10 through 3.13 for every push and PR.
- Releases are tagged
v*and published to PyPI by CI via trusted publishing - the tag must match thepyproject.tomlversion. - Docs live in
website/(this site). Any merged change towebsite/redeploys the site automatically.
Parity with the Node.js sibling
Section titled “Parity with the Node.js sibling”This package mirrors @komaa/cartesia-msteams-bridge: same wire contract, same environment variables, same behaviors. When you change observable behavior here, check whether the Node implementation needs the same change (and vice versa) so the two stay drop-in interchangeable.
Documentation policy
Section titled “Documentation policy”Document how to connect to the hosted StandIn service and how the bridge behaves on the wire. Do not document the internals of the hosted media bridge - this repository only depends on its published wire contract.