Casey Tunturi

August 18, 2026

August 18, 2026

15 recorded commits · 3 named repos · 6 private repos

Work threads
claude2saf2consciousnessproject-statebridgebifrosthandlersserver
  • 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 wording
      8: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 bifrost
      2: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 root
      2: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 Arc
      11: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 hydrated
      10: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 lost
      10: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 umbrella
      9: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 roots
      9: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 events
      9: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 door
      7: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 claude
      10: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 order
      10: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 record
      9:47 a.m. · b1c9494 · internal Gitea record only
    • saf: one spine — device, state, and work under the index
      9: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 essay
      10:02 a.m. · 05c389a · internal Gitea record only