| 0001 |
Record architecture decisions |
accepted |
2026-10-20 |
| 0002 |
One core daemon with thin clients |
accepted (the MCP part is superseded by ADR 0004) |
2026-10-20 |
| 0003 |
SQLite access: aiosqlite with a write broker and a read pool |
accepted |
2026-10-20 |
| 0004 |
The MCP server is part of core |
accepted |
2026-10-20 |
| 0005 |
The HTTP stack and how the local API defends itself |
accepted |
2026-10-20 |
| 0006 |
Clients live in apps/, each its own package |
accepted |
2026-10-20 |
| 0007 |
Core stays headless; a UI is a separate client |
accepted |
2026-10-20 |
| 0008 |
Folders are a location attribute; labels are tags; a general enrichment kind |
accepted |
2026-10-21 |
| 0009 |
Sieve scripts are written by a scoped, compile-first, owner-only write path |
accepted |
2026-10-21 |
| 0010 |
The stable surface, its versioning and how it is protected |
accepted |
2026-10-22 |
| 0011 |
Service units: a dependency-ordered build/start/stop for the composition root |
accepted |
2026-10-22 |
| 0012 |
Plugin extension hooks: job kinds, pipeline stages and scheduled tasks |
accepted |
2026-10-22 |
| 0013 |
A read-only status page on loopback |
accepted |
2026-10-22 |
| 0014 |
The Oaken product family and the surfaces a UI builds on |
accepted |
2026-10-22 |
| 0015 |
The reader's triage rules: config.toml is trusted, the database is the last known good |
accepted (ratified 2026-11-03 by the owner, who verified the built implementation for 0.2.0) |
2026-11-03 |
| 0016 |
A plugin owns its operations, its small store and its wizard commands |
accepted (ratified 2026-11-03 by the owner, who verified the built implementation for 0.2.0) |
2026-11-03 |
| 0017 |
Triagers and enrichers are separate kinds |
accepted (ratified 2026-11-03 by the owner, who verified the built implementation for 0.2.0) |
2026-11-03 |
| 0018 |
A web UI contract for plugins: settings, pages and wizards from data |
accepted (ratified 2026-11-03 by the owner, who verified the built implementation for 0.2.0) |
2026-11-03 |
| 0019 |
The kinds of analyzer: enrich, triage and action, and the attachment lane |
accepted (ratified 2026-11-03 by the owner, who verified the built implementation for 0.2.0; decision 5 is superseded by ADR 0020) |
2026-11-03 |
| 0020 |
Attachments live in a core quarantine, and only a clean scan releases one |
accepted (ratified 2026-11-03 by the owner) |
2026-11-03 |