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:
parent
b1d20dc793
commit
fc0ee4e1ed
3 changed files with 118 additions and 3 deletions
|
|
@ -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 1–3 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)
|
||||
|
||||
|
|
|
|||
94
docs/souveraine-components/INVENTORY.md
Normal file
94
docs/souveraine-components/INVENTORY.md
Normal 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
|
||||
(P0–P4 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.
|
||||
|
|
@ -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 |
|
||||
|
|
|
|||
Loading…
Reference in a new issue