Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ADR-0001: Runtime Switching First

Status: accepted

Context

Dubnium needs to move between interactive desktop behavior and headless compute behavior. NixOS specialisations may eventually provide stronger separation, but they require reboot-mediated workflows and would slow down early validation.

Decision

Use runtime switching first. Implement mode changes through a local reconciliation loop using systemd targets, services, slices, guards, and post-action observation.

Do not introduce NixOS specialisations in v1.

Consequences

  • Rebootless switching can be validated early.
  • The observer and guard layer must be conservative.
  • GPU release reliability becomes a live risk.
  • Specialisations remain an escalation path if runtime switching proves too brittle.

Escalation Criteria

Reconsider specialisations or reboot-mediated compute if:

  • display GPU release remains unreliable after bounded iteration
  • compute promotion frequently lands in degraded or ambiguous states
  • desktop restoration is unreliable
  • kernel/module settings diverge materially between modes