August 30, 2026

August 30, 2026

20 recorded commits · 4 named repos · 7 private repos

Work threads
ci4provision3canvas2input2shell2tasksdockrender
  • Private work 7 private repos

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

  • souveraine10 changes
    • dock: one writer for the dock's visibility
      6:18 p.m. · 35ade4a · internal Gitea record only

      The manifest and the shell registry each recomputed it from GlobalStates, which cannot see the home-zone rule, so both answered "hidden" while the dock stood pinned on home. That is the answer the agent was reading.

    • shell: declare its live runtime tools
      4:06 p.m. · 21a0fa8 · internal Gitea record only

      The bar reads battery rate and calls brightness and clipboard helpers at startup. Declare the fork and tools so a fresh body does not boot with silent shell failures.

    • shell: require the icon font
      3:19 p.m. · 4795c9f · internal Gitea record only

      Material symbol names rendered as words and forced the 1366px bar to collide when the font was absent.

    • provision: give first boot a private working dir
      3:09 p.m. · ba05f37 · internal Gitea record only

      The CLI opens its relative log before dispatch, while ProtectSystem=strict makes the default / read-only.

    • ci: feed runner probe a complete line
      2:12 p.m. · 993cc9c · internal Gitea record only
    • ci: reject stale rootfs device mounts
      1:58 p.m. · d47a5a1 · internal Gitea record only
    • ci: fail fast when runner streams are missing
      1:38 p.m. · 2b2f40d · internal Gitea record only

      Runs 385 through 387 each reached a different /dev consumer before failing. The artifact job now verifies standard process streams before spending minutes on builds.

    • ci: remove /dev/fd from shell staging
      12:59 p.m. · 9872bd4 · internal Gitea record only

      Run 386 built every binary and UPower tree, then deploy.sh died at its manifest process substitution. Ordinary redirections now carry generated input, and archive checks consume their full streams.

    • build: stop requiring /dev/fd for cross builds
      12:26 p.m. · 66fcb79 · internal Gitea record only

      Run 385 died before packaging when the artifact runner lost /dev/fd/63. A plain pipeline carries the same filenames without process substitution.

    • provision: own the x86 session graph
      12:12 p.m. · 34ab407 · internal Gitea record only

      The package owns the machine and graphical-session wants links. HPFlip had every unit installed and none enabled, so the session leader could only time out after five seconds.

  • souveraine-viewtop5 changes
    • canvas: define gesture and resize transactions
      7:50 p.m. · bf9dc53 · internal Gitea record only

      Give the desktop canvas stable zone identities, anchored camera motion, culling geometry, settle state, and two-contact arbitration. Add explicit resize transactions with constraint handling and configure coalescing, plus the compositor wire vocabulary for both paths. The control socket refuses these new verbs as unavailable until renderer and xdg dispatch land, so this foundation cannot claim an action it has not performed.

    • canvas: establish the world behind the desktop
      7:20 p.m. · 20e8128 · internal Gitea record only

      Specify the spatial desktop, camera and resize boundaries. Add renderer-free zone and viewport state with anchored zoom, fit, pan, clamping, horizontal allocation and dirty-edge tests.

    • input: close windows and let unchanged borders rest
      7:06 p.m. · ef70cea · internal Gitea record only

      Alt+F4 now takes the compositor's existing polite close path. Window borders keep one Smithay solid buffer per edge, so a frame that has not moved or changed focus no longer invents fresh damage forever.

    • render: give the fallback cursor stable element ids
      6:00 p.m. · 3027989 · internal Gitea record only

      A fresh `Id` each frame reads to the damage tracker as the whole cursor leaving and another arriving, so no frame is ever empty and the flip re-queues on every vblank. The loop never idled while a pointer was attached.

    • input: deliver pointer and desktop shortcuts
      5:41 p.m. · 21fa352 · internal Gitea record only

      The x86 seat advertised a pointer while dropping every motion, button and axis event. QuickShell had no global-shortcut protocol to bind.

  • SouveraineOS3 changes
    • tasks: name the desktop canvas behind overview
      7:07 p.m. · af559ff · internal Gitea record only
    • distribution: declare the x86 provision package
      12:11 p.m. · c9008f3 · internal Gitea record only
    • commissioning: inspect and provision a new body
      11:25 a.m. · 6058d52 · internal Gitea record only

      The read-only inspector exposes unfinished machine and session state. The blueline profile now selects one package-owned first-boot transition without placing identity in the image.

  • Pixel3Arch2 changes
    • provision: mint the machine seed on first boot
      11:23 a.m. · 2873dc9 · internal Gitea record only

      The profile-owned oneshot calls the guarded fresh-init verb before machined. CI requires the unit and rejects any reusable image that already carries a seed.

    • rootfs: mint host identity on first boot
      11:15 a.m. · 35959b7 · internal Gitea record only

      Reusable images carried one SSH host key across every body. Leave host keys and machine-id empty; systemd creates both locally before their consumers start.