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

55 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.