25 lines
1.2 KiB
Markdown
25 lines
1.2 KiB
Markdown
# Owncast–IRC Bridge: Brainstorm & Design Session
|
||
|
||
**Date:** 2026-03-10
|
||
|
||
## Task
|
||
Design a bidirectional chat bridge between Owncast (`https://owncast.bowlafterbowl.com`) and IRC (`irc.zeronode.net` / `#BowlAfterBowl`).
|
||
|
||
## Decisions Made
|
||
- **Language:** Rust
|
||
- **Architecture:** Tokio async runtime with concurrent tasks (IRC, Webhook, WebSocket, Health Poller, Router, Control Socket) communicating via mpsc channels
|
||
- **Owncast ingest:** Webhooks (primary) + WebSocket (fallback)
|
||
- **Identity:** Prefixed messages — `[IRC] <nick>` / `[OC] <user>`
|
||
- **Extras:** Stream start/stop announcements in IRC, auto-reconnect with exponential backoff
|
||
- **Owncast lifecycle:** Three-state model (Online, OfflineChatOpen, Unavailable) with health polling
|
||
- **Runtime control:** Unix domain socket + `bridge-ctl` CLI tool
|
||
- **Deployment:** Binary + Dockerfile (multi-stage)
|
||
|
||
## Files Created
|
||
- `docs/plans/2026-03-10-owncast-irc-bridge-design.md` — Full design document
|
||
- `docs/plans/2026-03-10-owncast-irc-bridge-impl.md` — 15-task implementation plan
|
||
|
||
## Follow-up
|
||
- Open a new session and execute the implementation plan using `superpowers:executing-plans` skill
|
||
- Plan file: `docs/plans/2026-03-10-owncast-irc-bridge-impl.md`
|