-
Notifications
You must be signed in to change notification settings - Fork 358
Open
Description
What’s required to add a new channel today
- Implement a new channel client (queue in/out + attachments) modeled on existing ones in src/channels/discord-client.ts, src/channels/telegram-client.ts, src/channels/whatsapp-client.ts.
- Wire it into scripts and orchestration:
- Add it to ALL_CHANNELS and config maps in lib/common.sh.
- Add to setup flow in lib/setup-wizard.sh (name, token prompts, settings JSON).
- Add to daemon pane routing in lib/daemon.sh.
- Add to logging/reset helpers in lib/messaging.sh.
- Extend settings types in src/lib/types.ts to include the new channel config.
- Add a package.json script to run it (like the existing channel scripts).
Flow
- Hard‑coded channel registry in shell scripts (lib/common.sh, lib/setup-wizard.sh, lib/daemon.sh) keeps setup/ops simple and deterministic.
- Channel clients are independent entrypoints (src/channels/discord-client.ts, src/channels/telegram-client.ts, src/channels/whatsapp-client.ts) with their own auth flows.
- Queue processor is channel‑agnostic (src/queue-processor.ts), so channels are “edge adapters” around a stable core.
Plan
- Introduce a channel plugin interface (e.g., a manifest + entrypoint) and a registry loader that reads a
channels/directory orconfig/channels.json. - Replace ALL_CHANNELS and per‑channel maps in shell scripts with dynamic enumeration of installed/enabled channels.
- Update setup to ask per‑channel questions from manifest metadata instead of fixed prompts in lib/setup-wizard.sh.
- Adjust typings so settings.channels is a map keyed by channel id rather than fixed properties in src/lib/types.ts.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels