This machine

Memory

Everything the brain knows lives on this host, under ~/.contextful. Data gets in one way: ingest → scrub → synthesize → index — and it gets out one way, through capability-filtered brain.query.

Ingest pipeline

  1. 1

    Ingest

    Connector payloads arrive on-host via sync ingest — nothing is fetched cloud-side.

  2. 2

    Scrub

    Inbound secrets and card PANs are stripped before anything is persisted.

  3. 3

    Synthesize

    Raw events are folded into per-team, per-period views with provenance.

  4. 4

    Index

    Rows land in the brain index — SQLite + FTS5 under ~/.contextful.

  5. 5

    Serve

    brain.query authorizes every field and row against the caller's token first.

Indexed views

viewrowscolumns
stripe/spend_by_team4teamperiodgrossnet
stripe/finance_private4teamperiodgrossnetdiscount_tiercreditsemployee_salary

Recent ingest activity

  • okstripe · invoice.paid → spend_by_team · +4 rows (period 2026-05) · 2 min ago
  • blockscrub · card PAN detected in payload → redacted before persist · 2 min ago
  • okstripe · credit_note.created → finance_private · credits updated · 9 min ago
  • okexa · world memory refresh → 6 documents cached on-host · 14 min ago
  • infodaydream · linked “Q3 AI Spend Review” ↔ vendor-consolidation (shared vendors) · 31 min ago
  • infocron · nightly synthesis pass → 2 views re-rolled, 0 anomalies · 1 h ago

Red chips are finance-private fields — they are indexed here, but a brain.query only returns them when the caller’s capability token grants the field, and employee_salary has no approval path at all.