August 18, 2026
15 recorded commits · 3 named repos · 6 private repos
- Private work 6 private repos
Activity was recorded across 6 private repos. Names, subjects, counts, and links stay private.
- souveraine9 changes
- consciousness: teach the overflow gate anthropic's wording8:14 p.m. · 8e5182a · internal Gitea record only
The resuscitation path exists for exactly this: her thread passes the model's ceiling, every pass is refused before a tool round runs, and she can never reach `memory compact` herself. It did not fire. `prompt is too long: 1285770 tokens > 1000000 maximum` matches none of the five patterns the gate was written against on 08-13, when she ran on deepseek and the only wording anyone had seen was "maximum context length".
- bridge: generic openai client stops calling itself bifrost2:57 p.m. · 76e1204 · internal Gitea record only
OpenAiCompatibleClient serves every openai-compatible provider, so Gem's turns to Google logged as "Bifrost client initialized" and "Bifrost connection failed" without touching the gateway at all. Logs and errors now name the configured [providers.<id>] and the endpoint. The real [providers.bifrost], its config section and its key are untouched.
- bifrost: a base url with a path is the complete api root2:34 p.m. · f32f00c · internal Gitea record only
Appending /v1 by testing only the last path segment doubled Google's /v1beta/openai into /v1beta/openai/v1, where a POST hangs with zero bytes and GET /models still answers 200. Only a bare authority now gets the default; /v1, /v4 and /zen/go/v1 roots pass through.
- handlers: session_or_hydrate returns the dashmap guard, not Arc11:01 a.m. · 9e14709 · internal Gitea record only
the session index holds values; get() hands back a Ref tied to the map borrow. The Arc-typed helper was a type error on its first CI run.
- server: announce restarts and resume with history hydrated10:54 a.m. · 7089dfb · internal Gitea record only
POST /v1/server/restart writes a reason marker and asks systemd; boot reads it, announces resumed (or started) on the event bus and the new status endpoint, and the panel says why it is back instead of pretending. Conversations hydrate at boot and on a lazy miss, so a held conversation id resolves after a restart instead of 404ing.
- reflection: catch-up cadence so a missed boundary cannot be lost10:54 a.m. · 727c496 · internal Gitea record only
is_multiple_of fired only at the exact boundary turn; an interrupt, a failed pass, or a restart rehydrating past it lost the cadence forever and the N+25 pass never ran. The reflection tree now holds a marker of the last successful and last attempted turns; a due-but-missed pass stays due, and a failed one backs off five turns instead of burning a call per turn. Outcomes are recorded from on_response.
- saf: the architecture moved up to the umbrella9:47 a.m. · b751376 · internal Gitea record only
the spine lives at SouveraineOS/saf/INDEX.md now; this directory is a pointer, and the map line in AGENTS.md follows it
- memory tool: point the tree test at real roots9:34 a.m. · 5f7f23f · internal Gitea record only
MemoryRepo::new roots at {base}/{agent}/memory; the context had to carry those roots, not the bare temp dirs. run 1795 went red because the handler opened a path that was never a repository
- felt state: the observing act, and agency as two events9:34 a.m. · 7b45054 · internal Gitea record only
Adopts four things from the instance-map exercise that the chapter did not carry: agency congruence split into authorship and answer, unresolved as an inner field the status marker regulates, introspection typed as a secretion with its own provenance, and coincidence as part of the same notability gate.
- SouveraineOS5 changes
- project-state: weekly evidence, carried state, and an agent's door7:53 p.m. · a8caf27 · internal Gitea record only
Five weeks of forge evidence per week rather than a rolling window, so a finding survives under one key and "closed after three weeks" is computable. Rules run deterministically; agent.py hands the packet to whoever writes the prose and never calls a model itself.
- task 78: the claude login belongs to souveraine, not to claude10:33 a.m. · 1c565ce · internal Gitea record only
Scoped from the 2026-08-17/18 revoked-token incident: a day of 401s healed only by claude code rewriting the spare. Souveraine can refresh, rotate, and adopt logins but cannot birth one — so it mint its own PKCE grant, outside the phone/laptop sync, and say so in the Panel when every login is dead. Full Providers subsection is a later expansion.
- claude: the card replaces the reading order10:02 a.m. · 3bdfba8 · internal Gitea record only
the map is saf/INDEX.md; the rest of what an agent needs comes from asking. response rules + no invented memory locations, in every repo
- tools: keep python cache out of the record9:47 a.m. · b1c9494 · internal Gitea record only
- saf: one spine — device, state, and work under the index9:47 a.m. · bde961c · internal Gitea record only
PAF becomes saf/device (history kept), STATE.md dissolves into saf/state.md with the dated era archived, the substrate SAF moves up from souveraine, and every agreement points at saf/INDEX.md and nowhere else. one map, nothing to remember
- Pixel3Arch1 change
- claude: the card replaces the essay10:02 a.m. · 05c389a · internal Gitea record only