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:
@@ -47,6 +47,15 @@ SESSION='^(systemctl|busctl|journalctl|loginctl|hostnamectl|localectl|systemd-in
|
||||
# Anything added here needs a matching install block and a stated reason.
|
||||
SELF_INSTALLED='^(bun|claude|node|npm|pnpm)$'
|
||||
|
||||
# Tools an alias may lean on without Panama installing them anywhere. The
|
||||
# docker aliases serve the machines that run Docker by deliberate choice;
|
||||
# Panama's container runtime is rootless podman (development-packages), and
|
||||
# declaring docker in a list would put a second container daemon on every
|
||||
# fresh machine to keep five aliases company. Where docker is absent the
|
||||
# aliases fail by naming the missing command, which is the honest outcome.
|
||||
# Anything added here needs that same property: absence must be loud.
|
||||
OPTIONAL='^(docker)$'
|
||||
|
||||
# jq programs are quoted arguments, but the scanner is line-based and cannot
|
||||
# tell a filter from a command. `not` is a jq builtin appearing inside one.
|
||||
JQ_BUILTINS='^(not|empty|error|env|input|inputs)$'
|
||||
@@ -105,6 +114,7 @@ while read -r script; do
|
||||
[[ "$cmd" =~ $BASELINE ]] && continue
|
||||
[[ "$cmd" =~ $SESSION ]] && continue
|
||||
[[ "$cmd" =~ $SELF_INSTALLED ]] && continue
|
||||
[[ "$cmd" =~ $OPTIONAL ]] && continue
|
||||
[[ "$cmd" =~ $JQ_BUILTINS ]] && continue
|
||||
|
||||
pkg="$(package_for "$cmd")"
|
||||
|
||||
Reference in New Issue
Block a user