Skip to content

Commit 8d963f1

Browse files
committed
smoke: the inhibitor readback was noctalia's contract, not kuma's
The re-armed sleep-inhibitor check went red on a healthy session — and the user's own desktop proved it was not the VM: kuma-shell holds no logind delay inhibitor on real hardware either. That is the shipped design, recorded in the sleep guard's own prose: a hung shell cannot stall sleep the way the hung noctalia could, lock-before-suspend is niri's and best-effort, and the guard is the property's readback. The check asserted noctalia's contract and is retired as the swap's last fossil; the notifications probe stays, CI-verified green on the new pin.
1 parent f7c479c commit 8d963f1

3 files changed

Lines changed: 25 additions & 17 deletions

File tree

‎AGENTS.md‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,14 @@ nostr layer is enabled) — the same road every release ships.
9595
restart-looping until the unit's start limit ended the waves: a
9696
probe needing a live shell process was a coin flip wearing a
9797
deadline. kumaui's idle-without-windows fix (Oct 2026, e90884c)
98-
keeps the shell alive holding its names and inhibitor through
99-
output loss, and the notification and inhibitor probes are armed
100-
again. The lesson stands: a probe that needs a live process asks
101-
the runner's timing unless the process is guaranteed alive.
98+
keeps the shell alive holding its DBus names through output loss,
99+
and the notification probe is armed again. The sleep-inhibitor
100+
check stayed retired: kuma-shell holds no logind delay inhibitor
101+
by design (a hung shell cannot stall sleep), so that probe
102+
asserted noctalia's contract, not this desktop's. Two lessons: a
103+
probe that needs a live process asks the runner's timing unless
104+
the process is guaranteed alive; and a fix's report that claims
105+
more than its diff gets caught by the gate that runs the diff.
102106
- `egl-headless` wants a host DRM node a runner lacks. The GPU-less
103107
console combo is `virtio-vga` plus `none`.
104108

‎notes/44.4.0-plan.md‎

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -432,8 +432,12 @@ binaries could not carry it. What the release week found:
432432
readback, a stale noctalia pgrep — either measured the runner's
433433
timing or passed vacuously. What remained asked the wiring and the
434434
journal; whether the shell draws is real hardware's question. The
435-
measured facts are in AGENTS.md. Re-armed 2026-10-03: kumaui's
436-
idle-without-windows fix (e90884c) keeps the shell alive holding its
437-
names and inhibitor through output loss, so the ownership and
438-
inhibitor probes came back, and the kumaui pin was bumped to carry
439-
the fix.
435+
measured facts are in AGENTS.md. Partially re-armed 2026-10-03:
436+
kumaui's idle-without-windows fix (e90884c) keeps the shell alive
437+
holding its DBus names through output loss, so the notification-
438+
ownership probe came back and passed CI the same day. The sleep-
439+
inhibitor readback stayed retired, and for a different reason than
440+
the wave era: the shipped sleep guard's own prose says kuma-shell
441+
holds no logind delay inhibitor by design — a hung shell cannot
442+
stall sleep the way the hung noctalia could — so that check asserted
443+
noctalia's contract and was the last fossil of the swap.

‎scripts/smoke.sh‎

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1449,14 +1449,14 @@ smoke_published() {
14491449
done
14501450
ok "the shell owns org.freedesktop.Notifications"
14511451

1452-
# Lock before suspend: `lock_before_suspend = true` is baked,
1453-
# and the readback is the shell's logind sleep inhibitor.
1454-
# The same kumaui fix keeps it held through output loss; the
1455-
# guard below still proves the no-shell half of the property.
1456-
guest systemd-inhibit --list --no-pager \
1457-
| awk '$1 == "kuma-shell" && $6 ~ /sleep/ { found = 1 } END { exit !found }' \
1458-
|| bad "the shell holds no sleep inhibitor: this machine suspends without locking"
1459-
ok "the shell inhibits sleep to lock first"
1452+
# Lock before suspend: kuma-shell deliberately holds no logind
1453+
# delay inhibitor — the shipped sleep guard's own prose says
1454+
# so, so a hung shell cannot stall sleep the way the hung
1455+
# noctalia could — and lock-before-suspend is niri's
1456+
# `lock_before_suspend`, best-effort, same as any locker.
1457+
# A probe here asserts noctalia's contract, not this
1458+
# desktop's. The guard below is the property's readback: a
1459+
# session with no shell ends instead of suspending unlocked.
14601460

14611461
# And the guard for when the shell is not there at all.
14621462
#

0 commit comments

Comments
 (0)