Watch
1
0
Fork
You've already forked SouveraineOS
0
SouveraineOS/saf/state.md
Fimeg bde961c6f2 saf: one spine — device, state, and work under the index
PAF becomes saf/device (history kept), STATE.md dissolves
into saf/state.md with the dated era archived, the substrate
SAF moves up from souveraine, and every agreement points at
saf/INDEX.md and nowhere else. one map, nothing to remember
2026-08-18 09:47:30 -04:00

2.6 KiB
Raw Blame History

State — what is true right now

The resume anchor. Reach it from INDEX.md. This file is the only page that answers "what is deployed, what is open, where does the next session start". Everything else belongs to its owning section and is reached from the index.

Keep it honest: when component state moves, move it here. Dated history goes to archive/ — it never returns as news.

Last reconciled: 2026-08-18 (cadences + memory tool tree selector landed).

Deployed

  • The phone is a normal Arch box: pacman -Syu from the Gitea repo, kernel included. Flash is for the broken boot chain, never for a new kernel. Cold boots only; reboots are Casey's, at the device.
  • Packages by pacman: souveraine, -secrets, -machined, -sessiond, upower-souveraine. Repo [souveraine-aarch64], SigLevel Required.
  • The laptop's compositor plan is viewtop: login-time session choice (viewtop | hyprland), phone-shaped chooser mechanism undecided. Not scheduled.
  • Device truth at a glance lives in device/README.md's status table.

Open — the next session starts here

  • The shell is keyed to Hyprland's instance signature. Persistent.qml reads HYPRLAND_INSTANCE_SIGNATURE, unset under viewtop, so isNewHyprlandInstance is permanently false — gating lock-on-startup, LockScreen.qml:145/:289 and both Idle.qml files. Fix is two-sided: viewtop exposes an instance id on {"op":"state"}, the shell reads that.
  • Captured card content is streaky / wrong-surface. Frames arrive (hasContent=true, correct size), contents are wrong.
  • viewtop security audit not started. SECURITY-AUDIT.md carries P1P7, the watch list, and three ungated compositor boundaries found 2026-08-03; scope and deliverable unanswered.
  • Cadence work is live and needs device eyes. Reflection and the archivist exist as real agents with their own memory bodies (memory/01-* + identity/02-*); the memory tool's tree: opens all four memfs doors; the archivist has never yet produced a memoir on hardware. CI on souveraine is the gate — see ../docs/tasks/README.md for the owning work record.
  • Memory sync: per-instance branches and resolve_remote are in; merge policy and auto-fetch are next (FEDERATION.md step 3).

The substrate, one line

souveraine on primary, built by Gitea Actions. Rust tests + clippy -D warnings gate every push. When this file and the code disagree, the code shows what exists — reconcile both.

History

Dated session records live in archive/ (see state-history-2026-08-16.md for the pre-spine era) and ../docs/DUMP-*.md / HANDOFF-*.md. They are evidence, not a second state document.