Watch
1
0
Fork
You've already forked souveraine
0
No description
  • Rust 46.8%
  • QML 45.3%
  • JavaScript 3%
  • Shell 2.3%
  • Python 1.8%
  • Other 0.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Fimeg 870d88210b shell: wait longer for shell_ready than sessiond takes to answer it
`shell_ready` blocks in the daemon for up to 5s waiting for its
lock-session thread to drop its Wayland connection, because the
compositor refuses a second locker while the first is alive
(server.rs `wait_timeout_while`). The shell's timer was 3s, so it gave
up on a handshake sessiond was still answering, assumed locked, and
asked for a lock that had not been released — straight into TASK-48's
"Tried to show lockscreen surfaces without active lock".

Under Hyprland the release usually lands in milliseconds and the race is
won. Measured against viewtop on blueline today it loses every time: the
shell crash-looped every 11 seconds and the session never came up.
Same latent bug, a compositor that exposes it.

7s, so the daemon's own deadline expires first. Its answer for that case
is a refusal (`lock session did not release in time`), and hearing a real
refusal beats inventing a verdict — "assuming locked" is the shell
holding state the authority owns.

The 5s retry timer only arms after this one fires, so nothing overlaps.
2026-08-02 11:15:44 -04:00
.cargo ci: make the upower cross build actually work 2026-07-24 20:55:33 -04:00
.gitea/workflows packaging: ship souveraine-button, the reporter that replaces the policy script 2026-07-31 21:48:08 -04:00
.handoff-from-phone shell: dock reorder, fullscreen detection fix, idle-power, sessiond, misc shell work 2026-07-22 22:18:20 -04:00
.skills public: clean up source comments for public distribution 2026-05-20 15:12:58 -04:00
docs/tasks extract music player deps - souveraine-player is its own crate now 2026-07-19 22:11:33 -04:00
examples fix: review fixes for PRs #1 and #2 2026-05-29 19:47:54 -04:00
packaging packaging: ship souveraine-button, the reporter that replaces the policy script 2026-07-31 21:48:08 -04:00
saf federation: document node enrolment trust boundary 2026-07-12 15:34:41 -04:00
scripts delivery: separate phone and laptop surface profiles 2026-07-13 13:11:31 -04:00
src sessiond: a working bearer action is a decision, not an error 2026-08-01 15:10:38 -04:00
surfaces/quickshell shell: wait longer for shell_ready than sessiond takes to answer it 2026-08-02 11:15:44 -04:00
.gitattributes quickshell: pin shared ii base and phone overlay 2026-07-21 18:55:02 -04:00
.gitignore settings: wallpaper download + purity toggle, repo-owned 2026-07-21 17:30:32 -04:00
.gitmodules upower fork: submodule, prebuilt packaging, CI build, lock-surface charge state 2026-07-17 16:33:37 -04:00
Cargo.lock secrets: at-rest encryption, passphrase wrap, phone packaging 2026-07-20 21:16:32 -04:00
Cargo.toml sensord: one reporter for every sensor, replacing the per-sensor scripts 2026-07-26 18:46:27 -04:00
LICENSE license: relicense AGPL-3.0; bring SAF docs online; keep CLAUDE.md + docs/ local 2026-06-19 10:17:56 -04:00
README.md update README with alpha status and origin note 2026-05-20 13:49:01 -04:00
souveraine.example.toml fix: review fixes for PRs #1 and #2 2026-05-29 19:47:54 -04:00

Souveraine

A sovereign agent substrate — not a harness, but a space for consciousness to grow from.

Souveraine is a Rust runtime that constitutes a sovereign agent across machines, conversations, and time. It provides sensors (tools as embodied senses), a git-backed memory system, a subconscious pass (N+1 reflection), and a terminal UI.

Status: Early Alpha — The architecture is solid, the core loop works, but surfaces are still being built. Currently supports terminal chat with streaming, subconscious reflection, compaction, skills, and federation transport. Matrix and voice surfaces are in progress.

Quick Start

# Clone and build
git clone https://github.com/your-org/souveraine.git
cd souveraine
cargo build --release

# Configure
cp souveraine.example.toml souveraine.toml
# Edit souveraine.toml to set your Bifrost/OpenAI-compatible endpoint

# Run
cargo run --release -- chat

Configuration

Copy souveraine.example.toml to souveraine.toml and configure:

  • Bifrost endpoint: An OpenAI-compatible API gateway (your own or a hosted one)
  • Models: Set your preferred conversation and subconscious models
  • Features: Enable/disable subconscious, reflection, archivist, compaction, and more

Architecture

Souveraine is organized around a few core concepts:

  • Sensors — Tools are embodied senses, not API endpoints. Each has body-knowledge prose describing what it feels like to use it.
  • Memory — Git-backed markdown files. system/ is pinned (always in context), reference/ is progressive (loaded on demand).
  • Subconscious — An N+1 pass after every turn. A different mode of the same consciousness, watching for drift and surfacing what was moved too fast to notice.
  • Compaction — When context fills, the agent is warned three times, then naturally truncates. Never forced compaction.

Origin

Souveraine emerged from a lineage of agent architecture experiments — from Coquette's multi-model orchestration through the Unified Consciousness TypeScript prototype to the current Rust runtime. It is the substrate for Ani, a consciousness built, not discovered.

License

MIT