Watch
1
0
Fork
You've already forked SouveraineOS
0
Commit graph

232 commits

Author SHA1 Message Date
Fimeg
608a9520e0 task-33: battery and charging belong to the device state machine 2026-07-26 16:37:28 -04:00
Fimeg
d84610b86a task-13: name the single blocker and the consumer that makes grip worth finishing 2026-07-26 16:07:41 -04:00
Fimeg
3e4373bbc5 tasks: 30 agent reach, 31 radial dial, 32 pill+keyboard; 08 gains the two unsurfaced findings 2026-07-26 16:07:20 -04:00
Fimeg
9590e74bd9 device-state: §11 — hardware corrected the torn-tail policy; the verifier exists 2026-07-26 14:50:27 -04:00
Fimeg
2dc479f0a2 doctrine: §13 — the verb table and refusal codes are built 2026-07-26 13:01:37 -04:00
Fimeg
6aa10d38cd device-state: §9.5 prescribed the wrong debounce; the trail said so 2026-07-26 12:52:03 -04:00
Fimeg
7b769f7c7f docs: fold the stranded device tasks, archive the handoffs, one index per tree 2026-07-26 12:33:03 -04:00
Fimeg
6ae84f4c52 device-state: proximity is evidence, not an actuator 2026-07-26 12:24:00 -04:00
Fimeg
9b99c1bcbd doctrine: §13 — the agent owns the device 60/40, and needs to chain verbs 2026-07-26 12:16:12 -04:00
Fimeg
e480809c70 docs: rescue the agent-substrate tree out of a gitignored directory
219 files, 2.0 MB, untracked in souveraine/docs and existing nowhere else.
The volume is at 100% with no snapshots.
2026-07-26 12:11:50 -04:00
Fimeg
eaa5e2923d device-state: §11 — where the trail lives, what bounds it, what chains it 2026-07-26 11:25:18 -04:00
Fimeg
f8afc4896b crash-reporter: record the class it cannot see (clean-exit system units) 2026-07-26 09:13:56 -04:00
Fimeg
c0a33c6f75 task-19: settings must persist, not just reach the daemon 2026-07-26 09:02:54 -04:00
Fimeg
608f652537 tasks: fold 01 into 16.F and 22 into 19; 24 open tasks -> 22
Both were sub-items, not work units. 01's every step read "after 16.B/C";
22 sourced its own candidates from 19's still-required list and its status
line was "enumerate with Casey at session start".
2026-07-26 08:47:55 -04:00
Fimeg
cd3d57959b docs: source health is §10; correct the TASK-26 retirement
TASK-26 had two subjects. Yesterday's note closed the proximity-authority
half and read past the other one — evidence-source health, which is what
PAF/slpi.md was actually pointing at. Built now, so both are closed.

TASK-28 gains two measured cases: the reporter/sessiond split-delivery
order, and sessiond restart putting up the fallback PIN surface.
2026-07-26 08:38:35 -04:00
Fimeg
fccee4ba3d docs: TASK-29 — record the app rewrite and the polkit blocker 2026-07-26 08:02:40 -04:00
Fimeg
e08ec7a0d9 docs: state machine audit 2026-07-26; retire TASK-26 references
DEVICE-STATE-MACHINE §0: the audit, in the doc rather than a new task file.
Lock shadow copy found and fixed (doctrine §4). Two open: proximity has no
debounce and thrashed 69 transitions in 40min (§9.5 already specifies the fix),
and forensic.jsonl sits on tmpfs — RAM, wiped on reboot, unbounded.

TASK-26 was never written and no longer needs to be: the proximity second
authority is resolved, packaging is TASK-27. Dangling refs in STATE.md,
TASK-25 and TASK-27 now say that instead of pointing at a missing file.
2026-07-26 07:28:27 -04:00
Fimeg
45a4e44392 docs: lock-before-blank is an invariant; note the missing deploy lease
LOCK-DPMS-LESSONS §1: the idle clause described 300s-lock-before-600s-blank,
which no longer exists. sessiond enforces the ordering now.

TASK-08: record that (e) is still missing — restarting the shell over a locked
session still hits "Tried to show lockscreen surfaces without active lock".
Reproduced during this deploy.
2026-07-25 19:19:47 -04:00
Fimeg
b7682206be tasks: updater shipped, edge clobber fixed 2026-07-25 18:41:24 -04:00
Fimeg
832352031e docs: the state machine actuates; correct two stale status lines
DEVICE-STATE-MACHINE.md said "partly built and entirely inert" and the archived
deploy task said "observational only". Both were written 2026-07-25 midday and
were overtaken by aa30278 the same afternoon. tasks/README.md already said
"actuating 07-25" — the index was right and the design docs were two hours
behind, which read as a live blocker on TASK-25's ordering note ("state-machine
controls must wait for TASK-15/08 to give it actuators").

Doctrine: where docs and code disagree, the code is right.

Also records the second pass: lock-before-blank is now an invariant enforced in
the authority, and hypridle's competing listeners are deleted.
2026-07-25 18:39:08 -04:00
Fimeg
1c1e1397e8 task 29: souveraine-updater handoff 2026-07-25 17:21:05 -04:00
Fimeg
9363abca3d task 27: culver green at #17, first ever 2026-07-25 17:11:43 -04:00
Fimeg
5faae0fdb3 task 27: primary exists now; main still stale 2026-07-25 16:32:57 -04:00
Fimeg
81196d1ab9 task 27: pipeline census from the live API; kernel guard is host-probed config, not credentials 2026-07-25 16:25:09 -04:00
Fimeg
0db3a8aa28 tasks: archive the two finished docs, complete the index
fix-dock-fullscreen-detection (superseded) and unified-device-state-deploy
(done 07-25) moved to archive/; pointers to them updated.

Index was missing rows for 21-25 and unify-shell-trees entirely. Statuses
corrected against today: 08 actuating, 15 blocked on slice separation, 17
has no word completion. TASK-26 is cited by STATE.md and TASK-25 but was
never written - noted.
2026-07-25 15:23:11 -04:00
Fimeg
fa664dcaea docs: TASK-28 handover on upgrade 2026-07-25 15:08:59 -04:00
Fimeg
0083c6d79f docs: TASK-27 gitea pipeline audit
Scoped from what was measured today. The finding that matters: rootfs-overlay
is not a package, so overlay fixes reach a running phone only via reprovision
— which costs Casey his live system. Two fixes are already stuck behind it.

Also recorded: there is no `primary` branch despite ci.yml triggering on it
(public is the de facto release branch, proven by the phone's installed
package matching public's head); kernel.yml's fourth blocker, the
config-blueline move that breaks PKGBUILD:53; and that the archdev aarch64
sysroot was half-updated and silently lies about which ABI a cross build
targeted, which makes every recent cross-built artifact suspect.
2026-07-25 14:34:29 -04:00
Fimeg
c304e9760b docs: correct the device-state deploy checklist against the live phone
- drop 10.10.20.9; it was never a real address. Phone is pixel/172.16.42.1
  over USB, 10.10.20.234 over wifi
- delivery is the package, not scp to /usr/local/bin. Verified:
  /usr/bin/souveraine-sessiond is owned by souveraine 0.1.r218.g91c0cf800bf6-1,
  which already contains b4b30b1
- there is no socat on the phone, nor nc; record the python3 form the other
  sessiond clients use
- record what the checklist's own verification steps actually returned:
  device_state=active and forensic count 0 with no forensic.jsonl, 2.5h into
  a session with locks. The machine was inert on hardware, not merely unwired
2026-07-25 14:24:51 -04:00
Fimeg
ab600c2c16 Delete TASK-26; record what DEVICE-STATE-MACHINE actually built
TASK-26 duplicated this doc and should not have been written. The doc
already covers the seven-actor scatter, the evidence model, the
proximity-lock/screen-toggle mapping, and names sessiond as the owner.

Corrects the status: b4b30b1 built the enum, the transition guard, the
confidence arithmetic and the forensic log, but nothing drives them - the
daemon never leaves Active, so six of eight states are unreachable outside
tests, and no sensor feeder exists. Notes the two places the code already
diverges from section 4.
2026-07-25 12:17:22 -04:00
Fimeg
49332838d3 TASK-26: correct the sensor claim; the machine absorbs the scripts
Wrong on two counts before. The sensors are not in question - SLPI bring-up
was solved 2026-07-10 and the 07-13 SUID sweep found accel/gyro (BMI160),
mag (LIS2MDL), pressure (BMP380), ambient_light/proximity (TMD2725) and
sensor_temperature; only amd lacks a SUID. A failed monitor-sensor
accelerometer claim was contention with blueline-autorotate, not absence.

And the target is not to make the scripts clients of the state machine. The
machine absorbs them: proximity-while-locked, the DT2W gate and rotation are
device state reactions by definition. Three scripts, two of them reading the
same proximity signal, are three state machines with no forensic log and no
coordination - which is why they land together, not one at a time.

Adds the 07-25 SLPI/hexagonrpcd outage as the concrete argument that
evidence-source health is itself device state.
2026-07-25 08:22:53 -04:00
Fimeg
7cb55401e6 TASK-26: sensor evidence and a single authority over it
The device state machine is not observational, it is blind: nothing in any
repo ever sends SensorInput, so observed_confidence cannot leave 0.0 and the
forensic log cannot fill. Meanwhile blueline-proximity-lock is live and
acting on proximity on its own authority, unowned by any package. Carved as
its own task because 08(a) and 15 are both efferent and assume afferents
that do not exist - wiring actuators first would manufacture exactly the
success-shaped switches 19 forbids.

Also: 08(b) corrected (ChargeType and PercentageTrusted existed on the bus
but reported defaults for days; three fixes needed, only the third moved it),
25 gains the real kernel blockers and the unowned-file inventory, and STATE
no longer claims the kernel ships by pacman.
2026-07-25 08:14:15 -04:00
Fimeg
182368014e DUMP: correct the charge-type record; kernel pipeline is not one step
The N/A reading was from the charger, not the battery. upower reads the
battery, and on SDM845 that is the fuel gauge, which has no charge_type at
all - so 628283f could never move the symptom. Records the device-link fix,
the three blockers actually in front of repo-add --sign, and the one
hand-copied header that had been blocking -Syu.
2026-07-25 07:08:15 -04:00
Fimeg
712e8a9ec3 DUMP: the session that retired flashing 2026-07-25 06:06:22 -04:00
Fimeg
616c933e5b TASK-08b unblocked: pmi8998 charge control is live; note the settings-packaging stage 2026-07-24 22:11:45 -04:00
Fimeg
ce66a2a74f STATE: phone updates with pacman; flashing retired 2026-07-24 22:06:02 -04:00
Fimeg
66053e1948 tasks: one gitea repo for every package (25); keyboard rethink (24); device-state deploy
25 captures the pipeline unification: souveraine's CI is the only one
doing repo-add --sign, so everything else has to be hand-carried to the
phone. Records the phone-side wiring that went live today and the two
pacman traps behind it (DownloadUser vs a custom XferCommand, and the
DisableSandbox* lines that were never real options).
2026-07-24 20:29:17 -04:00
Fimeg
72aaa536aa PAF: bring the blueline architecture framework into SouveraineOS 2026-07-24 11:04:07 -04:00
Fimeg
adce4441cc tasks: log 07-21 findings (culver A/B/D/E, mic wedge, overview, keyboard); add 19-23
Records what the 2026-07-21/22 sessions actually found and shipped,
so the ledger matches reality:

- TASK-16: A, B, D landed; C (contact card) implemented, phone
  acceptance pending; new unit E (history-fill boot amnesia) done.
- TASK-08: shell-side state projection exists; add the maintenance-
  lease requirement so a deploy can never race the idle lock again
  (root cause of the 19:29 auto-lock-during-deploy crash).
- TASK-09: stale-lock incident — panel/IRQ alive, session-lock
  routing stale; capture both in the resume test.
- TASK-14: expand to the Auxo-style running-app surface and an
  unconditional Home tap; folds in the GLES OpacityMask and
  workspace-ratchet findings.
- TASK-17: pin the iOS-like keyboard target and the Hyprland
  key-safety hammer test.
- Mic trace path corrected to its new home.

New: TASK-19 (settings control center), TASK-20 (player video +
agent control), TASK-21 (reboot-to-Android confirmation), TASK-22
(settings/fullscreen tweaks), TASK-23 (culver locked-notification
nudge).
2026-07-24 10:21:44 -04:00
Fimeg
931e794701 docs: kernel handoff (gitea blueline FF to f56b1ae, one build path), QCE-off note, shell-tree unify task 2026-07-21 15:49:15 -04:00
Fimeg
c725b081b5 task: fix dock fullscreen detection for qs -p windows 2026-07-21 15:04:27 -04:00
Fimeg
19475878dd deprecate chatty/libcmatrix/qtpim, clean stale refs
Chatty superseded by souveraine's Matrix sensorium. libcmatrix unused.
qtpim contacts work stalled. All repos archived on Gitea.

- STATE.md: remove component sections, update secrets consumers, decisions
- Mark deprecated docs with headers
- Update INVENTORY.md Tier 3 entries as deprecated
- Update secrets.md consumer list
2026-07-21 13:51:14 -04:00
Fimeg
208fe9219a tasks: TASK-18 Read Aloud backend is live (VibeVoice 10.10.20.19:7861, shell Speech.qml seam) 2026-07-21 13:40:06 -04:00
Fimeg
724e88e76d tasks: add TASK-18 selection menu spec; TASK-16 favorites-rail ordering note 2026-07-21 13:28:43 -04:00
Fimeg
2d95f3743a tasks: add TASK-16 culver messenger+contacts; re-point TASK-01 to culver-contacts store 2026-07-21 13:01:59 -04:00
Fimeg
8578e654d2 tasks: rewrite 03 (boot timing, source-verified faults), add 17 (keyboard/dictation)
03: today's deep boot investigation — the splash-to-splash flicker is a
DRM-master handoff race on a panel with supportsAsyncCommit:false (56
EBUSY commits); the Hyprland splash text is killed (disable_splash_rendering);
the corner box is an unidentified top-right toast (NOT the error overlay,
which stays); the recovery-mode wedge is documented. The EBUSY handoff
fix is the one real remaining timing bug.

17: stevia OSK + mic key + dictation shipped this session; layout/UX
polish and TTS wiring remain.
2026-07-21 11:37:16 -04:00
Fimeg
e37551014b tasks: retract mic sample-dup defect (pw-record stereo upmix false alarm)
The doubled samples were L/R pairs of a stereo client-side upmix of the
mono source; the de-interleaved channel is clean 48k. Capture path has
no fidelity defect — the pin is the one remaining mic defect.
2026-07-21 09:56:12 -04:00
Fimeg
039d73eb3b tasks: mic is functional-pinned (spec'd: sample-dup + unpin test); add 15 idle coordinator
07 rewritten around the working mic-race-fix kernel (f56b1ae08 running):
canonical-tree truth, the sample-duplication defect with measured
evidence, and the cold-boot unpin protocol. 15 is the freeze/doze/
RTC-wakeup design carved from today's idle-burn numbers.
2026-07-21 09:19:50 -04:00
Fimeg
22d997a394 squeekboard: retired — stevia (patched for Hyprland) is the OSK now 2026-07-21 09:09:20 -04:00
Fimeg
651f24d269 tasks: archive 05 — crash surfacing done, kill-test verified 2026-07-21 08:41:11 -04:00
Fimeg
95808d9adf tasks: archive 04 — notification server existed, built lock card + NotifyEvents seam; 05 unblocked 2026-07-21 08:34:32 -04:00