An agent landing here got nothing. Says what the project is, the reading
order, and the rule that keeps being broken: ls by date and read, do not
grep — these documents argue, and the argument is the content.
Pixel3Arch packages.yml now publishes all 14 device packages; pacman -Sl
souveraine-aarch64 is the manifest. Update TASK-25 status/acceptance +
record the four cross-build shapes and the committed-junk CI trap. DUMP
for the session. STATE.md last-updated 2026-07-30.
Migrations have been silently lossy: the subconscious surface was stranded for
over a week by the ii -> souveraine shell move, and five packages went stale,
both because there was no list of what exists to tick off. SHELL-SURFACES.md is
that list — every shell surface and first-party service, the contract it is
defined against, its substrate today, and whether it reaches the glass.
States the rule that would have caught it: a feature defined as QML in a shell
tree dies with that tree; one defined against a contract survives (the
subconscious model in services/Ai.qml crossed untouched; only its views, riveted
to the ii overlay system, stranded). Marks the ii-substrate furniture rows
UNVERIFIED — that verification is the checklist's first demand. STATE.md points
at it from the resume anchor.
TASK-43 gains the §Scene composition design settled 2026-07-30: the
texture/content wall, pose (geometry, the agent's) and expose (legibility,
gate-veiled) as authority-split verbs, the selection surface as a scene element
not a layer surface, and the primary-selection/data-control source now wired
(234a631) with its owed refinements named.
TASK-18: the selection chip's Hyprland surface layer is terminal (the tap bug
is layer-shell); its backends are portable. TASK-30: viewtop's wire table is one
of its surfaces, grown by pose/expose. TASK-17: the OSK z-order this task fought
is structurally enforced under viewtop.
deploy.sh:246 rsyncs --delete into the phone's surface tree with no snapshot,
unlike the local compose which snapshots to .ii-previous. Root cause is
installing into $HOME, which has no file-ownership model. Payload belongs in
/usr/share owned by a package; $HOME keeps only overrides.
13 (grip) and 35 (sessiond deadlock) are done; both moved to archive/ with
closing notes. Index regrouped by state with a one-line what's-left per task
instead of a flat table of history; the archive prose moved to archive/README.
Corrected stale statuses: 29 shipped (read-only pending polkit), 31's component
and squeeze are live and only its contents are open, 42's layer 1 is built, 34
no longer blocks grip, 43 was numbered 42.
New: 44 fingerprint (DT + shim sat unused in staging/ since 07-07), 45 haptics
(settle which chip drives the motor before porting cs40l2x), 46 camera (drivers
and CAMSS are already in-tree; blueline's DT has no camera node).
A rotted action pin skipped the publish job rather than failing it, so
edge stopped publishing and the phone sat on an old build for a working
day with nothing saying why. The runner journal logs task pickup and
never outcome, which is what was being read.
ci-status.sh asks Gitea instead, drilling run -> job -> log tail on a
failure. claude-hook-push-ci.sh runs it after every git push so the
answer arrives without anyone choosing to look. TASK-42 has the
three-layer plan; this is layer 1.
Foundation landed: lock handoff, admission gate, layer stack, back verb,
intent table. 123 tests, CI green for the first time (repo was never
fmt-clean). No Wayland/DRM yet.
Records the two traps: the lock handoff is the normal path, and sessiond
is already the availability layer so the compositor gets no fallback
presenter.
TASK-39 step 1 is done and clean — default-routes stores 0.49 cubed and
rewrites within 6s of a change. 'Pinned on boot' is a faithful restore
of a value lower than wanted, so this is defaults and roles. No second
writer.
TASK-19 gains Casey's ask: source health, evidence and confidence have
no surface anywhere. Readout now, controls after 08(g) decides.
07-27's 'ignores force' conclusion is superseded — same binary, no
nanoapp, 2502-2990 deflection. Kept verbatim below the correction.
The nanoapp is off grip's critical path but still wanted for doze,
the real detector, haptics and TASK-40.
Our engine pins are already theirs. The embedder, the eleven-patch
DMSAA/external-texture series, KMS and the GBM atlas path are the
expensive parts and they are readable.
Their lock is a compositor-internal bool with PAM dlopened in-process
and no ext-session-lock served at all. It is invisible to logind and
sessiond, and it gates input against every caller including Annie.
viewtop serves the protocol; sessiond keeps the decision.
Also adds TASK-41 (attested producers), raised out of grip bring-up.