- Rust 46.8%
- QML 45.3%
- JavaScript 3%
- Shell 2.3%
- Python 1.8%
- Other 0.7%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
OverviewWidget draws a grid of workspaces and places windows in them by Hyprland coordinates — HyprlandData.windowList, monitorData, Hyprland.monitorFor. Under viewtop none of it resolves, and more to the point viewtop has no workspaces at all: one space, a tiling layout. The old overview could not be repaired by repointing it at another data source, because the thing it draws does not exist. It rendered an empty frame, which reads as the overview being broken. WindowOverview lists what does exist. Cards from ToplevelManager.toplevels — the same list the dock and TaskbarApps already read, so there is one idea of what is open — each holding a live ScreencopyView of one window, which only became possible when the compositor started serving a per-window capture source; until then a card could have shown nothing but the screen it was covering. The motion is the reference shell's, read out of overview_window_card.dart rather than invented: stagger at index * 45 ms capped at the fifth card, intro scale 0.86 to 1.0, dismiss past 32% of the card height, 56 px of downward rubber-banding, settle under 200 ms. The cap is the part worth keeping — without it the tenth card starts half a second after the first and the overview feels like it is loading rather than opening. Captures run only while the overview is up. A live capture per window is a render of that window every frame, and leaving them going behind a closed overview is battery spent drawing what nobody can see. |
||
| .cargo | ||
| .gitea/workflows | ||
| .handoff-from-phone | ||
| .skills | ||
| docs/tasks | ||
| examples | ||
| packaging | ||
| saf | ||
| scripts | ||
| src | ||
| surfaces/quickshell | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE | ||
| README.md | ||
| souveraine.example.toml | ||
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