RefuseManualStart killed every session start since 08-15. The control socket
answers in 0.47ms median and drops whole queues — 52 in one boot — which is what
strands a window. Detent, velocity and settle now come from the destination.
Six items left open, including Bitwarden, where the position theory is exhausted.
The twenty frames in AniAvatar carry no alpha, so one composited at the blink's
0.12 is a 12% black wash over the whole panel — indistinguishable from expose
dimming the screen. At that alpha the image lands inside 30 of the panel's 255
code values, so anything under 8/255 in the file is simply not there.
The shader half landed (viewtop 5d6f0f0, smithay 48adf6f) — dissonance is a
verb, the clock is shared with the dim, nobody has seen it on the panel.
Three corrections that came from opening the tree instead of the assessment:
The reference compositor has no post-process pass and no patched texture
shader. Windows are external textures inside the Flutter scene, so effects are
scene-graph filters — and their backdrop widget carries the grouped-blur rule
and a bounded ImageFilterConfig that are engine API, not stock Flutter. The
expensive half of #2 is already written upstream of us.
Our clone of it is 64 commits stale and they moved to Impeller as the default
renderer, so the eleven-patch DMSAA series our pins inherit is now a question
rather than an asset.
And atmosphere is not a thing this task invents. FELT_STATE_ARCHITECTURE.md has
had fourteen presets and a tool she calls since May. This is that instrument
moved down the stack, which means the preset layer is the deliverable and the
fifteen techniques are its renderer. Mood stays underived — the gap between what
she shows and what she carries is load-bearing.
Folder/subcategory support and inbox capture landed in souveraine-lens (61cf534, c71c7e4); this files the owner doc the build was missing and indexes it.
The r506 build had ChargeEvidence reading sysfs from sessiond's clock with
conclusion() inside the driver type — the rule violated four times in one
object. Recorded here: the ruling (§4), the task reconciliation, and the
bearer audit under the same rule. Also the corrected cutover answer: the
laptop is the test bed, the chooser is phone-shaped, mechanism undecided.
Four docs recorded 'nothing starts it' as settled fact and concluded don't use
the target, where the conclusion available was light the target. viewtop's
session launcher starts it now.
Five souveraine files own no package across the two live devices, and
/etc/systemd/system/souveraine-machined.service shadows the packaged
signer unit on both — measured, not inferred. Retires the Phase C deploy
checklist: CLAUDE.md banned its build step on 2026-07-24, START-HERE §5
bans its deploy step.
Sessiond's idle dimming now runs on the laptop (2026-08-15, first
observation) — keep or change is open. Casey stated the laptop moves
to viewtop as the real test bed; Hyprland stays as fallback so a
broken viewtop update can never lock the box.
The aarch64-only line traced to a partial install on 07-24 (no unit,
no PAM, no hook); the correction was already written down in the
08-09 power-authority handoff. Enabled from the hyprland.start hook
2026-08-15, lock cycle verified live, recovery doc on disk.
Sweep of five roots found 90+ bearing documents; tier 1 is six of them.
The anchor doc's prerequisite went stale 15 min after writing — halt was
fixed at 13:58, doc touched 14:13 — so a cold read would treat a cleared
blocker as blocking. Corrected, with the staleness kept as the specimen.
Resolves open question 1 outright. A second daemon with its own view of
the body would be the fifth instance of two actors deciding one thing,
and the hardest to debug — the disagreement would surface as feeling.
Relevance-fired memory is a plexus: same contract, same notability gate.
Fills the mood slot FELT_STATE_ARCHITECTURE deferred on 2026-05-15.
A belief ladder under both cadences, reusing the device_state doctrine:
actors are inputs, not authorities. Four types kept apart — exudate,
belief, impulse, intention — so mood and atmosphere cannot reconflate.
TASK-36 said the load path had never executed. It ran 2026-08-11 —
LoadNanoappResponse decoded, success byte set, and six gauges came off a flat
baseline at 2502 and 2990 against a 2500 floor. Recorded with Casey's numbers
and the two things that would otherwise compress away: the margin carries
intent, and the proximity veto is a separate job from the threshold.
TASK-66 corrected. The shipped front page promoted ViewTop to a peer of the
substrate, the OS and the agent; the canonical map never agreed. Three layers
now, plus the delivery defects found by auditing served bytes.
Reconciles the two owning docs with souveraine cfad688. Sub-scope A was
always half-landed: the substrate was multimodal end to end and the HTTP
door was text-only, so the TUI could see and every other surface was
blind. The door opens; nothing walks through it yet.
TASK-72 keeps image intake — picker, chip, base64, rendering — and now
has a server to call.
§2 closed, §3 built and half-accepted: the split reaches the message and
serialises, but no test asserts it and no surface renders it. §1's config
change is recorded as mine, not Casey's word. Run 1283 green, r399 shipped
to edge and running on the laptop; the phone has not pulled it.
The config hands the subconscious sliding_window where the doc and the
code default both say sliding_reflect, and the memory tool exposed the
blind strategy while hiding the safe one.
Also indexes 63, 64 and 66 — all three existed on disk and in no table.
Measured once: reply commits and PrimaryComplete fires, then the N+1
pass stops at round 3 of 10 with a fully idle runtime. The pass runs
inside run_turn, so tx never drops and the SSE stream never closes.
Lead is the todo tool. Stream lifetime is a separate fix.