Omnis

Architecture decisions

Every decision that binds the implementation, one record per page. This index is generated from the files in notes/adr/ at build time - it is never hand-maintained (AGENTS.md rule 2).

See the process for when an ADR is required and how to write one.

# Decision Status Resolves
0001 One scene tree, two renderer backends Accepted D8
0002 Themes are VS Code colour themes; profiles bundle them Accepted
0003 The modification surface is one API for every caller Accepted
0004 The agent pipeline is harness-agnostic Accepted
0005 Configuration lives in files, data lives in PGlite Accepted D2
0006 One context fragment normal form, addressed by URI Accepted
0007 Every mutating VCS operation is invertible from an operation log Accepted
0008 Task identity is the hash of its inputs Accepted
0009 Content-addressed storage: BLAKE3, FastCDC, convergent encryption Accepted
0010 Secrets never touch disk in plaintext, and never enter agent context Accepted
0011 Omnis is a kernel: bind existing services rather than reimplement them Accepted
0012 The system is one declarative configuration, applied as generations Accepted
0013 Subsystems run beside the core, never inside it Accepted
0014 Guest environments are host-level siblings of the core Accepted
0015 Remote access is a web surface over Tailscale Accepted
0016 Hosts are declared execution targets, and processes are placed on them Accepted
0017 The TUI is dropped as a surface Accepted
0018 Services are backends of domain subsystems Accepted
0019 Native surfaces are delegated regions the compositor does not own Accepted
0020 Documentation is generated from the option schema and lives in the product Accepted
0021 One input bar, one navigation model, everything addressable Accepted
0022 Self-optimisation is the system proposing generations against itself Accepted

22 records — 22 accepted, 0 proposed. Records are append-only: a decision that turns out wrong is superseded by a new one, never edited away.

Omnis