feat(fleet): F4 Phase 1 — chat connector abstraction + Matrix design #617
Reference in New Issue
Block a user
Delete Branch "feat/f4-matrix-connector"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
F4 Phase 1 — orchestrator chat connector abstraction + Matrix design (closes #616 Phase 1)
From the north-star (#613) orchestrator-chat-connector decision. Phase 1 establishes the pluggable connector abstraction (your stated goal) + the Matrix design; the live Matrix wire + UX are Phase 2 follow-ups (scoped in the doc).
What's in it
connectors/types.ts—OrchestratorConnectorwith exactly your interface:send/subscribe/health. Thread-aware via optionalthreadIdso Matrix threads and the future first-party Mosaic Discord plugin (threads) drop in with no interface change.SendResult= ack;health()= liveness.connectors/registry.ts— extensible factory registry;resolveConnectorKinddefaults tmux (existing rosters unchanged — back-compat);createConnectorthrowsConnectorNotImplementedErroruntil Phase 2 registers factories.roster.schema.json— optionalconnectorblock (tmux|discord|matrix; matrix homeserver/user/room). Secrets via env (the gateway pattern), never the roster.docs/fleet/f4-matrix-connector.md— interface, config model, Matrix client-server API mapping (fetch-based, homeserver-agnostic), Conduit-default local homeserver (Synapse alt), phasing, back-compat.Design choices (Lead-aligned)
Verification
Independence
No
fleet.tschanges — a self-containedconnectors/module, so this is independent of the stacked #615 (no rebase coupling). Branches from current main.Phase 2+ (follow-ups, in the doc)
Matrix CS-API client + factory;
fleet init/configureconnector-selection UX + roster-parse wiring; systemd launch wiring; Conduit deploy guide; first-party Mosaic Discord (threads) as a connector.🤖 Generated with Claude Code
85a93428ebtoc6735d9949