Architecture Decision Records
ADRs capture significant architectural decisions — the context, the options considered, the decision, and its consequences — so the why survives the people who made it.
Format: lightweight MADR-style. One file per decision, numbered, never deleted (supersede instead).
| # | Title | Status |
|---|---|---|
| 0001 | Extensibility & Plugin Architecture | Accepted |
| 0002 | Reusable Subagent Workflows | Accepted |
| 0003 | Reactive Agent: Activity Thread, Event Bus & Inbound Inbox | Accepted |
| 0004 | Multi-Instance Data Scoping | Accepted |
| 0005 | Tool Pollution & Progressive Tool Disclosure | Accepted |
| 0006 | Observability & the Self-Improving Flywheel | Accepted |
| 0007 | Directory-Aware Operator Primitives (enabling a "Roxy" fork) | Accepted |
| 0008 | Sandboxing posture & NVIDIA OpenShell | Accepted |
| 0009 | The Studio control stack (goals · workflows · subagents · skills) | Accepted |
| 0010 | Headless setup & UI deployment tiers (lighter stack) | Accepted |
| 0011 | Deep-research workflow with adversarial review | Accepted |
| 0012 | Eval strategy: model-tagged tracking & model comparison | Accepted |
| 0013 | Console data layer: TanStack Query + Suspense + ErrorBoundary | Accepted |
| 0014 | A2A 0.3 → 1.0: adopt a2a-sdk + protolabs-a2a | Accepted (shipped #453) |
| 0015 | Optional native Discord surface (ingress + outbound) | Accepted (shipped as plugins/discord) |
| 0016 | In-app Discord configuration (token, admin list, live connect) | Accepted |
| 0017 | In-app Google (Gmail + Calendar) connect flow | Accepted |
| 0018 | Plugins contribute surfaces, routes & subagents | Accepted |
| 0019 | Plugins contribute config, settings & secrets | Accepted |
| 0020 | Console IA: run from Chat, manage from surfaces | Accepted |
| 0021 | Agent memory: extract, don't dump | Accepted |
| 0022 | Activity is a provenance feed, not a second chat | Accepted |
| 0023 | Decompose server.py: AppState + composition root | Accepted |
| 0024 | Spawn CLI coding agents over ACP (code_with) | Accepted (PR1 + PR3) |
| 0025 | Unified delegate registry + hot-swappable panel (delegate_to) | Accepted (complete; PR1–PR4) |
| 0026 | Plugin-contributed console surfaces (rail views + tabs) | Accepted (complete; PR1–PR3) |
| 0027 | Install plugins from a git URL (shareable plugin repos) | Accepted (sliced) |
| 0028 | Plugin-contributed goal verifiers (+ safe programmatic goals) | Accepted (sliced) |
| 0029 | A standard for communication (chat-surface) plugins | Accepted |
| 0030 | Monitor goals — cadence-evaluated, hook-reactive objectives (closes 0028 D6) | Accepted (sliced) |
| 0031 | Pluggable knowledge backend (register_knowledge_store + Protocol + selector) | Accepted |
| 0032 | Pluggable middleware (register_middleware + per-request metadata contextvar) | Accepted |
| 0033 | Pluggable agent runtime (ACP executor) — runtime≠model axis, operator-tools MCP bus, context contract + caching | Proposed |