Files
GIA/artifacts/plans/02-transport-capability-matrix.md

1.2 KiB

Feature Plan: Transport Capability Matrix

Goal

Define transport feature capabilities centrally so router/policy/UI can make deterministic decisions.

Why This Fits GIA

  • GIA currently spans Signal/WhatsApp/Instagram/XMPP with uneven feature support.
  • Prevents silent failures (for example reaction exists internally but cannot be sent outward).

Scope

  • Add capability registry per transport.
  • Features: reactions, edits, deletes, threaded replies, typing, media classes, read receipts, participant events.
  • Runtime helper APIs used by router and compose UI.

Implementation

  1. Add core/transports/capabilities.py with static matrix + version field.
  2. Expose query helpers: supports(service, feature) and unsupported_reason(...).
  3. Integrate checks into core/clients/transport.py send/reaction/edit paths.
  4. Compose UI: disable unsupported actions with clear hints.
  5. Add tests per service for expected behavior.

Acceptance Criteria

  • Unsupported action never calls transport adapter.
  • User receives explicit, actionable error.
  • Service capabilities are test-covered and easy to update.

Out of Scope

  • Dynamic remote capability negotiation.