Contributing
Contributions are welcome.
Quick start for contributors
Section titled “Quick start for contributors”git clone https://github.com/komaa-com/deepgram-msteams-bridge-pycd deepgram-msteams-bridge-pypython -m venv .venv && source .venv/bin/activatepip install -e ".[dev]"pytest -q # 101 tests, no network or Deepgram account neededruff check src testsruff format --check src tests- One runtime dependency (
aiohttp); everything else is dev-only. - The relay is copy-only at 16 kHz - the Voice Agent session is pinned to
linear16@ 16000, and the provider adapter (deepgram.py) owns the base64/binary framing. Keep that boundary. - Tests use a fake
AgentPort(seetests/conftest.py), so the suite runs without a Deepgram account - including theSettingsAppliedordering gate and the barge-in ghost filter. - 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/deepgram-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.