From c409ebb3eb2900a7f017f746e7913047f8025edd Mon Sep 17 00:00:00 2001 From: Krzysztof kuhy Rudnicki Date: Wed, 11 Nov 2026 15:42:31 +0100 Subject: [PATCH] Prettier-format monitor/focus evidence JSON Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01WzxdWXa4ytX9adN7qpMAop --- .../monitor-autoconfig-2026-11-11.json | 5 ++- .../i3-focus-suitcase-emoji-2026-11-11.json | 33 +++++++++++---- .../monitor-autoconfig-2026-11-11.json | 41 +++++++++++++++---- 3 files changed, 63 insertions(+), 16 deletions(-) diff --git a/docs/superpowers/contracts/monitor-autoconfig-2026-11-11.json b/docs/superpowers/contracts/monitor-autoconfig-2026-11-11.json index 47ff8b75..abb3c89b 100644 --- a/docs/superpowers/contracts/monitor-autoconfig-2026-11-11.json +++ b/docs/superpowers/contracts/monitor-autoconfig-2026-11-11.json @@ -6,6 +6,9 @@ "The watcher handles one burst of output events with one apply, survives a failed xrandr, and waits for late EDID modes", "setup_monitor_autoconfig.sh leaves monitor-autoconfig.service enabled and active" ], - "out_of_scope": ["Undoing deliberate mode changes by games or manual xrandr", "Wayland"], + "out_of_scope": [ + "Undoing deliberate mode changes by games or manual xrandr", + "Wayland" + ], "verifier": "python3 -m pytest linux_configuration/tests/test_monitor_layout.py linux_configuration/tests/test_monitor_autoconfig.py; pre-commit run --files " } diff --git a/docs/superpowers/evidence/i3-focus-suitcase-emoji-2026-11-11.json b/docs/superpowers/evidence/i3-focus-suitcase-emoji-2026-11-11.json index f18d51ba..8c65f1ce 100644 --- a/docs/superpowers/evidence/i3-focus-suitcase-emoji-2026-11-11.json +++ b/docs/superpowers/evidence/i3-focus-suitcase-emoji-2026-11-11.json @@ -1,11 +1,30 @@ { "intent": "Turn main's Shell tests CI green again: the focus_project i3blocks block used a Font Awesome private-use codepoint (U+F0F2) for the interview-trip suitcase, which the i3blocks config checks forbid.", - "scope": ["linux_configuration/i3blocks/focus_project.sh", "linux_configuration/tests/test_i3blocks_focus_project.sh", "Non-goal: any other change to the focus block"], - "changes": ["SUITCASE is now the luggage emoji U+1F9F3 (rendered by Noto Color Emoji, like the block's existing target emoji) in the block and its test"], - "verification": [ - {"command": "bash linux_configuration/tests/test_i3blocks_efficiency.sh", "result": "pass", "evidence": "exit 0; was the failing check on CI run 43017516672"}, - {"command": "bash linux_configuration/tests/test_i3blocks_focus_project.sh", "result": "pass", "evidence": "exit 0, suitcase assertions use the emoji"} + "scope": [ + "linux_configuration/i3blocks/focus_project.sh", + "linux_configuration/tests/test_i3blocks_focus_project.sh", + "Non-goal: any other change to the focus block" ], - "risks": ["The suitcase now renders as a colour emoji instead of a monochrome Font Awesome glyph"], - "rollback": ["git revert this commit", "Shell tests CI goes red again on the private-use check"] + "changes": [ + "SUITCASE is now the luggage emoji U+1F9F3 (rendered by Noto Color Emoji, like the block's existing target emoji) in the block and its test" + ], + "verification": [ + { + "command": "bash linux_configuration/tests/test_i3blocks_efficiency.sh", + "result": "pass", + "evidence": "exit 0; was the failing check on CI run 43017516672" + }, + { + "command": "bash linux_configuration/tests/test_i3blocks_focus_project.sh", + "result": "pass", + "evidence": "exit 0, suitcase assertions use the emoji" + } + ], + "risks": [ + "The suitcase now renders as a colour emoji instead of a monochrome Font Awesome glyph" + ], + "rollback": [ + "git revert this commit", + "Shell tests CI goes red again on the private-use check" + ] } diff --git a/docs/superpowers/evidence/monitor-autoconfig-2026-11-11.json b/docs/superpowers/evidence/monitor-autoconfig-2026-11-11.json index a9266bf0..ee8cdb87 100644 --- a/docs/superpowers/evidence/monitor-autoconfig-2026-11-11.json +++ b/docs/superpowers/evidence/monitor-autoconfig-2026-11-11.json @@ -1,12 +1,37 @@ { "intent": "Every monitor kuhy connects runs at its native resolution and highest refresh rate automatically, with DP-0 primary on the left, without running xrandr by hand.", - "scope": ["linux_configuration/features/monitor_layout.py, monitor_autoconfig.py, setup_monitor_autoconfig.sh, systemd/monitor-autoconfig.service", "linux_configuration/tests/test_monitor_layout.py, test_monitor_autoconfig.py, conftest.py; meta/pyproject.toml pylint init-hook path", "Non-goal: reverting deliberate mode changes (games, manual xrandr); only connect/disconnect triggers a re-layout"], - "changes": ["monitor_layout.py: parses xrandr --query and plans one row: native size at max refresh, preferred primary leftmost, disconnected outputs holding a CRTC switched off; returns [] when already there", "monitor_autoconfig.py: systemd user service; RandR version handshake, listens for RROutputChangeNotify, settles 1 s, retries while a connected monitor lists no modes, logs and survives a failed xrandr", "setup_monitor_autoconfig.sh installs deps, the user unit (WantedBy graphical-session.target) and starts it"], - "verification": [ - {"command": "python3 -m pytest linux_configuration/tests/test_monitor_layout.py linux_configuration/tests/test_monitor_autoconfig.py --cov=monitor_layout --cov=monitor_autoconfig --cov-branch", "result": "pass", "evidence": "23 passed, 100% line+branch coverage on both modules"}, - {"command": "linux_configuration/features/setup_monitor_autoconfig.sh", "result": "pass", "evidence": "unit enabled and active; layout DP-0 3840x2160@144 + HDMI-0 2560x1440@143.98 left unchanged (dry-run plan empty)"}, - {"command": "RandR probe with/without xrandr_query_version", "result": "pass", "evidence": "no events before the handshake, CrtcChange/ScreenChange events after it"} + "scope": [ + "linux_configuration/features/monitor_layout.py, monitor_autoconfig.py, setup_monitor_autoconfig.sh, systemd/monitor-autoconfig.service", + "linux_configuration/tests/test_monitor_layout.py, test_monitor_autoconfig.py, conftest.py; meta/pyproject.toml pylint init-hook path", + "Non-goal: reverting deliberate mode changes (games, manual xrandr); only connect/disconnect triggers a re-layout" ], - "risks": ["Physical hotplug not exercised on the real machine (kuhy declined the replug check); relies on the NVIDIA driver emitting RROutputChangeNotify on connect"], - "rollback": ["systemctl --user disable --now monitor-autoconfig.service; git revert", "xrandr layout stays as last applied"] + "changes": [ + "monitor_layout.py: parses xrandr --query and plans one row: native size at max refresh, preferred primary leftmost, disconnected outputs holding a CRTC switched off; returns [] when already there", + "monitor_autoconfig.py: systemd user service; RandR version handshake, listens for RROutputChangeNotify, settles 1 s, retries while a connected monitor lists no modes, logs and survives a failed xrandr", + "setup_monitor_autoconfig.sh installs deps, the user unit (WantedBy graphical-session.target) and starts it" + ], + "verification": [ + { + "command": "python3 -m pytest linux_configuration/tests/test_monitor_layout.py linux_configuration/tests/test_monitor_autoconfig.py --cov=monitor_layout --cov=monitor_autoconfig --cov-branch", + "result": "pass", + "evidence": "23 passed, 100% line+branch coverage on both modules" + }, + { + "command": "linux_configuration/features/setup_monitor_autoconfig.sh", + "result": "pass", + "evidence": "unit enabled and active; layout DP-0 3840x2160@144 + HDMI-0 2560x1440@143.98 left unchanged (dry-run plan empty)" + }, + { + "command": "RandR probe with/without xrandr_query_version", + "result": "pass", + "evidence": "no events before the handshake, CrtcChange/ScreenChange events after it" + } + ], + "risks": [ + "Physical hotplug not exercised on the real machine (kuhy declined the replug check); relies on the NVIDIA driver emitting RROutputChangeNotify on connect" + ], + "rollback": [ + "systemctl --user disable --now monitor-autoconfig.service; git revert", + "xrandr layout stays as last applied" + ] }