Skip to content

docs(mod3): scrub participant_id examples (PR #5 ancillary)#8

Merged
chazmaniandinkle merged 3 commits intocogos-dev:mainfrom
chazmaniandinkle:fix/scrub-participant-id-examples
Apr 24, 2026
Merged

docs(mod3): scrub participant_id examples (PR #5 ancillary)#8
chazmaniandinkle merged 3 commits intocogos-dev:mainfrom
chazmaniandinkle:fix/scrub-participant-id-examples

Conversation

@chazmaniandinkle
Copy link
Copy Markdown
Contributor

Replaces hardcoded 'slowbro' with generic 'alice' in MCP tool docstrings and JSON schemas (4 occurrences across http_api.py, mcp_shim.py, server.py). Designed to land alongside PR #5.

Introduces SessionRegistry + GlobalSerializer + live output-device
resolution so multiple concurrent agents/users can share one Mod3
instance without colliding on voice, queue, or speaker.

- session_registry.py: SessionChannel, voice-pool greedy allocation,
  per-session queues, round-robin/priority/fifo-global policies, live
  device re-query per playback (ADR-082 2026-04-22 amendment - no
  caching, macOS CoreAudio default tracked live).
- http_api.py: POST /v1/sessions/register, POST /v1/sessions/{id}/deregister,
  GET /v1/sessions, GET /v1/sessions/{id}. Synthesize honors the
  session's assigned voice when unspecified.
- server.py + mcp_shim.py: mirrored MCP tools (register_session,
  deregister_session, list_sessions) so stdio MCP callers get the
  same surface.
- Backward-compat: legacy callers without a session_id route to an
  implicit "default" session.

Out of scope (later ADR phases): input routing, barge-in state
machine, native input provider.
Regression: with MOD3_USE_COGOS_AGENT=1, agent_loop's success path
returns before the local-inference path's send_response_complete,
leaving the dashboard's isResponding spinner hung forever.

- channels.py: BrowserChannel.broadcast_response_complete(metrics,
  session_id) - thread-safe companion to broadcast_response_text,
  routes to the same channel that received the text frames.
- cogos_agent_bridge.py: on agent_response receipt, emit the
  complete frame after the text frame.
- demo/e2e_dashboard_harness.py + tests: updated to assert the
  completion frame fires on both code paths.
@chazmaniandinkle chazmaniandinkle marked this pull request as ready for review April 24, 2026 22:31
@chazmaniandinkle chazmaniandinkle merged commit 1175d92 into cogos-dev:main Apr 24, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant