testsAndMisc/docs/superpowers/contracts
Krzysztof kuhy Rudnicki 4c426eae0e
Some checks failed
Pre-commit checks / pre-commit (push) Waiting to run
Shell tests / shell-tests (push) Waiting to run
Shell tests / arch-tests (push) Waiting to run
Python tests / test (push) Has been cancelled
Make install_core_system.sh work on a fresh machine
Two of the seven modules invoked python_pkg/ paths that stopped existing when
screen_locker and steam_backlog_enforcer were extracted into their own repos,
so the first thing the installer did on a fresh machine was fail. Nothing
installed guard-lib either, which meant the CORE "Midnight shutdown timer"
module always died with "guardctl not found on PATH".

Every module now resolves through install_module_from_repo, and
require_extracted_repo clones a missing sibling instead of only printing
instructions -- otherwise "clone it yourself" is not actionable on the bare
machine this script exists to set up. The clone drops privileges to the
invoking human via sudo -u, because an installer that re-execs under sudo
would otherwise leave a root-owned checkout in the user's home; a sandbox
cannot catch that, since the guest is root throughout. A clone that fails is
still a loud, fatal module failure, never a silent skip.

guard-lib is addressed as the "utils" repo: it is a subdirectory of
github.com/kuhyx/utils, so asking for "guard-lib" would resolve to
~/guard-lib and derive a clone URL that does not exist. It installs first,
before the modules that need guardctl.

Separately, the security hardening suite's screen_locker section hardcoded
$HOME/testsAndMisc/python_pkg/screen_locker/screen_lock.py. That path went
away with the extraction, so all five checks silently SKIPPED -- reporting a
clean run for tests that never executed, which is the exact failure mode
lib/extracted_repos.sh was written to prevent. It resolves the repo properly
now ($HOME is also wrong under sudo), and the assertions are rewritten against
the current implementation: the four symbols they grepped for no longer exist
anywhere, having been replaced by SPORT_CHOICES, SPORT_TABLE_TENNIS,
_validate_table_tennis and MANUAL_WORKOUT_REFLECTION_MIN_CHARS.

On this host that takes the suite from 18 passed / 1 failed / 5 skipped to
23 passed / 0 skipped. The task file's "18 passed / 6 skipped out of 17"
target was stale -- the suite is 24 checks now -- so it could not be matched
literally.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PJrqKERAo5QUeEHWS5Asgp
2026-08-24 12:45:21 +02:00
..
archive-billsplit-2026-08-23.json Archive billsplit and everything coupled to it 2026-08-23 17:17:22 +02:00
archive-bucket-catch-poker-stakes-2026-08-23.json Archive bucket_catch and poker-stakes to testsAndMisc-archive 2026-08-23 17:12:54 +02:00
ci-mirror-scoped-push-gate-2026-08-23.json Make the push gate check the push, and make its pytest stage real 2026-08-23 15:12:23 +02:00
endurain-db-dedupe-2026-08-23.json Dedupe endurain imports against postgres when the API cannot answer 2026-08-23 15:23:08 +02:00
endurain-import-dedupe-and-adb-serial-2026-08-23.json Stop the endurain importer duplicating RunnerUp's own uploads 2026-08-23 14:36:03 +02:00
endurain-runnerup-webdav-2026-08-23.json feat(endurain): self-hosted run viewer fed by RunnerUp WebDAV exports 2026-08-23 13:09:18 +02:00
extract-android-guardian-2026-08-23.json Extract android_guardian; heavy_job_lock goes to its installer 2026-08-23 18:00:58 +02:00
extract-digital-wellbeing-2026-08-23.json Extract digital-wellbeing; the directory-depth cap now enforces 2026-08-23 20:57:51 +02:00
extract-hosts-blocker-2026-08-23.json Extract the hosts blocker into its own repo 2026-08-23 20:30:18 +02:00
extract-mtk-root-2026-08-23.json Extract mtk_root, with the libraries that lived outside it 2026-08-23 17:39:27 +02:00
extract-phone-focus-mode-2026-08-23.json Extract phone_focus_mode together with focus_policy 2026-08-23 18:32:58 +02:00
extract-system-maintenance-2026-08-23.json Extract system-maintenance, the isolated subsystem 2026-08-23 17:55:29 +02:00
extract-three-apps-2026-08-23.json Extract reverse_survivors, kcd2_dice_solver and focus_owner 2026-08-23 17:34:02 +02:00
flatten-i3-and-misc-2026-08-23.json Flatten i3-configuration and misc/testsAndMisc-bash 2026-08-23 19:02:18 +02:00
flatten-linux-configuration-2026-08-23.json Dissolve linux_configuration/scripts/ and single_use/ 2026-08-23 18:53:30 +02:00
hosts-guard-tests-2026-08-23.json Clear both hosts-guard libs; teach the instrument done <redirect> (88 -> 86) 2026-08-23 11:50:13 +02:00
installer-cross-repo-fix-2026-08-24.json Make install_core_system.sh work on a fresh machine 2026-08-24 12:45:21 +02:00
nvidia-config-tests-2026-08-23.json Test nvidia_config.sh to 100%; the 8-lib campaign is done (85 -> 84) 2026-08-23 13:14:37 +02:00
split-boot-repair-2026-08-23.json Cap extensionless scripts, and split the one that was hiding 2026-08-23 19:13:40 +02:00
suite-speedup-2026-08-23.json Take the fixes/lib suite from 110s to 37s, same 645 assertions 2026-08-23 14:00:13 +02:00
template.json style(prettier): apply markdown/json formatting updates 2026-05-07 22:08:00 +02:00
thorium-repairs-tests-2026-08-23.json Test thorium_repairs.sh to 100%, lift the gate timeout (89 -> 88) 2026-08-23 11:05:56 +02:00
ubuntu-perf-fixes-tests-2026-08-23.json Test ubuntu_perf_fixes.sh to 100%, take it off the allowlist (86 -> 85) 2026-08-23 12:38:40 +02:00
wire-shell-coverage-ratchet-2026-08-23.json Wire the shell ratchet into pre-commit, and test the coverage tooling 2026-08-23 15:51:29 +02:00