Skip to main content

Architecture Decision Records

ADRs capture locked structural and platform choices for Weir. They override ad hoc experimentation when the two conflict.

Some ADR numbers are intentionally absent — those were reserved for drafts or withdrawn decisions.

Index​

ADRTitleStatus
ADR-0001Repository and application layoutAccepted; backend path updated by ADR-0017
ADR-0002Database and Alembic (SQLite-first)Superseded by ADR-0017 (numbered SQL migrations in the .NET server)
ADR-0003Auth and session modelAccepted
ADR-0007Module-owned worker lanes (SQLite)Accepted; superseded in part by ADR-0016
ADR-0008WeirSettings aggregate for runtime configurationSuperseded by ADR-0017
ADR-0009Suite-wide timing isolation (durable work)Accepted
ADR-0012Processing preflight parity boundaryAccepted
ADR-0013A media manager is a kind, not a product nameAccepted
ADR-0014A Processing library is a row, not one of two fixed scopesAccepted
ADR-0015Processing asks a port, and "no answer" is not "nothing"Accepted; retention half moved out by ADR-0016
ADR-0016Weir is one thing, and it never strands a fileAccepted
ADR-0017Weir's backend moves to C# on .NET 10Accepted

ADR-0001, ADR-0002 and ADR-0008 describe the original Python backend. ADR-0017 replaced it with the .NET server in apps/server; each of those pages notes what changed.

When to add an ADR​

Add an ADR when a decision changes runtime storage, data safety, security boundaries, release mechanics, or packaging behavior.