Watch
1
0
Fork
You've already forked SouveraineOS
0

components: add Souveraine Rebuilt tiered inventory; update queue

INVENTORY.md seeds the eventual project reorg: authority substrate,
agent substrate, boot/session surfaces, rebuilt apps, platform. Queue
doc: lockscreen recreation done, three new named wants.
This commit is contained in:
Fimeg 2026-07-17 07:12:15 -04:00
commit fc0ee4e1ed
3 changed files with 118 additions and 3 deletions

View file

@ -77,9 +77,10 @@ authority. Screen off → wake (to lockscreen). Tap-to-wake unchanged.
1. **Favorites** — the original motivator. Blocked on contacts store →
Person layer; Chatty identity-layer steps 13 already exist.
2. **Lockscreen recreation** — PIN pad is currently always present; wanted:
swipe-to-unlock gesture with PIN behind it, lockscreen widgets. Existing
design notes in the session-trust / lock docs.
2. **Lockscreen recreation** — DONE 2026-07-17 (souveraine 401a660):
glance-first stage with swipe-to-unlock, PIN pad slides up behind it,
retreats after 25s idle. Widgets = LockSurfaceHost cards (media, agent
replies). Remaining: richer glance widgets as they come up.
3. **Idle manager intelligence** — proximity/pocket detection ("obstructed"
sensor state) gating whether the screen should ignore or accept input;
settings-dependent idle profiles (charging/docked/media). Relates to the
@ -90,6 +91,21 @@ authority. Screen off → wake (to lockscreen). Tap-to-wake unchanged.
the user shell so a shell crash can't take the lock surface with it; the
power-button choreography above is the interim. Design sitting, main
conversation (Aster-adjacent boundary).
5. **Message events to the agent** (named 2026-07-17) — two tiers:
(a) push: shell takes ownership of org.freedesktop.Notifications
(nothing owns it on the phone today; Chatty's im.received notifications
currently evaporate) and fans out lock-card / banner / sensoria event;
(b) pull: an IPC surface so an agent can be ASKED to read recent
messages — likely a read-only query into Chatty's history DB or a small
D-Bus iface on our fork. Tier (b) is agent-capability territory:
personal-tier data, wants the capability/step-up gate (§10).
6. **Agent command chaining** (named 2026-07-17) — agents composing verbs
across surfaces ("read the text, then draft a reply, then notify me").
Undesigned; belongs with the services-infrastructure / capability review.
7. **PIL vs OSK ownership** (named 2026-07-17) — when the keyboard rises,
the PIL sometimes doesn't move above it; open question is who owns the
follow behavior (PIL tracks OSK? compositor exclusive zones? a layout
authority?). Needs a decision before more positioning band-aids.
## Boot password prompt (seen post-reboot, patched live)

View file

@ -0,0 +1,94 @@
# Souveraine Rebuilt — component inventory
The wider answer to "what has Souveraine rebuilt or taken ownership of."
The [README](README.md) 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](audit-status.md)).
| Component | Language | Source | Page |
| --- | --- | --- | --- |
| souveraine-machined | Rust | `souveraine/src/machined` | [machined.md](machined.md) |
| souveraine-secrets | Rust | `souveraine/src/secrets` | [secrets.md](secrets.md) |
| souveraine-sessiond | Rust | `souveraine/src/sessiond` | [sessiond.md](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 (audit P3) and of machined
capability tokens once minted (P1). 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` |
| 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 | Identity layer: Person model, history schema v6, priority inbox (Known/Unknown), protocol filter toggles, Matrix edit/reply/reaction UI. | `Projects/Chatty`, branch `identity-layer` |
| libcmatrix | E2EE verification fixes (SAS v2 MAC, to-device delivery, sender propagation), outbound edit/redaction, reply/reaction relations, avatar-fetch loop fix. Bundled into the Chatty build as a subproject. | `Projects/libcmatrix` |
| qtpim | QtContacts revived: v6.12 beta built against Qt 6.11 (version gate bypassed). Becomes the system contacts store behind the Person layer. | `Projects/qtpim` |
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.

View file

@ -11,6 +11,11 @@ authority no other component should hold — signing keys, unlock verbs,
secret material. If a daemon does not meet that bar, it is not a component,
it is a library.
The full "Souveraine Rebuilt" inventory — agent substrate, boot/session
surfaces, rebuilt applications, platform — lives in
[INVENTORY.md](INVENTORY.md), organized in tiers. This page stays
authority-only.
## Members
| Binary | Tier | Owns | Page |