Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Architecture Decision Records

MADR-lite format. An accepted ADR's decision statement is changed by superseding, never by rewriting.

Everything around it is amended in place, and deliberately: a status block recording that a precondition has since been met (ADR-0003 carries one from #109, sitting under its Decision heading precisely so nobody reads the decision without it), a forward pointer to the later ADR that settled a question this one left open, a correction to a claim that turned out to be false. Rewriting a decision in place is what destroys the record; leaving a document knowably wrong is not better than fixing it.

Whenever a later ADR changes an accepted one's standing — superseding its decision, retiring one of its consequences, or qualifying a claim it rests on — the row below gains an annotation naming that ADR, and the original text stays. Rows 0001 and 0005 carry two different flavours of this: 0010 retired a consequence of 0001, while 0022 only qualified 0005's title and explicitly leaves its decision standing.

# Title Status
0001 UI toolkit: Slint + tray-icon (no webview) accepted, spike-verified (its Linux tray consequence superseded by 0010)
0002 DDC backend: own dxva2 implementation on Windows accepted
0003 Software dimming: overlay primary, gamma opt-in accepted, spike-verified
0004 Display identity: stable EDID-derived IDs accepted
0005 Concurrency: std threads + channels, no async runtime accepted (title qualified on Linux by 0022)
0006 IPC transport & protocol accepted
0007 Config schema, migrations, and persistence accepted
0008 Licensing (MIT OR Apache-2.0; Slint royalty-free) accepted
0009 Slint renderer: software renderer default accepted
0010 Linux tray: ksni, not tray-icon accepted
0011 Linux software dimming: probe the compositor, never assume it accepted
0012 Binary-size budget raised 12 → 16 MB accepted
0013 macOS DDC/CI: own thin backend (don't wrap ddc-macos) accepted
0014 Perceptual brightness continuum (v2) accepted
0015 Update check on by default (smart-notify) accepted
0016 Windows distribution & signing (Inno + minisign + provenance) accepted
0017 Engine shutdown & worker-lifecycle contract (generation + retired + bounded shutdown) accepted
0018 App owns the continuum; the engine owns pacing (single write authority) accepted
0019 Version ladder & release trains (v0.1.x Windows, v0.2 macOS, v0.3 Linux, v1.0) accepted (its platform rows and its "no new platform" rule for patch releases superseded by 0024; the v1.0.0 row stands)
0020 Release integrity & signing readiness (no injection, gated publish, hermetic, Azure-ready) accepted
0021 Tray-anchor coordinate contract (y-down normalized, unit named, two derived factors) accepted
0022 Linux D-Bus: zbus, and the async executor already in the build accepted
0023 x11rb stays on 0.13 until the Slint graph moves (declining #128) accepted
0024 Preview artifacts ship on the patch train (v0.2/v0.3 re-mapped to "hardware-confirmed") accepted

Spike evidence lives on branches spike/eventloop, spike/ddc, spike/overlay (code is not merged; findings are).