Let the contracts assert properties, not the machine they were written on
The first run of the suite on a laptop found five contracts asserting the desktop instead of the code. settings-system pinned DP-2 at 4500x3000 in XRGB2101010; it now asks Hyprland what is actually primary. ssh-keys hardcoded id_ed25519; it now uses whichever key exists. switcher's live half stepped a session with one window, which step() deliberately refuses. displays raced the service's revert readback -- the compositor looks restored while verification still holds busy, so an immediate apply was refused with its error already cleared; the harness now exposes settled and the contract waits for it. declared-dependencies gets an OPTIONAL list for docker: the aliases serve machines that run Docker deliberately, Panama's runtime is rootless podman, and a missing docker fails by naming the command, which is loud enough. Claude-Session: https://claude.ai/code/session_01Epx9ZC1gwm81K3jm9x9CKh
This commit is contained in:
@@ -32,7 +32,14 @@ ShellRoot {
|
||||
canConfirm: Displays.canConfirm,
|
||||
secondsLeft: Displays.secondsLeft,
|
||||
lastError: Displays.lastError,
|
||||
overridden: monitor ? Displays.isOverridden(monitor.name) : false
|
||||
overridden: monitor ? Displays.isOverridden(monitor.name) : false,
|
||||
// The compositor being visually restored is not the service
|
||||
// being done: revert verification keeps its own readback
|
||||
// running for a few ticks, and busy blocks a new apply until
|
||||
// it settles. A caller that only watched `awaiting` raced
|
||||
// this and got a refusal with no error text.
|
||||
settled: !Displays.busy && !Displays.revertVerificationActive
|
||||
&& !Displays.awaitingConfirmation
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user