symbiont_ex/lib/symbiont
Claude Opus 4.6 fe5896be2d feat: initial Telepathy Elixir port — GenServer + JMAP fetch loop
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>
2026-05-19 06:11:13 +00:00
..
telepathy feat: initial Telepathy Elixir port — GenServer + JMAP fetch loop 2026-05-19 06:11:13 +00:00
api.ex Add Engram module — Elixir port of Python session memory system 2026-03-23 12:27:13 +00:00
application.ex feat: initial Telepathy Elixir port — GenServer + JMAP fetch loop 2026-05-19 06:11:13 +00:00
dispatcher.ex dispatcher: enable IS_SANDBOX + --dangerously-skip-permissions 2026-05-13 15:14:53 +00:00
engram.ex Fix statement leaks, error handling, UTC timestamps in Engram 2026-03-23 12:32:09 +00:00
heartbeat.ex heartbeat: notify Michael by email when each queued task completes 2026-05-18 21:21:49 +00:00
ledger.ex Initial Elixir implementation of Symbiont - all 39 tests passing 2026-03-20 17:55:34 +00:00
queue.ex queue+heartbeat: distinguish blocked from done (fix the false-done bug) 2026-05-16 23:08:46 +00:00
router.ex Initial Elixir implementation of Symbiont - all 39 tests passing 2026-03-20 17:55:34 +00:00