Casey Tunturi

August 9, 2026

August 9, 2026

24 recorded commits · 3 named repos · 8 private repos

Work threads
docs6task 443sessiond2tools2HANDOFF 2026-08-10devices/d10devices/lock
  • Private work 8 private repos

    Activity was recorded across 8 private repos. Names, subjects, counts, and links stay private.

  • SouveraineOS9 changes
    • HANDOFF 2026-08-10: the d10, dark and untouchable
      10:38 p.m. · a8e590a · internal Gitea record only

      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.

    • devices/d10: the panel cannot sleep, and both ends are blueline-shaped
      10:33 p.m. · 46685ae · internal Gitea record only

      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.

    • devices/: a support matrix per body
      10:30 p.m. · 1068515 · internal Gitea record only

      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.

    • TASK-63: touch on the glass, and a display pipe on T8010
      10:09 p.m. · dd5e242 · internal Gitea record only

      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.

    • 63: the second body, and every place the base assumed one board
      7:50 p.m. · 37b570e · internal Gitea record only

      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.

    • dump: fingerprint handoff, and the protocol is recovered
      10:01 a.m. · b78342a · internal Gitea record only

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

    • task 44: there is no API to design
      9:58 a.m. · 34cc8e9 · internal Gitea record only

      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.

    • task 44: the factor is a daemon, and the listener is not its job
      9:54 a.m. · d09978d · internal Gitea record only

      Prior art checked: sailfish-fpd-community needs hybris, wrobelda's libfprint branch is the only match-on-chip-over-QSEE example, and nobody has done FPC over QSEE natively. One listener receiver per device means the supplicant is a separate owner from the fp daemon.

    • task 44: the command protocol is recovered
      9:21 a.m. · 5134b4e · internal Gitea record only
  • Pixel3Arch9 changes
    • docs: repoint the rest at SouveraineOS/PAF
      7:43 p.m. · 2c67530 · internal Gitea record only

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

    • usb-signaller: the streaming HID writer the shell talks to
      7:43 p.m. · dcd97e5 · internal Gitea record only

      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.

    • PAF: finish the move, leave a pointer that says where it went
      7:43 p.m. · a58a589 · internal Gitea record only

      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.

    • tools: rescue the five fingerprint tools that lived only on the phone
      10:01 a.m. · e60eab8 · internal Gitea record only

      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.

    • tools: ask the TA for finger state instead of counting edges
      9:51 a.m. · cfaa7a0 · internal Gitea record only

      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.

    • docs: storage is confined to target 2, so bio cannot block
      9:48 a.m. · 8288225 · internal Gitea record only

      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.

    • docs: recover the fpctzappfingerprint command protocol
      9:21 a.m. · 85bd4b8 · internal Gitea record only

      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.

    • docs: three reads landed, and one trap
      8:52 a.m. · e2ca92a · internal Gitea record only

      qcom_qseecom is bound on the phone, so QSEE is reachable from mainline today and the TEE slot is simply empty. linux-firmware carries no fingerprint TA on sdm845/sm8250/sm8150, so TAs are per-device extracts, not shippable. Blind qfprom dumps stay off the daily driver.

    • docs: name the FPC application and settle the tethering question
      8:38 a.m. · 13888ed · internal Gitea record only

      fpctzappfingerprint was in blueline's own vendor.img, and it is FPC's cross-OEM name, not a per-device one. Google's driver and the b1c1 fingerprint dtsi pulled down beside it. qtestsign's own README settles persistent EL2: test keys need secure boot off, and XBL authenticates hyp before ABL can know the bootloader is unlocked.

  • souveraine6 changes
    • lock: answer touchKeypad on a cold start, not just a reload
      10:21 p.m. · bf469c4 · internal Gitea record only

      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.

    • sessiond: dim by percent, not an absolute
      9:19 p.m. · eb0292c · internal Gitea record only

      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.

    • sessiond: a power seam that cannot report an outcome it does not have
      7:31 p.m. · b2774c8 · internal Gitea record only

      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.

    • packaging: sessiond ships on both arches, enabled on neither
      7:31 p.m. · c802f7d · internal Gitea record only

      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.

    • usb: land the HID controller the doorway was already calling
      7:31 p.m. · 32c0198 · internal Gitea record only

      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.

    • docs: the working agreement for this repo
      7:30 p.m. · abdf310 · internal Gitea record only

      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.