From 46adcc99890f65dfd2b5e7625df0f4d347158a33 Mon Sep 17 00:00:00 2001 From: Bernardo Magri Date: Wed, 15 Jul 2026 11:11:57 +0100 Subject: [PATCH] =?UTF-8?q?docs(agent):=20file=20#127=20=E2=80=94=20docked?= =?UTF-8?q?=20idle=20blackout,=20no=20wake,=20undock=20no=20panel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bernardo 2026-07-15: docked idle → black screens; external KB/mouse did not wake; unplugging the external did not restore eDP; Caps Lock still worked. Captures the "session crash" as a seat brick. HARDWARE-QUEUE repro + journal steps for the next controlled run. --- agent/BACKLOG.md | 29 +++++++++++++++++++++++++++++ agent/HARDWARE-QUEUE.md | 27 +++++++++++++++++++++++++++ agent/JOURNAL.md | 12 ++++++++++++ 3 files changed, 68 insertions(+) diff --git a/agent/BACKLOG.md b/agent/BACKLOG.md index 91c3bb9..bacad4b 100644 --- a/agent/BACKLOG.md +++ b/agent/BACKLOG.md @@ -72,6 +72,35 @@ buttons in the installer (VM gum screens under Boreal look legible — artifacts in `/tmp/nomarchy-v2-swap-93/`). Needs Bernardo's screenshot or an Acer repro to pin the actual widget before fixing. +### 127. `[blocked:hw]` Docked idle: black screens, no wake, undock does not restore panel + +Bernardo 2026-07-15 (AMD dev box, docked): left the laptop docked; after a +few minutes of idle it appeared to "sleep". Then: + +1. External keyboard/mouse did **not** wake any display. +2. Unplugging the external monitor did **not** turn the laptop panel back + on (dock mode has eDP disabled — undock *should* re-enable it). +3. The machine was still alive: Caps Lock LED toggled on the keyboard. + +This also killed a long agent session (looked like a "crash" from the +outside). Separate from awake undock recovery (HARDWARE-QUEUE round 8): +the failure is **idle while docked**, then no path back to a usable panel. + +**Likely shape (code-side, unconfirmed on the incident):** on AC, hypridle +does **not** call `systemctl suspend` (`onAc || suspend` — only battery +suspends at 15 min). Idle path is lock @5 min + `dpms off` @10 min +(`modules/home/idle.nix`). Caps Lock working fits **DPMS/lock blackout** +better than deep S3. Dock mode has already disabled eDP; recovery then +needs either (a) input → hypridle `on-resume` / `dpms on` on the external, +or (b) undock → `nomarchy-display-transition undock` re-enabling the +panel. Both failed. `after_sleep_cmd` only does `hyprctl dispatch dpms on` +and never re-enables a disabled internal. + +**Pass:** docked on AC, idle past lock + DPMS; external KB/mouse restores +the external; if the external is unplugged while black, eDP comes back +without reboot; journal shows display-watch undock `result=ok` when the +cable leaves. Capture steps in HARDWARE-QUEUE. + ## NEXT ### 122. A crisper Nomarchy logo in fastfetch diff --git a/agent/HARDWARE-QUEUE.md b/agent/HARDWARE-QUEUE.md index 24ddbc6..4a791b6 100644 --- a/agent/HARDWARE-QUEUE.md +++ b/agent/HARDWARE-QUEUE.md @@ -11,6 +11,33 @@ the **T14s** (webcam case). ## Any machine (dev box is fine) +- [ ] **#127 docked idle blackout (AMD dev box, 2026-07-15)** — + **Incident (FAILED, unsolicited):** laptop docked, idle a few minutes, + screens went black ("sleep"). External keyboard/mouse did not restore + any display; unplugging the external did not re-enable the laptop + panel; Caps Lock LED still toggled (machine alive). Forced recovery + was needed; a long Grok session died with the brick. + **Important distinction:** on AC, hypridle is *not* supposed to + suspend — only lock (5m) + `dpms off` (10m). Confirm next time with + `journalctl -b | rg -i 'Suspending|PM: suspend'` vs hypridle/hyprlock + lines so we know DPMS-stuck vs real S3. + **Repro / capture (next time, before reboot if possible — SSH/TTY):** + 1. Dock, confirm dock mode (eDP disabled in `hyprctl monitors all -j`). + 2. Leave idle past 10 minutes (or force: `loginctl lock-session` then + `hyprctl dispatch dpms off`). + 3. Try external KB key / mouse move — does external wake? + 4. Unplug external — does eDP return within a few seconds? + 5. Capture (SSH from another machine if the seat is blind): + ``` + journalctl --user -t nomarchy-display-watch -t nomarchy-display-transition \ + -t hypridle --since '-30 min' + journalctl -b --since '-30 min' | rg -i 'suspend|sleep|dpms|lid|hyprlock' + hyprctl monitors all -j; hyprctl keyword monitor 2>&1 | head + systemd-inhibit --list + ``` + **Pass:** input wakes the external while docked; undock while black + restores eDP without power cycle. Related: docking recovery round 8 + (awake undock) and BACKLOG #127. - [ ] **#96 battery-limit row on threshold-less firmware (Acer M5-481T)** — on the Acer (live or installed session with the commit carrying this entry): open System (`SUPER+CTRL+I`). **Pass:** a "Battery limit" row diff --git a/agent/JOURNAL.md b/agent/JOURNAL.md index a58bd55..7cce8e7 100644 --- a/agent/JOURNAL.md +++ b/agent/JOURNAL.md @@ -19,6 +19,18 @@ Template: --- +## 2026-07-15 — File #127 docked idle blackout (no code) +- **Task:** Bernardo: docked laptop idle → black screens; external KB/mouse + no wake; unplug external did not restore panel; Caps Lock still worked. + Explains the "session crash" (seat brick, not agent-only). +- **Did:** NOW **#127** + HARDWARE-QUEUE capture steps. Code read: AC idle + path is lock+DPMS not suspend; dock mode disables eDP; both wake and + undock recovery failed on the incident. +- **Verified:** V0 (docs/agent only). +- **Pending:** hardware journal capture on next repro; then fix. +- **Next suggestion:** continue fix batches, or dig into #127 if Bernardo + can leave SSH open for a controlled repro. + ## 2026-07-15 — V2 verification of fix batches (doctor-float + test-install) - **Task:** V2-test shipped items that admit VM harnesses (#95 doctor, #123 bake, #112/#124/#125 install path).