Custom plugins¶
Beyond the built-ins, memcal loads ~/.memcal/plugins/*.py plus anything
registered through the memcal.sources entry-point group. Start from
examples/plugins/rss.py — a small complete source.
Pick the transport shape that matches the platform
(Observe): a plain Source with fetch for
simple feeds (the RSS example is one), PolledSource for anything with a
conversation listing and history, StreamSource for ordered or destructive
queues. Implement the shape's hooks plus contact/handle mapping and check;
watermarks, budgets, rounds, dedupe, gating, spooling, and
freshness all come from the shared path.
Checklist before relying on a custom source:
memcal sourcesreports it usable (or the exact gap).memcal ingest <name> --limit 20archives and queues sane lines.memcal gatecheck --stream <name>shows the gate admitting the right shape.memcal dream --dry-runprices the resulting bundles.
Authoring details: Custom sources.