Adds the Telepathy email communication layer as an OTP subtree: - Telepathy.JMAP: GenServer that discovers Fastmail JMAP session, periodically polls inbox for new emails, and provides send_email/3. Uses :httpc (no external HTTP dep). Deduplicates via seen_ids MapSet seeded from existing MessageStore entries. - Telepathy.MessageStore: JSONL-backed message persistence, compatible with the existing Python messages.jsonl format. Supports store, unread, mark_read, list, count operations. - Telepathy.Supervisor: rest_for_one supervisor (MessageStore then JMAP). - Conditionally enabled via config (:telepathy, :enabled). Disabled in test env. Can be disabled at runtime via TELEPATHY_ENABLED=false. Validated against live Fastmail: session discovery, inbox fetch (20 emails), message storage all working. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
19 lines
334 B
Elixir
19 lines
334 B
Elixir
import Config
|
|
|
|
config :symbiont,
|
|
port: 8111,
|
|
data_dir: "/data/symbiont_ex",
|
|
heartbeat_interval_ms: 5 * 60 * 1_000,
|
|
max_queue_batch: 5,
|
|
default_tier: :haiku,
|
|
claude_cli: "claude"
|
|
|
|
config :symbiont, :telepathy,
|
|
enabled: true,
|
|
poll_interval_ms: 60_000
|
|
|
|
config :logger,
|
|
level: :info
|
|
|
|
import_config "#{config_env()}.exs"
|