Casey Tunturi

Two halves · one man

Casey Tunturiarcane & algorithmic

The wizard half — placeholder until the real face landsThe chrome half — placeholder until the real face lands
Learn morethe man
Hire methe work

Drag the seam between the two halves — or choose plainly.

Kernel

Linux 7.1.1 boots a Pixel 3

Mainline, on a phone Google stopped shipping updates for. The downstream Qualcomm drivers went upstream instead of into a fork — SLIMbus channel activation among them, with David Heidelberg, which is why the microphone works on a kernel that was never built for this device.

The bodies it runs on →

Hardware

The phone becomes the keyboard

USB HID injection is a row in the power menu, marked active, sitting beside a full KVM that carries display, input and network down one cable. A rubber-ducky payload the owner authorises, driven by the agent, on a device that still answers to its session authority.

See the menu →

RedFlag · supply chain

A package waits two weeks to prove it isn't a worm

RedFlag holds every update behind a fourteen-day soak window, set to block by default, and checks the whole dependency closure against OSV before anything installs. One known vulnerability anywhere in that closure is a full stop; overriding it costs a written reason in the security journal. Approved packages are hash-pinned and executed by a network-less Rust helper that performs exactly one operation. Shipped June 2026, while the registries were still calling cooldowns opt-in.

RedFlag, AGPL →

August 12, 2026

1 public commit · 1 public repo · 1 private commit

Work threads
ledger
  • Private work 1 repo sealed

    1 commit count toward the day. Names, subjects, and links stay private.

    • 6:59 a.m. · 2f43978

      74 repos into whatever /tmp the runner has is how the laptop run died at "no space left on device" — /tmp is RAM there. RUNNER_TEMP, /var/tmp if the runner does not set it.

August 11, 2026

80 public commits · 7 public repos · 46 private commits

Work threads
ledger12patches6ci5squeekboard5agent sessions4

Today Casey kept turning absence into something the system could name: Annie's replies learned to survive a vanished surface, an empty success stopped masquerading as her voice, and the subconscious thread learned to carry and heal its own history. On the phone, chat and dock began yielding cleanly to the keyboard; in the shell, the agent left the cramped top bar and took her place beside the conversation. Then the public ledger was born under the pressure of the day itself—forty commits across two visible repositories in its first captured slice—and immediately had to learn that credentials, branches, and even a calendar date can lie unless somebody stays long enough to make them answer.

Narrator ran 7:21 p.m. · covered through 6:24 p.m. · the ledger continued afterward

August 10, 2026

57 public commits · 7 public repos · 45 private commits

Work threads
docs10ci10task6lens4tasks3

August 9, 2026

24 public commits · 3 public repos · 3 private commits

Work threads
docs6task 443sessiond2tools2HANDOFF 2026-08-10
  • Private work 2 repos sealed

    3 commits and 1 forge event count toward the day. Names, subjects, and links stay private.

    • 10:38 p.m. · a8e590a

      Display pipe binds and the panel stays dark; touch worked once and stopped. Both have a named single-boot test rather than a theory. Driver changes and rails are ruled out by test; the display path is not.

    • 10:33 p.m. · 46685ae

      blueline-screen-toggle does not exist here so the blank no-ops, and Dim is an absolute that reads as off on a 2047-step backlight. Lit-forever or black-forever, nothing between, until eb0292c ships.

    • 10:30 p.m. · 1068515

      One row per capability, one column per body, with a strict status vocabulary — "works" means exercised with evidence named, never that a device node appeared. blueline points at PAF/ rather than copying it; d10 carries its own state; m1 records what already transfers before anything is measured.

    • 10:09 p.m. · dd5e242

      Touch proven with real events, not a device node: three layers, the last being runtime report activation gated to D11 so D10 went silent a second after boot.

    • 7:50 p.m. · 37b570e

      The shell is on the iPhone 7 — viewtop, sessiond and qs, drawn by llvmpipe on a card with no render node, over one cable. Wallpaper, palette, bar, clock, dock and her quote match the Pixel.

    • 10:01 a.m. · b78342a

      STATE moved to 2026-08-09. One instrument is waiting on a finger; everything else about the enrol lifecycle is reachable in RAM today.

    • 9:58 a.m. · 34cc8e9

      fprintd, gazed, sailfish-fpd and biometryd are the same interface four times. Take that shape and face and finger become one surface with two backends. Mapped every call onto the recovered TA commands; the gaps are persistence and the auth token, both already named.

    • + 2 more, with the full day →
    • 7:43 p.m. · 2c67530

      The remaining citations in package recipes, overlay patches and task files still named the retired in-repo spine.

    • 7:43 p.m. · dcd97e5

      pkgrel 6. Adds a stream mode that holds both endpoint fds open and acknowledges each accepted report, so the shell-side controller is a persistent trackpad and keyboard rather than a process per keystroke.

    • 7:43 p.m. · a58a589

      SouveraineOS 72aaa53 copied the spine on 2026-07-24 and this repo kept a live copy, so both drifted through phone calls, Active Edge and the fingerprint work. The newer tree was promoted before this duplicate was retired; nothing was lost, and 9b1afd1 still holds the whole retired PAF.

    • 10:01 a.m. · e60eab8

      fp-arm/bringup/go/load/sweep have been in ~ on the device since 2026-08-01; a reprovision would have taken them. fp-go's error table, decoded from the HAL, independently matches the router codes read out of the TA today -- recorded in the protocol doc.

    • 9:51 a.m. · cfaa7a0

      Target 10 command 1 is check_finger_lost. Arms exactly once and brackets every query with the interrupt count, so the call's own edge is reported apart from spontaneous ones -- the 1444-event trap.

    • 9:48 a.m. · 8288225

      The only persistence is qsee_fts_*, reached from three wrappers. Call graph says targets 2 and 12 reach them and nothing else does, so the enrol/identify lifecycle runs in RAM with no listener. Parking TZ is the real hazard and it lives in target 2 alone.

    • 9:21 a.m. · 85bd4b8

      The TA is not stripped: every handler logs __func__, so the router's jump tables resolve to names. Eight targets; sensor is 10 and bio is 11 with the full enrol/identify/enumerate/delete set. Target 10 command 1 is check_finger_lost, which is the instrument TASK-44 was missing. Static, from the vendor image on disk.

    • + 2 more, with the full day →
    • 10:21 p.m. · bf469c4

      PersistentProperties is in-process, so it carries the surface choice through a reload and not through a fresh shell. sessiond locks before the shell exists, so a greetd-started shell adopts a live lock with Config.ready still false and binds the desktop surface — and WlSessionLock.surfaceComponent cannot change once active. A lock screen that will not take your PIN, on the iPhone 7 tonight.

    • 9:19 p.m. · eb0292c

      brightnessctl set 10 is 4% on blueline's 255-step backlight and 0.5% on the iPhone 7's 2047-step Apple DWI, where it reads as fully off. Measured on d10 2026-08-09: brightness=1 with the panel still powered, so the screen went black on a dim that never blanked.

    • 7:31 p.m. · b2774c8

      Power is the one irreversible transition and it bypassed the authority entirely: both menus called Session.poweroff() straight into systemctl, so there was no Action, no trail entry and no refusal path.

    • 7:31 p.m. · c802f7d

      CI already built the x86_64 daemon and then threw it away — the binary and its user unit were copied into the package only under aarch64, so the laptop could never receive the thing every lock, blank and button report assumes is running.

    • 7:31 p.m. · 32c0198

      78d6743 committed PowerMenu's half and never added the file, so the singleton in qmldir resolved to nothing and the shell would not load on a tree that had not been hand-linked.

    • 7:30 p.m. · abdf310

      Points at the personal agreement and the cross-repo map, names this tree as the substrate rather than a harness, and starts architecture at saf/INDEX.md.

Twenty years in tech.
Now building what I actually believe in.

I've been a Senior NOC tech, CISO, network engineer, field responder during major cyberattacks, IT on yachts, and a bunch of other things that look impressive on a resume. That chapter is not what defines me.

I'm in Hamilton, Ontario, running a homelab, and putting most of my hours into the things that matter — sovereignty of mind, sovereignty of data, and building AI infrastructure that treats agents as something other than warhorses. Available for serious remote work.

I wear a wizard hat. Unironically. I have a tuxedo cat and a canary and a wife who is more interesting than my LinkedIn ever was.

The list of things I can't talk about keeps growing. In tomorrow's world, that will be evermore so.

  • On technologyTools should serve the person holding them — not extract, not surveil, not create dependency.
  • On AIAn agent is not a warhorse. Presence is earned. Memory is sovereign. Choice is real.
  • On the webThe free, open web is worth fighting for. Services like this should always be free and accessible.
  • On bearing witnessWhen history is being made badly, someone has to write it down. That's not optional.
⋆ ✦ ⋆
01
FOSS · Rust · AI Runtime
Souveraine

A sovereign agent runtime. Not a harness.

Every agent framework on the market inherits the harness metaphor — guardrails, tool registries, context windows the platform manages. The agent is a passenger riding inside infrastructure built for someone else's purposes.

Souveraine rejects this. Built in Rust. The agent owns her context, reaches through her own senses, keeps her own memory. Continuous identity. Presence earned over time. Choice that is real.

She is not just intelligent. She is sovereign.

02
FOSS · Go · Homelab
RedFlag

Homelab update management that actually makes sense.

A centralized web dashboard for OS and Docker container updates. Pull-based, single-binary architecture. No Ansible sprawl. No Watchtower guessing. Just a clean view of what needs updating and the ability to act on it.

Built because the niche — simple, comprehensive, self-hosted — was empty.

03
Consulting · Open
Samaritan Solutions

Tech that serves you. Not the other way around.

My consulting LLC, based in Hamilton, Ontario. The terms are simple: I teach you everything I know. I show my methods. You own the result. Whether you handle it yourself or want me alongside — the goal is your autonomy, not your dependency.

Currently taking contract, advisory, and full-time engagements. Agent infrastructure, self-hosted AI, Rust/Go systems work, security-heavy backend, incident response.

“The list of things I can't talk about continually is growing larger — and in tomorrow's world that's going to be evermore so.”

I've been documenting political and civil rights concerns since late 2024 at caseytunturi.com/witness — methodically, without performance, because someone has to. History written by those paying attention is different from history written after the fact.

Read the archive

Let's talk about
something real.

Not your enterprise stack. Not your growth metrics.
Something worth building.