Architecture decision records¶
ADRs record deliberate architectural decisions. They are canonical Markdown. A material architectural change requires a new ADR; requirements in the engineering plan must not be weakened to match an implementation without one.
- ADR-0001 — The modular monolith and enforced boundaries
- ADR-0002 — The provider-neutral model protocol
- ADR-0003 — Event log, projections, and checkpoints
- ADR-0004 — The Postgres run queue, leases, and recovery
- ADR-0005 — The deterministic policy engine
- ADR-0006 — No private reasoning storage
- ADR-0007 — Provider-neutral reasoning state
- ADR-0008 — Sandbox isolation
- ADR-0009 — Run, turn, and session model
- ADR-0010 — Live event transport
- ADR-0011 — Multi-device operation and the shared core
- ADR-0012 — Open and self-hosted model support
- ADR-0013 — Self-improving skills
- ADR-0014 — Memory surface and external providers
- ADR-0015 — Programmatic tool orchestration
- ADR-0016 — Trajectory capture and export
- ADR-0017 — Layered approval and inbound-surface security
- ADR-0018 — Memory formation and consolidation
- ADR-0019 — Memory retrieval and ranking
- ADR-0020 — Context engine
- ADR-0021 — Tool execution pipeline, effect watermarking, and MCP
- ADR-0022 — The gate registry, evaluation identity, and the capability track
- ADR-0023 — The run loop, the step, and the single terminal writer
- ADR-0024 — The composition root and the configuration layers
- ADR-0025 — The development toolchain and the meaning of
make check - ADR-0026 — The builtin tool roster and the two Milestone 1 tools
- ADR-0027 — Gate milestones, the declaration form, and the milestone map
- ADR-0028 — The HTTP API surface, the error vocabulary, and the event stream
- ADR-0029 — Isolated execution, the egress boundary, and the artifact store
- ADR-0030 — The skill package, the pinned catalog, and the authoring loop
- ADR-0031 — The ORM surface and the migration conventions
- ADR-0032 — Trajectory export, redaction, and consent
- ADR-0033 — The knowledge document, its corpus, and passage retrieval
- ADR-0034 — Section 29 as an audited seam rather than a design
- ADR-0035 — CircleCI as the hosted CI provider
- ADR-0036 — The executable 106-knob configuration inventory
- ADR-0037 — Milestone 1 in-memory seam decisions
- ADR-0038 — Milestone 2 durable-runtime seam decisions
- ADR-0039 — Milestone 3 provider and trajectory-export seams
- ADR-0040 — Milestone 4 policy, approval, and workspace seams
- ADR-0041 — Milestone 5 API, identity, and streaming seams
- ADR-0042 — Milestone 6 sandbox, bridge, and artifact seams
- ADR-0043 — Milestone 7 context-engine seams
- ADR-0044 — Milestone 8 skill and MCP seams
- ADR-0045 — Milestone 9 memory and knowledge seams
- ADR-0046 — Host-native DigitalOcean production topology
- ADR-0047 — Dependency-free downloadable thin client
- ADR-0048 — Atomic CircleCI production delivery
- ADR-0049 — Native Apple client as a secure transport-only surface
- ADR-0050 — Authoritative conversation history and deletion
- ADR-0051 — Milestone 10 automatic memory formation
- ADR-0052 — Milestone 10A governed skill-authoring seams (Proposed)
- ADR-0053 — Durable session transcripts for historical clients
- ADR-0054 — Provider-neutral web access with capability-level routing (Proposed)
- ADR-0055 — Configurable CLI wait for durable runs
- ADR-0056 — Failure-triggered reflection review (Proposed)
- ADR-0057 — Evaluation-gated provider-assisted memory extraction
- ADR-0058 — Provider-neutral authenticated browser automation (Proposed)
- ADR-0059 — Milestone 11 scheduled runs (Proposed)
- ADR-0060 — Reading lanes and the state-file split
- ADR-0061 — Milestone 10 completion versus tenant activation, and the roadmap authorization
- ADR-0062 — Milestone 12 notifications and device identity (Proposed)
- ADR-0063 — Milestone 13 general-purpose subagents and delegation (Proposed)
- ADR-0064 — Milestone 14 inbound surfaces and pairing (Proposed)
- ADR-0065 — Milestone 15 operational hardening (Proposed)
- ADR-0066 — Atomic publication of the documentation site
- ADR-0067 — Credential-free production execution service
- ADR-0068 — Retryable memory formation and governed replay
- ADR-0069 — Milestone 16 memory evaluation and lifecycle (Accepted)
- ADR-0070 — Milestone 17 memory read API and native browser (Proposed; decision 3 superseded by ADR-0117)
- ADR-0071 — Milestone 18 first-class email integration (Proposed)
- ADR-0072 — Milestone 19 conversational schedule creation (Proposed)
- ADR-0073 — Milestone 20 calendar recurrence and conversational schedules (Proposed)
- ADR-0074 — Automated macOS TestFlight delivery
- ADR-0075 — Native schedule browser over the existing control plane (Proposed; decision 3 superseded by ADR-0089; decision 4 amended by ADR-0154)
- ADR-0076 — Keenable and deterministic weighted web routing (Proposed)
- ADR-0077 — Milestone 21 adaptive memory distillation (Proposed)
- ADR-0078 — Run-limit synthesis reserves
- ADR-0079 — Milestone 22 persona surface and curated belief promotion (Proposed)
- ADR-0080 — Milestone 23 conversational schedule lifecycle (Proposed)
- ADR-0081 — Milestone 24 SMS through the owner's iPhone (Proposed)
- ADR-0082 — Milestone 25 WhatsApp business surface (Proposed)
- ADR-0083 — Tool-name-keyed policy rules and declared human confirmation
- ADR-0084 — Atomic public website publication on DigitalOcean
- ADR-0085 — Operator-managed multi-account Gmail (Proposed)
- ADR-0086 — Repaired provider-assisted formation@10 and policy-bound release evidence (Proposed)
- ADR-0087 — Corrections retract, a provider re-pass recovers evidence, and the formation@9 artifact is withdrawn under distillation-scorer@3 (Proposed)
- ADR-0088 — Milestone 23 conversational schedule update (Proposed)
- ADR-0089 — Recent terminal schedule history and bounded retention (Proposed)
- ADR-0090 — Attributed communication may form memory without becoming owner speech (Proposed)
- ADR-0091 — Schedule identity in outcome notifications (Proposed)
- ADR-0092 — Client modes and a shared adaptive email experience (Accepted; Milestone 26)
- ADR-0093 — Keep an independently selected, evidenced memory model
- ADR-0094 — Refresh context authority at run boundaries (Proposed)
- ADR-0095 — Owner-requested Gmail archive from Email mode (Proposed)
- ADR-0096 — Ninety-day automatic email catch-up and cost recovery (Accepted)
- ADR-0097 — Bland calling and a public receptionist (Accepted; Milestone 27)
- ADR-0098 — Automatic website resources without CDN configuration (Proposed)
- ADR-0099 — Approval argument redaction stays verifiable (Accepted)
- ADR-0100 — People and relationship memory (Accepted; Milestone 28)
- ADR-0101 — People availability without evaluation gates (Accepted)
- ADR-0102 — Chat thread folders and grouping proposals (Accepted; Milestone 29)
- ADR-0103 — Email admission never discovers MCP servers under the owner lock (Accepted)
- ADR-0104 — Typed Email runs prepare only the MCP servers their task calls (Proposed)
- ADR-0105 — The tool-definition token cap rises to 9,000 so the item cap binds first (Proposed)
- ADR-0106 — The authentication ceremony runs a headed browser and never disguises it (Proposed)
- ADR-0107 — Hosted verification is automatic on
mainand on request elsewhere (Proposed) - ADR-0108 — The owner's introduction, honest answers, and approved outbound voicemail (Proposed)
- ADR-0109 — Conversational schedules tolerate one failure and keep synthesis headroom (Accepted)
- ADR-0110 — A typed-judgment port, with TypeSafe Jev as its first provider (Accepted; amends ADR-0102, Milestone 29)
- ADR-0111 — Restrictive-only advisory approval through the judgment port (Accepted; Milestone 30)
- ADR-0112 — Email unsubscribe assistance and its public-HTTPS egress transport (Accepted; Milestone 31; amended by ADR-0165)
- ADR-0113 — Scheduled conversations are grouped by schedule, not filed in folders (Accepted)
- ADR-0114 —
maindoes not reverify a source tree that already passed (Proposed) - ADR-0115 — The tool-call budget ends research, never the answer (Accepted; amends ADR-0078)
- ADR-0116 — Bulk mail never forms communication memory (Accepted; amends ADR-0090 and ADR-0101)
- ADR-0117 — Memory review and deletion over HTTP (Accepted; supersedes ADR-0070 decision 3)
- ADR-0118 — Crash retries exclude durable continuations (Accepted; amends ADR-0004)
- ADR-0119 — Owner-chosen models and reasoning effort (Accepted)
- ADR-0120 — Files attached to chat messages (Accepted)
- ADR-0121 — People holds who the owner knows or writes to (Accepted; amends ADR-0100 and ADR-0116)
- ADR-0122 — Files the agent exports reach the owner on its reply (Accepted)
- ADR-0123 — Chat defers tools past its item cap instead of dropping them (Accepted; amends ADR-0105 and ADR-0124)
- ADR-0124 — Chat's default roster drops workspace.list_files so the calling tools fit (Accepted; amends ADR-0105)
- ADR-0125 — Duplicate people merge on decisive evidence and are otherwise suggested (Accepted; amends ADR-0100 and ADR-0121)
- ADR-0126 — Email correspondence carries a short summary, and Chat can read the original (Accepted; amends ADR-0121)
- ADR-0127 — Browser leases renew while the run needs them (Accepted; amends ADR-0058)
- ADR-0128 — The owner signs in on their own device and hands the session to the isolated service (Accepted; amends ADR-0058 and ADR-0106; amended 2026-10-06)
- ADR-0129 — A time-boxed task grant from the approval card (Accepted; amends ADR-0058 and ADR-0127)
- ADR-0130 — Chats bound to a website profile get a browser task budget (Accepted; amends ADR-0123)
- ADR-0131 — New chats pin MCP catalogs from the last discovery and start servers on first use (Accepted; amends ADR-0103)
- ADR-0132 — Scheduled runs cache their prefix for an hour (Accepted)
- ADR-0133 — Each commit answers for its own reading lane (Accepted; amends ADR-0060)
- ADR-0134 — Tool scope sets serialize sorted (Accepted)
- ADR-0135 — OpenAI Chat cache identity and discoverable history boundaries (Proposed)
- ADR-0136 — Synthesize before the identical-tool-call limit (Accepted)
- ADR-0137 — Stable tool-output admission before context pressure (Proposed)
- ADR-0138 — Deny browser popups before creation (Proposed)
- ADR-0139 — Completed active history precedes fresh step context (Proposed)
- ADR-0140 — Image and video tools with TensorScale as the first provider (Accepted)
- ADR-0141 — Client-managed task approval websites (Accepted; amends ADR-0129)
-
ADR-0143 — Notification attention and reconciliation (Proposed)
- ADR-0144 — Chat runs ask for reasoning summaries, and the app shows their headings (Accepted)
- ADR-0145 — Hosted browsers run headed for agent runs and sign-in verification (Accepted; amends ADR-0106, ADR-0128, ADR-0138)
- ADR-0146 — Hosted Chromium makes no vendor requests of its own (Proposed; amends ADR-0145)
- ADR-0147 — Established event streams do not hold sign-in verification open (Accepted)
-
ADR-0148 — Approved rich-text input and image upload (Proposed)
-
ADR-0150 — Scheduled website reads pin an owned browser profile (Proposed)
- ADR-0151 — Browser observations remain readable within the model budget (Proposed)
- ADR-0152 — Hosted CI measures the browser image's own requests (Accepted; amends ADR-0146)
- ADR-0153 — Scale VP data through its REST API, behind a first-party bridge that owns its sign-in (Proposed)
- ADR-0154 — The native schedule detail chooses a schedule's website access (Accepted; amends ADR-0075)
- ADR-0155 — A model titles chat conversations and retitles them when the subject moves (Accepted)
- ADR-0156 — Self-hosted browser improvement program (Accepted)
- ADR-0157 — Bounded browser observation expansion (Accepted)
- ADR-0158 — Content-free browser operation diagnostics (Accepted)
- ADR-0159 — Bounded browser readiness and visible postconditions (Accepted)
- ADR-0160 — Bounded browser page structure (Accepted)
- ADR-0161 — Deterministic bounded browser extraction (Accepted)
- ADR-0162 — Bounded readable browser snapshots (Accepted)
- ADR-0163 — Focused browser observations and bounded recovery (Accepted)
- ADR-0164 — Browser autonomy and verified resumption (Accepted)
- ADR-0165 — Suspected-spam flag and thread-level Report spam (Accepted; amends ADR-0112, Milestone 31)
- ADR-0166 — A resumed run adopts the history committed after its checkpoint (Accepted)
- ADR-0167 — Automatic memory maintenance does not refresh chat recency (Accepted)
-
ADR-0168 — Bounded browser scrolling without approval (Accepted)
-
ADR-0169 — Milestone 32 memory reconsolidation (dreaming) (Proposed; scope authorized)
-
ADR-0170 — Reconsolidation hypothesis equivalence review (Accepted)
-
ADR-0171 — Owner-confirmed real-data fixtures for offline memory evaluation (Accepted)
-
ADR-0172 — Website access and specific consent survive owner follow-up (Accepted)
-
ADR-0174 — Daily dreaming proposals with owner-approved application (Accepted; amends ADR-0169)
-
ADR-0175 — Private account-control verification (Accepted; amends ADR-0164)
- ADR-0176 — Reviewed X feed briefing (Accepted; amends ADR-0164)
-
ADR-0178 — General memory search and recall (Accepted scope; Milestone 33)
-
ADR-0179 — Version-bound semantic memory index (Accepted mechanism; activation gated)
-
ADR-0180 — Bounded semantic indexing and provider admission (Accepted mechanism; activation gated)
-
ADR-0181 — Bounded semantic query preparation (Accepted mechanism; activation gated)
-
ADR-0182 — Run-bound semantic recall (Accepted mechanism; activation gated)
-
ADR-0183 — Fresh evidence on context assembly (Accepted mechanism; activation gated)
-
ADR-0184 — Manually file email discussions from Chat (Proposed repair)
-
ADR-0185 — General recall release admission (Accepted mechanism; activation gated)
-
ADR-0186 — Persistent dreaming review sign-in (Proposed; implementation authorized)
-
ADR-0187 — Semantic index production composition (Accepted mechanism; activation gated)
-
ADR-0188 — Local semantic embeddings (Accepted mechanism; activation gated)
-
ADR-0189 — Governed memory source recovery (Implementation in progress; activation gated)
-
ADR-0190 — Durable run recall preparation budget (Implementation in progress; activation gated)
-
ADR-0192: Distinguish recovered source evidence from formed facts
- ADR-0194: Paired formation response banks
- ADR-0195: Shared recall context budget
- ADR-0196: Run recall execution budget
- ADR-0197: People semantic query narrowing
- ADR-0198: Planned recall type hints
- ADR-0203: Email junk first pass
-
ADR-0206 — Default deliberate memory search to the trusted session
-
ADR-0209: Uninterrupted browser research and visible deadlines
- ADR-0210: OpenAI opaque credential boundary
- ADR-0211: Apple client deployment floors rise to iOS 27 and macOS 26, toward macOS 27 (Accepted)
- ADR-0214: Formation deadline repair
- ADR-0215: Retained formation terminal outcomes and collector cleanup
- ADR-0216: Historical commit-scoped reliability signing
- ADR-0217: Bounded recovery of reconciled evaluation interruptions
- ADR-0218: Checkpoint recall production compatibility
- ADR-0219: Exact-revision signing for the isolated recall release
- ADR-0220: Owner-reviewed bounded recall rollout