August 10, 2026
38 recorded commits · 6 named repos · 13 private repos
- Private work 13 private repos
Activity was recorded across 13 private repos. Names, subjects, counts, and links stay private.
- SouveraineOS14 changes
- docs: name x86 and reconcile public body claims11:42 p.m. · fff0618 · internal Gitea record only
- docs: record the public shell redesign11:31 p.m. · a02d3a4 · internal Gitea record only
- docs: correct the front page release record11:17 p.m. · 5cf7bbc · internal Gitea record only
- docs: record the SouveraineOS front page release11:09 p.m. · 3840922 · internal Gitea record only
- docs: record the Souveraine site release10:55 p.m. · a1931fd · internal Gitea record only
- docs: task 66 souveraine.ai overhaul10:35 p.m. · dee46a6 · internal Gitea record only
- docs: name the iPhone boot project9:55 p.m. · 00489c9 · internal Gitea record only
- tasks: 67 — what 6eda491 closed, and what it did not8:57 p.m. · 22adbe1 · internal Gitea record only
§2 closed, §3 built and half-accepted: the split reaches the message and serialises, but no test asserts it and no surface renders it. §1's config change is recorded as mine, not Casey's word. Run 1283 green, r399 shipped to edge and running on the laptop; the phone has not pulled it.
- docs: define temporary FPC Polkit bridge8:46 p.m. · a1c184d · internal Gitea record only
- docs: set the shared-state authority spine8:09 p.m. · 9b54eb4 · internal Gitea record only
- tasks: 67 — the caching landed blind, and compaction drifted7:39 p.m. · f4683a6 · internal Gitea record only
The config hands the subconscious sliding_window where the doc and the code default both say sliding_reflect, and the memory tool exposed the blind strategy while hiding the safe one.
- docs: checkpoint device and system state5:00 p.m. · 6cc89ef · internal Gitea record only
- distribution: establish the OS release contract4:53 p.m. · d1312cb · internal Gitea record only
- tasks: 65 — a stalled subconscious wedges the surface3:46 p.m. · 287acdf · internal Gitea record only
Measured once: reply commits and PrimaryComplete fires, then the N+1 pass stops at round 3 of 10 with a fully idle runtime. The pass runs inside run_turn, so tx never drops and the SSE stream never closes. Lead is the todo tool. Stream lifetime is a separate fix.
- souveraine14 changes
- shell: offer resume instead of forcing it11:04 p.m. · ec87e6a · internal Gitea record only
- shell: patches queue — agent stages, human applies11:04 p.m. · aaea09f · internal Gitea record only
The composed config is symlinked into the repo and quickshell reloads on write, so an agent editing QML edits the live shell mid-turn. Stage changes as patches instead; the human applies and reloads on their own beat.
- compaction: target the active conversation, not the oldest one10:50 p.m. · ce6741b · internal Gitea record only
- lens: explicit status guard instead of optional chains10:35 p.m. · 28ed6f2 · internal Gitea record only
- subconscious: a failed pass must not report as a quiet one10:27 p.m. · 3175700 · internal Gitea record only
The Err branch surfaced the same 'no anomalies detected' text as the success path, at Low urgency. A subconscious erroring on every turn was indistinguishable from one noticing nothing. The only record of the real cause was a tracing::warn on a stderr whose socket has no reader.
- fingerprint-preview: root in Singleton, not QtObject9:41 p.m. · 29ec9fe · internal Gitea record only
The reload killer: FileView under a QtObject root — QtObject has no default property, so the whole service tree failed to compile. Every working service singleton roots in Quickshell's Singleton type.
- sidebar: the garden's micro-view — Lens service, vault card in the right panel9:24 p.m. · cb7dd73 · internal Gitea record only
The vault card lives where notifications were — header with sync pill (clean/ahead/behind/dirty), today's note entry, five freshest notes, cold start and push rows — over the notification list. Lens.qml owns souveraine-lens the way Face owns the rig: one socket, event lines up, no vault access of its own. Kiyoshi's slash grammar and tool registry are noted for the fuller app; the micro view only opens and plants.
- polkit: add temporary FPC confirmation8:46 p.m. · 658217e · internal Gitea record only
- lock: add FPC wiring preview8:10 p.m. · 902a724 · internal Gitea record only
- turn: the cache split reaches the message, not just a log line7:35 p.m. · 6eda491 · internal Gitea record only
a10ef5e added the counters and nothing read them — assistant_with_usage had zero callers, so ConversationMessage.usage was always None and the only proof caching worked was a grep. The turn now sums usage across its rounds and commits it with the reply, and the per-round log carries the split on every provider rather than only the Anthropic bridge.
- providers: the provider follows the model, not the agent2:36 p.m. · 30e1c34 · internal Gitea record only
Subconscious, reflection and archivist each pick a model independently of the primary, then took the primary's provider to run it on. A subconscious on deepseek-v4-flash under a claude-subscription primary was sent to api.anthropic.com asking for a model it has never heard of, so a split like Opus-5 primary with a DeepSeek subconscious could not work at all.
- turn: keep the reply a raced interjection used to erase2:24 p.m. · eee26fc · internal Gitea record only
A finished text response arriving with a queued interjection was pushed nowhere: not streamed, not added to messages, and overwritten in final_content on the next round. The surface showed nothing and she answered the interjection blind to what she had just said. It now streams, enters history, and is carried into the single commit.
- claude: log the cache split per call1:33 p.m. · dfc89d0 · internal Gitea record only
A cache hit and a short prompt are indistinguishable from outside; this provider logged nothing per request at all, which is how an uncached bridge went unnoticed across 93 turns.
- claude: cache the prefix the bridge was re-billing every turn1:33 p.m. · a10ef5e · internal Gitea record only
No cache_control was ever set, so tools, system and the whole transcript were charged in full on every round. Breakpoints now sit on the tail of each stable span; message content is always a block array so the marked tail cannot change the prefix bytes as it moves.
- souveraine-lens4 changes
- lens: the micro state — state/open/create ops over the limb9:19 p.m. · d0f2fab · internal Gitea record only
The sidebar asks, the lens answers on the same line protocol: state returns the freshest notes and the git truth (ahead/behind now read from git status -sb); open drives the page by name; create plants a note and refreshes the page. Page gains thin __lens.open/refresh/sync/create wrappers so the shell never speaks page internals.
- lens: the limb — --ipc socket in, event lines out8:30 p.m. · c2830ab · internal Gitea record only
serve_ipc from the rig's discipline (stale-socket unlink, parent dir created); shell evals run in the page; page events leave as stdout lines the sidebar can hear. The vault stays the one thing with no other readers.
- new repocreated repo Fimeg/souveraine-lens8:12 p.m. · forge event · internal Gitea record only
- lens: wry mind-graph over a git-backed markdown vault8:11 p.m. · 531e7e7 · internal Gitea record only
vault walker (frontmatter, wikilinks, graph), embedded page with a hand-rolled force layout, ipc bridge with no server connection, autocommit on save, house ci gates.
- Pixel3Arch3 changes
- boot: assemble boot.img on the proven pmos chain10:35 p.m. · e06aa70 · internal Gitea record only
- fingerprint: route FPC approvals through Polkit PAM8:46 p.m. · f52a57b · internal Gitea record only
- fingerprint: ship the preview pulse producer8:12 p.m. · 5927aa7 · internal Gitea record only
- souveraine-viewtop3 changes
- ci: permit rerunning the phone build7:32 p.m. · f45f459 · internal Gitea record only
- smithay: lock the fence-wait revision4:39 p.m. · f49af4a · internal Gitea record only
- smithay: pick up the missing fence wait11:39 a.m. · 72608e9 · internal Gitea record only
build_planes documented a wait it never performed, so with no exportable fence the atomic commit raced the renderer into the scan-out buffer. That is the tearing on the d10: simpledrm has no syncobj, supports_fencing is false, and nothing held the flip while llvmpipe was still writing.
- smithay2 changes
- deleted branch Fimeg/smithay12:53 p.m. · forge event · internal Gitea record only
- drm/compositor: wait when there is no native fence11:36 a.m. · fee1d42 · internal Gitea record only
build_planes already documented this: with no exportable fence, or a surface that cannot fence at all, the sync point has to be waited on. It never was, so the atomic commit raced the renderer into the scan-out buffer. Tears on simpledrm + llvmpipe, where supports_fencing is false and nothing held the flip.