Watch
1
0
Fork
You've already forked SouveraineOS
0
SouveraineOS/docs/souveraine-components/INVENTORY.md
Fimeg 9815185caa docs: put agent identity behind a real uid
Join the older storage and authority audits to the SAF principal contract. Passwd entries are not isolation while one human-owned process still executes every agent, and the existing souveraine account is machined's—not Souvie's.\n\nKeep the readiness task honest: its current health fields inventory paths, but do not yet prove admission or the UID handling a live turn.
2026-08-17 12:36:45 -04:00

5.4 KiB
Raw Permalink Blame History

Souveraine Rebuilt — component inventory

The wider answer to "what has Souveraine rebuilt or taken ownership of." The README family stays authority-binaries-only by design; this page is the full inventory, organized in tiers. It is also the seed for the eventual project reorganization: when repos get regrouped, they should land along these lines.

A component is listed when Souveraine carries its code — authored, forked with real divergence, or rebuilt against a platform it was never meant for. Consuming a stock upstream (NetworkManager, ModemManager, Hyprland) does not make the list; that is the homogenization doctrine working as intended.

Tier 0 — authority substrate (audited family)

The three secure daemons with their own pages and the audit ladder (P0P4 in audit-status.md).

Component Language Source Page
souveraine-machined Rust souveraine/src/machined machined.md
souveraine-secrets Rust souveraine/src/secrets secrets.md
souveraine-sessiond Rust souveraine/src/sessiond sessiond.md

Tier 1 — agent substrate

The souveraine binary itself — the consciousness runtime. One binary, several load-bearing subsystems (souveraine/src/):

  • server — turn engine and conversation seeding. Every conversation entry point (TUI backend, HTTP API) passes through seed_conversation_system_prompt; a session without it boots the agent amnesiac.
  • core/memory — memfs: the agent's git-backed memory with the tolerant-read / strict-write frontmatter contract.
  • api + backend — HTTP surface and the local TUI backend, both clients of the same server core.
  • tui / ui — the cockpit (chat, subconscious pane, settings).
  • bridge — model access via the Bifrost gateway's /v1/models; no hardcoded models (local Projects/Bifrost checkout is currently empty; the gateway is consumed as a service).
  • harness / interface / cli — tool execution and the guarded CLI verbs (souveraine identity generate lives here, per the seeds-are- preconditions rule).

Security posture: everything runs as uid 1000 today — this tier is the main beneficiary of per-agent UNIX accounts and worker processes (audit P3) and of machined capability tokens once minted (P1). The living admission and health contract is ../../../souveraine/saf/identity/02-agent-principal.md. The existing souveraine Unix account is machine-tier only and must not be reused for Souvie or as a pool account for all agents. When an agent-substrate subsystem starts holding authority of its own, it graduates to a Tier-0-style page.

Tier 2 — boot and session surfaces

Component What it is Source
souveraine-splash Bare-metal DRM/KMS+GBM+EGL shader boot animation; holds the display until the session is ready. C, no compositor. Pixel3Arch/bootsplash/main.c
splash-signal The poke that fades the splash out for handoff. Pixel3Arch/bootsplash/splash-signal.c
Souveraine Membrane (currently viewtop) Device-local compositor at the glass: scene composition, physical input, and display-side disclosure enforcement from sessiond facts. Never session authority. souveraine-viewtop
quickshell shell The QML session surface: two-stage lock (glance / PIN), SessiondBridge heartbeat, session IPC (session.lock/inhibit/state/capabilities), lock-time redaction, Ai chat surface. souveraine/surfaces/quickshell
hypr overlays Compositor policy that the handoff depends on (allow_session_lock_restore, lockdead_screen_delay), tracked, not hand-edited. Pixel3Arch/overlays/hypr

The shell is deliberately not an authority: it is a client of sessiond. The boot chain splash → sessiond → shell is documented in session-authority-boot-order.md.

Tier 3 — rebuilt applications

Forks with real Souveraine divergence, carrying the identity layer into daily-driver apps:

Component Divergence Source
Chatty fork DEPRECATED 2026-07-21. Identity layer: Person model, history schema v6, priority inbox. Superseded by souveraine's Matrix sensorium. Fimeg/Chatty on Gitea, branch identity-layer
libcmatrix DEPRECATED 2026-07-21. E2EE verification fixes, edit/redaction/reply/reaction. No longer used. Fimeg/libcmatrix on Gitea, branch sas-fixes
qtpim DEPRECATED 2026-07-21. QtContacts v6.12 beta. Contacts backend TBD with new approach. Fimeg/qtpim on Gitea, branch dev

These hold personal-tier data (Matrix credentials, contacts, message history). As the capability layer lands (audit P1/P2), they become clients of secrets/step-up rather than trusting the session bus.

Tier 4 — platform

Pixel3Arch — the board port itself: kernel packaging, firmware daemons, rootfs overlays, power-button choreography. Canonical gap inventory lives in that repo's docs/port-scope-gaps.md; it is the floor everything above stands on, not a Souveraine component per se.

Reorganization note

When projects get regrouped into tiers for real, the test for each repo is: which tier's failure modes does it share? (Authority binaries fail closed; surfaces fail visible; applications fail recoverable; platform fails bricked.) A repo that spans tiers — souveraine holding both the substrate and the shell surface — is fine as long as the boundary inside it stays legible.