Skip to content

Add WebSocket transport option for web bots#89

Merged
markbackman merged 1 commit into
mainfrom
mb/add-websocket-transport
May 29, 2026
Merged

Add WebSocket transport option for web bots#89
markbackman merged 1 commit into
mainfrom
mb/add-websocket-transport

Conversation

@markbackman
Copy link
Copy Markdown
Contributor

Adds WebSocket as a selectable web-bot transport alongside Daily and SmallWebRTC, with both server and client support and coexistence in the same project.

  • Registry: new websocket ServiceDefinition (FastAPIWebsocketTransport + ProtobufFrameSerializer); regenerated _imports.py.
  • Server: new bot_entry_websocket.jinja2, wired into the WebSocketRunnerArguments case in the cascade and realtime bot templates.
  • Clients: websocket support in vanilla-js-vite (two-step startBot/connect), react-vite, and react-nextjs (per-transport props map driving PipecatAppBase via startBotParams + startBotResponseTransformer). React config typing switched to generic client-js types so configs compile regardless of selected transports.
  • Fixed: generated bots now call await runner.run() after adding workers, so the pipeline actually starts.
  • Changed: kick off the conversation with a developer-role message instead of a user-role "Please introduce yourself." message.
  • Tests + CHANGELOG updated.

🤖 Generated with Claude Code

Adds WebSocket as a selectable web-bot transport alongside Daily and
SmallWebRTC, with both server and client support and coexistence in the
same project.

- Registry: new `websocket` ServiceDefinition (FastAPIWebsocketTransport +
  ProtobufFrameSerializer); regenerated `_imports.py`.
- Server: new `bot_entry_websocket.jinja2`, wired into the
  WebSocketRunnerArguments case in the cascade and realtime bot templates.
- Clients: websocket support in vanilla-js-vite (two-step startBot/connect),
  react-vite, and react-nextjs (per-transport props map driving
  PipecatAppBase via startBotParams + startBotResponseTransformer). React
  config typing switched to generic client-js types so configs compile
  regardless of selected transports.
- Fixed: generated bots now call `await runner.run()` after adding workers,
  so the pipeline actually starts.
- Changed: kick off the conversation with a developer-role message instead
  of a user-role "Please introduce yourself." message.
- Tests + CHANGELOG updated.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@markbackman markbackman merged commit a60e64d into main May 29, 2026
1 check passed
@markbackman markbackman deleted the mb/add-websocket-transport branch May 29, 2026 13:05
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