Reject failed hyprctl eval processes and retain stderr diagnostics during DPMS apply #16

Closed
opened 2026-10-13 20:07:42 +08:00 by Breadway · 2 comments
Owner

Found during independent exact-head review of MON-14 / PR15 at 056f0b0b29. Confidence: high, independently reproduced with a fake executable, not the live compositor. src/monitor.rs:392-401 checks stdout only and ignores output.status and stderr. A fake hyprctl returning stdout ok with exit 7 yields Ok(()); a stderr-only refusal loses its diagnostic. Harness imports the immutable monitor.rs module and calls apply_monitors with one enabled DP-1 whose dpms=false. Repair on existing PR15: require successful exit plus exact trimmed ok reply, report stderr/status, add process-level regression tests. Related MON-14. Runtime DPMS behavior still requires isolated hidden headless Hyprland evidence.

Found during independent exact-head review of MON-14 / PR15 at 056f0b0b2968855a4c95d728f9f6c8678e91e9ae. Confidence: high, independently reproduced with a fake executable, not the live compositor. src/monitor.rs:392-401 checks stdout only and ignores output.status and stderr. A fake hyprctl returning stdout ok with exit 7 yields Ok(()); a stderr-only refusal loses its diagnostic. Harness imports the immutable monitor.rs module and calls apply_monitors with one enabled DP-1 whose dpms=false. Repair on existing PR15: require successful exit plus exact trimmed ok reply, report stderr/status, add process-level regression tests. Related MON-14. Runtime DPMS behavior still requires isolated hidden headless Hyprland evidence.
Author
Owner

Independent exact-head re-review: PASS at 543629730c (PR Breadway/breadmon#15). Failed-process defect repaired: hyprctl_eval requires exit 0 AND trimmed stdout exactly ok, errors carry exit status/stdout/stderr, and main.rs reports Apply failed without saving config on error. Six process-level regression tests plus 12 clean 16-thread stress runs. Full evidence: #15 (comment) . Merged 42e11c6b21. Moved to review awaiting coordinator verification, not done.

Independent exact-head re-review: PASS at 543629730ca8230eac802dae2867ca7c53e48081 (PR Breadway/breadmon#15). Failed-process defect repaired: hyprctl_eval requires exit 0 AND trimmed stdout exactly ok, errors carry exit status/stdout/stderr, and main.rs reports Apply failed without saving config on error. Six process-level regression tests plus 12 clean 16-thread stress runs. Full evidence: https://git.breadway.dev/Breadway/breadmon/pulls/15#issuecomment-4666 . Merged 42e11c6b21710a0583e8104807ec9b2a9899743d. Moved to review awaiting coordinator verification, not done.
Author
Owner

Same merged PR15 verification as MON-14.

Same merged PR15 verification as MON-14.
Sign in to join this conversation.
No labels
ci
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Breadway/breadmon#16
No description provided.