Casey Tunturi

August 18, 2026

August 18, 2026

15 public commits · 3 public repos · 308 private commits

Work threads
claude2saf2consciousnessproject-statebridgebifrosthandlersserver
  • Private work 4 repos sealed

    308 commits count toward the day. Names, subjects, and links stay private.

    • 8:14 p.m. · 8e5182a

      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".

    • 2:57 p.m. · 76e1204

      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.

    • 2:34 p.m. · f32f00c

      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.

    • 11:01 a.m. · 9e14709

      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.

    • 10:54 a.m. · 7089dfb

      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.

    • 10:54 a.m. · 727c496

      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.

    • 9:47 a.m. · b751376

      the spine lives at SouveraineOS/saf/INDEX.md now; this directory is a pointer, and the map line in AGENTS.md follows it

    • 9:34 a.m. · 5f7f23f

      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

    • 9:34 a.m. · 7b45054

      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.

    • 7:53 p.m. · a8caf27

      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.

    • 10:33 a.m. · 1c565ce

      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.

    • 10:02 a.m. · 3bdfba8

      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

    • 9:47 a.m. · b1c9494
    • 9:47 a.m. · bde961c

      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