testsAndMisc/docs/superpowers/contracts
Krzysztof kuhy Rudnicki ffcf99f102 Test arch_perf_report.sh to 98.33% and fix its dead journal-size check
Fifth of the 16 untested fixes/lib libs and the first of the arch-performance
group, which gets its own harness here. 38 assertions across two files. The
lib STAYS on the allowlist at 59/60 = 98.33%, measured twice.

The second dead branch this campaign has found, fixed here. Lines 36 and 65
matched on:

    ([0-9]+\.?[0-9]*)\ (G|M)

a REQUIRED space before the unit. journalctl actually prints "Archived and
active journals take up 305.5M in the file system." with no separator --
verified against the real binary on this machine. So check_journal_size could
never report a large journal and apply_safe_fixes could never vacuum one:
both were unreachable. The space is now optional, and tests cover the spaced
and unspaced forms so neither can rot.

NOTE: this makes a previously-dead DESTRUCTIVE action live. With
--apply-safe-fixes and a journal over a gigabyte, the entry script will now
really run `journalctl --vacuum-size=300M`. That is the flag's documented
purpose and it stays behind the flag, but it has never actually executed
before today.

Line 20, the one uncovered line, is `} >>"$REPORT_FILE"` -- the closing brace
of a redirected group. A minimal probe writes both inner lines to the file
while bash attributes no statement to the brace, and the report assertions
independently prove the group runs, since they read the text it writes. Same
defect (a) class as bt_audio's `} |`.

That form now caps four libs: bt_audio.sh, arch_perf_report.sh, and
arch_perf_probes.sh and nvidia_config.sh which are still untested. So the
continuation_lines() fix is worth landing after all -- as its own commit,
next, so a denominator change can be reverted without taking these tests
with it.

_t_hide and _t_full_path move from bt_harness.sh into lib_test_core.sh: they
are generic PATH plumbing and the arch harness needs them for the
"nvidia-smi is not installed" branch. All twelve existing suites re-run green
after the move.

One trap worth recording: apply_safe_fixes appends to the ACTIONS array, so
it must be called directly rather than inside "$(...)" -- a command
substitution runs it in a subshell where the appends die with it, and the
assertions read an empty array.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 18:06:57 +02:00
..
agent-automation-bootstrap.json style(prettier): apply markdown/json formatting updates 2026-05-07 22:08:00 +02:00
analyze-repo-split-2026-08-16.json Split analyze_repo.sh into an entry script and five libs 2026-08-16 21:47:03 +02:00
android-ui-element-driver-2026-08-10.json Add android_ui: drive Android apps by element, never by coordinates 2026-08-10 17:01:28 +02:00
app-icons-generator-2026-07-19.json Add shared launcher-icon generator for the Flutter apps 2026-07-19 16:55:48 +02:00
app-icons-lyricanki-glyph-2026-08-21.json Phase 2: enforce the 250-line cap and stop pushing red 2026-08-21 16:41:31 +02:00
arch-perf-report-coverage-2026-08-22.json Test arch_perf_report.sh to 98.33% and fix its dead journal-size check 2026-08-22 18:06:57 +02:00
archive-plagiarism-tools-2026-08-18.json Archive install_plagiarism_tools.sh: unused, moved to testsAndMisc-archive 2026-08-18 20:50:05 +02:00
archive-setup-hosts-guard-2026-08-18.json Archive legacy hosts-guard subsystem: superseded by guard-lib 2026-08-18 22:49:54 +02:00
archwiki-rag-corpus-2026-07-19.json archwiki_rag: offline semantic search over the Arch Wiki 2026-08-10 15:33:18 +02:00
artgate-harness-2026-08-15.json artgate: deterministic exit-code gates for generated game art 2026-08-15 22:20:36 +02:00
artgate-phase3-routes-2026-08-15.json artgate: procedural + vector routes, and the shared finishing stage 2026-08-15 22:31:59 +02:00
artgate-phase4-diffusion-2026-08-15.json artgate: diffusion + 3D routes, full vector coverage, and the margin gate 2026-08-15 22:51:31 +02:00
atop-agg-split-2026-08-17.json atop_agg: split atop_agg.c 478 -> 204 + state + emit 2026-08-17 10:49:46 +02:00
billsplit-apk-buildable-2026-08-03.json billsplit: build a real APK by dropping file_picker for file_selector 2026-08-03 14:15:40 +02:00
billsplit-ci-green-2026-08-17.json billsplit: fix the two CI gates that were already red on main 2026-08-17 11:11:04 +02:00
billsplit-drop-unused-platforms-2026-08-17.json billsplit: drop the four unused platform runner directories 2026-08-17 11:14:32 +02:00
billsplit-move-2026-08-03.json Move billsplit Flutter app into the monorepo 2026-08-03 12:22:22 +02:00
billsplit-shared-palette-2026-08-14.json billsplit: adopt the shared palette, retire the teal seed 2026-08-14 23:35:08 +02:00
billsplit-split-2026-08-16.json Split every over-cap billsplit Dart file 2026-08-16 20:57:56 +02:00
block-compulsive-opening-split-2026-08-21.json block_compulsive_opening: test the allow/block decision 2026-08-21 15:53:54 +02:00
brother-printer-cups-fallback-split-2026-08-16.json Split brother_printer CUPS fallback query out of cups_service 2026-08-16 17:02:42 +02:00
brother-printer-file-length-split-2026-07-17.json fix(brother-printer): split oversized files, fix order-dependent entry test 2026-07-17 15:06:25 +02:00
brother-printer-page-delivery-split-2026-08-16.json Split brother_printer dropped-page detection out of consumables 2026-08-16 17:07:21 +02:00
brother-printer-queue-fix-split-2026-08-16.json Split brother_printer queue display and fix prompt out of cups_queue 2026-08-16 16:53:51 +02:00
brother-printer-status-accuracy-2026-07-17.json fix(brother-printer): report the truth, not invented status codes 2026-07-17 14:49:23 +02:00
brother-printer-test-cups-queue-split-2026-08-16.json Split the brother_printer cups_queue test modules under the cap 2026-08-16 17:15:55 +02:00
brother-printer-test-cups-service-split-2026-08-16.json Split the brother_printer cups_service test modules under the cap 2026-08-16 17:19:55 +02:00
brother-printer-test-display-usb-split-2026-08-16.json Split the brother_printer display and usb_query test modules 2026-08-16 17:23:47 +02:00
brother-printer-test-final-split-2026-08-16.json Clear the last three brother_printer test modules over the cap 2026-08-16 17:27:07 +02:00
bt-adapter-coverage-2026-08-22.json Test bt_adapter.sh to 98.55%; line 97 is unreachable by construction 2026-08-22 17:10:15 +02:00
bt-audio-coverage-2026-08-22.json Test bt_audio.sh to 96.97% and fix its wpctl health check 2026-08-22 17:52:24 +02:00
bt-pairing-coverage-2026-08-22.json Test bt_pairing.sh to 100%: allowlist 97 -> 96 2026-08-22 16:47:40 +02:00
bucket-catch-2026-06-27.json Add bucket_catch: osu!catch browser game with 100% frontend test coverage 2026-06-27 12:21:35 +02:00
bucket-catch-eslint-2026-08-17.json bucket_catch: 45 eslint errors -> 5, no suppressions 2026-08-17 11:48:45 +02:00
byox-ladder-2026-07-17.json feat(byox_ladder): add build-your-own-x difficulty ladder generator 2026-07-17 18:31:21 +02:00
check-and-enable-services-coverage-2026-08-21.json check_and_enable_services: 100% coverage via a redirectable path prefix 2026-08-21 14:08:11 +02:00
check-and-enable-services-split-2026-08-21.json check_and_enable_services: split into lib/ under the 250-line cap 2026-08-21 13:47:05 +02:00
cloud-gallery-2026-07-12.json cloud_gallery: React media-gallery SPA served by dufs (Phase 3) 2026-07-12 06:05:52 +02:00
cloud-gallery-coverage-lint-deploy-2026-07-12.json cloud_gallery: fix build, 100% coverage, aggressive lint; whitelist dufs_client 2026-07-12 17:29:39 +02:00
code-tutor-2026-07-10.json Add code_tutor: interactive codebase-learning CLI 2026-07-11 00:15:46 +02:00
code-tutor-analyzer-split-2026-08-16.json Split the code_tutor import graph and scan tables out of _analyzer 2026-08-16 17:48:32 +02:00
code-tutor-challenge-flows-split-2026-08-16.json Split the code_tutor challenge flows out of _challenge 2026-08-16 17:42:50 +02:00
code-tutor-challenge-support-split-2026-08-16.json Split the code_tutor pytest runner and verdict streaming out 2026-08-16 17:33:58 +02:00
code-tutor-cli-verifier-split-2026-08-16.json Split code_tutor cli and verifier, deleting two lint suppressions 2026-08-16 17:57:38 +02:00
code-tutor-test-split-2026-08-16.json Clear the seven over-cap code_tutor test modules 2026-08-16 18:06:38 +02:00
config-sh-split-2026-08-17.json config.sh: split 571 -> 250, with a fingerprint that actually works 2026-08-17 17:17:02 +02:00
curfew-net-split-2026-08-17.json curfew_enforcer: split 367 -> 244 + 156, net layer at 100% 2026-08-17 16:18:05 +02:00
deploy-sh-split-2026-08-17.json deploy: split 875 -> 241 + 6, finishing phone_focus_mode 2026-08-17 17:53:52 +02:00
diet-guard-gatelock-migration-2026-06.json Migrate diet_guard to the shared gatelock backend 2026-06-21 18:16:45 +02:00
diet-guard-meal-and-trigger-fix-2026-06-10.json feat(diet_guard): add meal-logging screen-lock gate with trigger fix 2026-06-10 22:32:39 +02:00
digital-wellbeing-bypass-hardening-2026-05.json security: harden digital-wellbeing bypass vectors 2026-05-16 15:41:40 +02:00
dns-enforcer-split-2026-08-17.json dns_enforcer: split 325 -> 171 + 170, and give it a working test 2026-08-17 15:10:10 +02:00
dns-filtering-parked-2026-08-05.json Park phone DNS filtering: Private DNS fails closed, so the PC cannot host it 2026-08-05 10:05:16 +02:00
dot-resolver-and-policy-asset-2026-08-05.json Serve the blocklist over DoT and hand the policy to the app as an asset 2026-08-05 09:36:11 +02:00
epopeja-karta-icon-2026-08-03.json app_icons: finish the epopeja_karta entry; whitelist it on the phone 2026-08-03 12:41:13 +02:00
extract-dufs-cloud-repo-2026-07-12.json Extract dufs cloud (web + app + scripts) to github.com/kuhyx/dufs-cloud 2026-07-12 18:38:37 +02:00
extract-inline-python-2026-06-06.json refactor: extract all inline Python from shell scripts into proper .py files 2026-06-06 10:31:48 +02:00
extract-session-autopsy-2026-07-26.json Point the hook test at the extracted session_autopsy, add the artifacts 2026-07-26 20:50:44 +02:00
file-length-split-2026-06-14.json feat: split oversized modules for 500-line limit, fix kasa coverage gap 2026-06-14 07:19:37 +02:00
focus-ctl-split-2026-08-17.json focus_ctl: split 1091 -> 171 + 8 siblings, one per enforcer 2026-08-17 17:46:04 +02:00
focus-daemon-split-2026-08-17.json focus_daemon: split 543 -> 206 + 165 + 140 + 94, with 110 tests 2026-08-17 16:54:04 +02:00
focus-mode-daemon-file-length-2026-07-17.json fix(wellbeing): split focus_mode_daemon to satisfy the 500-line limit 2026-07-17 17:36:30 +02:00
focus-owner-dart-split-2026-08-16.json Split the focus_owner Dart files under the cap 2026-08-16 20:39:13 +02:00
focus-owner-decision-wiring-2026-08-09.json Wire the enforcement decision to the DPM hide call 2026-08-09 22:00:52 +02:00
focus-owner-device-policy-bridge-split-2026-08-18.json focus_owner: split DevicePolicyBridge.kt under the 250-line cap 2026-08-18 23:56:21 +02:00
focus-owner-enforcement-engine-2026-08-09.json Prove DPM app-hiding survives a reboot; build the enforcement decision layer 2026-08-09 21:36:26 +02:00
focus-owner-enforcement-runner-split-2026-08-18.json focus_owner: split EnforcementRunner.kt under the 250-line cap 2026-08-21 13:17:59 +02:00
focus-owner-geofence-and-observability-2026-08-14.json Make the geofence tell the truth, and the phone explain itself 2026-08-14 13:43:05 +02:00
focus-owner-location-and-workout-2026-08-09.json Provision home coordinates out of git; layer the workout signal; drop the test hook 2026-08-09 21:42:20 +02:00
focus-owner-restore-path-2026-08-09.json focus_owner: keep the unhide path reachable, never hide the enforcer 2026-08-10 15:33:18 +02:00
focus-owner-service-layer-2026-08-09.json Run enforcement from exact alarms, and re-arm it before first unlock 2026-08-09 21:50:58 +02:00
gate-reads-jail-args-2026-08-22.json Make the gate read jail_args and refuse a suite that dies partway 2026-08-22 13:36:54 +02:00
generate-study-materials-split-2026-08-21.json generate_study_materials: split into lib/ under the 250-line cap 2026-08-21 14:32:08 +02:00
geofenced-allowlist-rewrite-2026-08-11.json Block by hiding apps, which the phone cannot undo 2026-08-11 19:49:11 +02:00
guard-lib-migration-2026-07-04.json feat: migrate hosts-guard and shutdown-schedule-guard to guard-lib 2026-07-04 11:54:08 +02:00
hosts-enforcer-split-2026-08-17.json hosts_enforcer: split 421 -> 207 + 166 + 91, both libs at 100% 2026-08-17 16:30:56 +02:00
hosts-install-split-2026-08-21.json hosts/install: split into lib/ under the 250-line cap 2026-08-21 14:45:04 +02:00
i3bar-claude-usage-icons-cleanup-2026-08-10.json i3blocks: add Claude usage block, fix icon rendering, drop dead blocks 2026-08-10 15:14:34 +02:00
import-media-archives-2026-07-12.json import_media_archives.sh: fold Downloads media_archive zips into the cloud 2026-07-12 17:43:23 +02:00
install-leechblock-split-2026-08-21.json install_leechblock: first test suite for the split libs 2026-08-21 15:39:15 +02:00
install-pacman-wrapper-split-2026-08-17.json Split install_pacman_wrapper.sh into an entry plus four libs 2026-08-17 07:42:31 +02:00
install-plagiarism-tools-split-2026-08-18.json install_plagiarism_tools.sh: split 534 -> 94 + 3 libs, with a real test harness 2026-08-18 20:41:18 +02:00
install-usage-monitoring-split-2026-08-17.json Split install_usage_monitoring.sh into an entry plus five libs 2026-08-17 07:26:56 +02:00
jailed-libtests-gate-2026-08-22.json Make the jailed lib/tests gate able to fail, without breaking measurement 2026-08-22 12:16:18 +02:00
kcd2-app-split-2026-08-17.json Split kcd2 App.tsx 306 -> 217 + useInventoryState 2026-08-17 09:46:49 +02:00
kcd2-badgevalue-split-2026-08-17.json Split kcd2 badgeValue.ts 334 -> 172 + baseline 2026-08-17 09:43:06 +02:00
kcd2-balatro-single-joker-face-2026-07-25.json kcd2_dice_solver: Balatro's die has one joker face, not six 2026-07-25 16:14:04 +02:00
kcd2-data-split-2026-08-16.json Split the kcd2_dice_solver data tables under the cap 2026-08-16 19:50:54 +02:00
kcd2-dice-solver-deploy-responsive-io-2026-07-26.json kcd2 dice solver: serve it at dice.kuhy.duckdns.org, fit all 43 dice, move inventories between devices 2026-07-26 20:01:21 +02:00
kcd2-dice-solver-initial-commit-2026-07-21.json Track kcd2_dice_solver app and add run.sh dependency installer 2026-07-21 18:17:13 +02:00
kcd2-scoring-split-2026-08-17.json Split kcd2 scoring.ts 361 -> 172 + move generator 2026-08-17 09:39:31 +02:00
kcd2-search-split-2026-08-17.json Split kcd2 search.ts 417 -> 100 + two modules 2026-08-17 09:26:42 +02:00
kcd2-simulate-inventory-split-2026-08-16.json Split kcd2 simulate and inventoryIo; revert two seams 2026-08-16 19:55:52 +02:00
kcd2-test-split-2026-08-16.json Split the kcd2_dice_solver test files under the cap 2026-08-16 20:03:33 +02:00
kcov-instrument-two-pass-2026-08-22.json Fix both kcov defects: dwm_config 47.95% -> 98.48%, rpi_nc_install 11.36% -> 96.59% 2026-08-22 14:24:25 +02:00
keepass-multidevice-sync-2026-07-12.json linux_configuration: unified multi-device KeePass sync over dufs 2026-07-12 05:00:27 +02:00
lint-python-split-2026-08-16.json Split lint_python.sh: output helpers and the full-mode linters 2026-08-16 23:08:02 +02:00
linux-config-android-hosts-split-2026-08-16.json Split update_android_hosts.sh; extract its blocklist as data 2026-08-16 21:23:39 +02:00
linux-config-batch6-2026-08-16.json Split three large linux_configuration scripts, defer a fourth 2026-08-16 19:06:16 +02:00
linux-config-batch7-2026-08-16.json Split offline docs and arch optimiser; defer libre_translate 2026-08-16 20:09:54 +02:00
linux-config-batch8-2026-08-16.json Split three more scripts; make the verifier catch heredoc cuts 2026-08-16 20:16:08 +02:00
linux-config-batch9-2026-08-16.json Split the Pi flasher and the boot-repair test harness 2026-08-16 20:21:44 +02:00
linux-config-bluetooth-split-2026-08-16.json Split fix_bluetooth.sh 720 -> 186; defer steam_compatibility.sh 2026-08-16 19:17:05 +02:00
linux-config-cleanup-2026-05.json refactor(linux_configuration): move remaining dirs + scripts/ to meta/ 2026-05-15 00:53:01 +02:00
linux-config-common-lib-split-2026-08-16.json Split scripts/lib/common.sh, the library 49 scripts source 2026-08-16 21:14:48 +02:00
linux-config-dns-blocker-split-2026-08-16.json Split setup_dns_blocker.sh, a live systemd unit target 2026-08-16 21:31:03 +02:00
linux-config-giants-2026-08-16.json Split three more linux_configuration giants 2026-08-16 19:43:55 +02:00
linux-config-mtk-lib-split-2026-08-16.json Split scripts/lib/mtk_common.sh with the same entry-point pattern 2026-08-16 21:17:50 +02:00
linux-config-near-miss-batch1-2026-08-16.json Split three near-miss linux_configuration scripts 2026-08-16 18:38:43 +02:00
linux-config-near-miss-batch2-2026-08-16.json Split two more linux_configuration scripts; revert a third 2026-08-16 18:44:18 +02:00
linux-config-near-miss-batch3-2026-08-16.json Split three more linux_configuration feature and fix scripts 2026-08-16 18:48:01 +02:00
linux-config-near-miss-batch4-2026-08-16.json Split five more linux_configuration single_use scripts 2026-08-16 18:51:28 +02:00
linux-config-near-miss-batch5-2026-08-16.json Split seven more linux_configuration scripts 2026-08-16 18:56:05 +02:00
linux-config-nextcloud-split-2026-08-16.json Split setup_nextcloud_raspberry.sh 1383 -> 231 2026-08-16 19:37:07 +02:00
linux-config-polling-hardening-2026-05-14.json fix(linux_configuration): harden polling/runtime scripts and add tests 2026-05-14 19:55:42 +02:00
linux-config-runtime-hardening-2026-05-08.json Harden runtime script deployment and enforce installer safety 2026-05-08 17:44:22 +02:00
linux-config-scripts-split-2026-05.json refactor(linux_configuration/scripts): split all scripts into single_use/ and periodic_background/ 2026-05-15 00:32:35 +02:00
linux-config-searxng-split-2026-08-16.json Split setup_searxng.sh 912 -> 184 2026-08-16 19:11:40 +02:00
makepkg-stale-lock-wrapper-2026-07-16.json fix(pacman): wrap makepkg so an orphaned db.lck can't hang makepkg -i 2026-07-17 07:46:31 +02:00
mandatory-hooks-2026-08-03.json fix(hooks): make git hooks and their toolchain mandatory and fail-closed 2026-08-03 11:09:11 +02:00
media-cloud-sync-2026-07-12.json linux_configuration: move Downloads media into the dufs cloud (browsable) 2026-07-12 05:19:31 +02:00
monitor-coverage-backfill-2026-08-17.json monitor: backfill to 100% coverage, fixing two defects it exposed 2026-08-17 15:54:04 +02:00
monitor-split-2026-08-17.json monitor: split 449 -> 215 + 138 + 136, partitioned by probe kind 2026-08-17 14:59:41 +02:00
morning-routine-unified-2026-05-25.json morning_routine: unified alarm+lock orchestrator, fix alarm audio/reliability 2026-05-25 18:55:27 +02:00
mtk-root-toolkit-2026-08-04.json mtk_root: build the rooting toolkit before the phone lands 2026-08-04 20:38:44 +02:00
music-parallelism-split-2026-08-16.json Split music_parallelism.sh into an entry script and three libs 2026-08-16 21:50:34 +02:00
nc-php-suite-2026-08-22.json Cover nc_php.sh (98.82%) and teach the jail to measure foreign platforms 2026-08-22 11:30:32 +02:00
nvidia-passwordless-splits-2026-08-17.json fixes/utils: split nvidia_troubleshoot 336 -> 169+181, passwordless 374 -> 195+193 2026-08-17 14:18:06 +02:00
pacman-hook-stall-2026-08-03.json Diagnose the pacman first-hook stall; fix the drift that hid a stale wrapper 2026-08-03 15:15:34 +02:00
pacman-wrapper-split-2026-08-21.json pacman_wrapper: split into flat libs under the 250-line cap 2026-08-21 16:19:26 +02:00
pc-polling-runtime-validation-2026-05-10.json Optimize polling/runtime scripts, add regressions, and sync verification artifacts 2026-05-10 02:58:11 +02:00
persistent-adb-2026-08-03.json phone_focus_mode: reach the phone over adb without touching it 2026-08-03 13:33:45 +02:00
phase2-cap-and-ci-gates-2026-08-21.json Phase 2: enforce the 250-line cap and stop pushing red 2026-08-21 16:41:31 +02:00
phone-backup-capture-split-2026-08-17.json phone_backup: split 333 -> 229 + 114, with the library at 100% 2026-08-17 16:02:25 +02:00
phone-curfew-demo-net-stopgap-2026-06-13.json feat(phone_focus_mode): add on-demand demo curfew + netd-resistant net stopgap 2026-06-13 22:01:32 +02:00
phone-focus-cpu-hardening-2026-07-10.json Harden phone_focus_mode CPU use; whitelist wake_alarm_sync 2026-07-11 00:16:11 +02:00
phone-focus-mode-fresh-install-2026-05-31.json feat(phone): automate BL-9000 fresh-phone recovery after factory reset 2026-05-31 16:22:49 +02:00
phone-focus-mode-netd-cache-fix-2026-05.json phone_focus_mode: fix YouTube DNS blocking via netd cache restart 2026-05-22 15:58:36 +02:00
phone-night-curfew-2026-06-13.json feat(phone_focus_mode): add night curfew (23:00-05:00 at-home strict allow-list) 2026-06-13 16:48:38 +02:00
poker-stakes-file-length-2026-08-16.json Split poker-stakes' four oversized files under the 250-line cap 2026-08-16 15:26:18 +02:00
poker-stakes-tracked-2026-08-16.json Track poker-stakes so the file-length cap can reach it 2026-08-16 15:19:07 +02:00
prose-files-under-cap-2026-08-16.json Bring every markdown file under the cap 2026-08-16 19:25:59 +02:00
protondb-gold-silver-fix.json fix: accept ProtonDB gold+silver combinations; add explicit skip reasons 2026-05-08 20:31:16 +02:00
pylint10-r0801-schema-validation-2026-06.json feat: split oversized modules for 500-line limit, fix kasa coverage gap 2026-06-14 07:19:37 +02:00
python-pkg-five-packages-2026-08-16.json Clear five python_pkg packages under the cap 2026-08-16 18:14:36 +02:00
reverse-survivors-2026-08-03.json feat(reverse_survivors): migrate Reverse Survivors game into the monorepo 2026-08-03 10:45:12 +02:00
reverse-survivors-difficulty-tiers-2026-08-09.json reverse_survivors: difficulty tiers 2026-08-09 23:17:07 +02:00
reverse-survivors-director-powers-2026-08-09.json reverse_survivors: director powers — ambush, frenzy, rift 2026-08-09 23:10:38 +02:00
reverse-survivors-gameplay-extension-2026-08-09.json reverse_survivors: add splitter, artillery, warden and the leech boss 2026-08-09 23:06:20 +02:00
reverse-survivors-sim-split-2026-08-17.json Split reverse_survivors sim.ts 361 -> 69 + three modules 2026-08-17 09:52:19 +02:00
reverse-survivors-status-effects-2026-08-09.json reverse_survivors: survivor status effects (slow, suppress, bleed) 2026-08-09 23:08:51 +02:00
reverse-survivors-test-split-2026-08-16.json Split the reverse_survivors test files; defer its two core sources 2026-08-16 20:26:59 +02:00
reverse-survivors-types-split-2026-08-17.json Split reverse_survivors types.ts 295 -> 157 + roster + statuses 2026-08-17 09:57:26 +02:00
root-cleanup-2026-05-14.json chore: spring-clean repo root (move docs, relocate batch3 script, drop stale outputs) 2026-05-14 20:01:09 +02:00
run-sh-wrapper-smoke.json style(prettier): apply markdown/json formatting updates 2026-05-07 22:08:00 +02:00
screen-locker-scheduled-skip-2026-05.json screen_locker: add scheduled-skip date mechanism + hibernate on alarm nights 2026-05-22 16:00:15 +02:00
screen-locker-sick-tracker-2026-05-14.json feat(screen-locker): add sick-day tracker and commitment debt flow 2026-05-14 19:52:15 +02:00
screen-locker-weekly-check-2026-05-28.json screen_locker: add weekly check feature with UI integration 2026-05-28 07:04:18 +02:00
services-status-downgrade-fix-2026-08-21.json check_and_enable_services: a warning must never mask an error 2026-08-21 14:16:01 +02:00
session-autopsy-mutations-split-2026-08-16.json Split test_security_hardening.sh; finish the mutation-driver split 2026-08-16 22:24:02 +02:00
session-autopsy-package-2026-07-25.json python_pkg: track session_autopsy, finishing its interrupted refactor 2026-07-25 16:56:43 +02:00
session-autopsy-turn-efficiency-2026-07-26.json session-autopsy: measure turn efficiency, the dominant token cost 2026-07-26 19:29:25 +02:00
setup-midnight-shutdown-split-2026-08-21.json setup_midnight_shutdown: split into lib/ — the cap is now zero 2026-08-21 16:27:54 +02:00
setup-night-lockdown-split-2026-08-21.json setup_night_lockdown: define _NL_PAYLOAD_DIR where it is used 2026-08-21 16:02:59 +02:00
shell-check-split-2026-08-16.json Split shell_check.sh into an entry script and three libs 2026-08-16 21:57:19 +02:00
shell-coverage-100pct-bar-2026-08-22.json Shell coverage: convert the ratchet to a measured 100% bar 2026-08-22 11:20:58 +02:00
shell-coverage-gate-2026-08-17.json meta: measurable shell coverage, and dns_iptables.sh at 100% 2026-08-17 15:29:08 +02:00
shell-ratchet-scripts-lib-suite-2026-08-21.json Shrink the shell-coverage allowlist 115 -> 106: cover scripts/lib 2026-08-21 23:52:09 +02:00
shell-splits-batch-2026-08-17.json shell: split clean_audio, enforce_vbox_hosts and migrate_hosts_guard 2026-08-17 14:27:57 +02:00
shell-tests-arch-container-2026-07-19.json Run Arch-only shell tests in a container; harden worktree stubbing 2026-07-19 19:27:36 +02:00
shellcheck-ci-green-2026-08-04.json Fix the 11 shellcheck findings that kept CI red since b83ce5d 2026-08-04 20:55:02 +02:00
shellcheck-strict-gate-2026-08-03.json Fail the build on any shellcheck finding; fix the 222 the old gate hid 2026-08-03 19:49:11 +02:00
shutdown-override-i3blocks-sync-2026-07-10.json feat(digital-wellbeing): time-boxed shutdown overrides + drift-proof i3blocks deploy 2026-07-10 21:57:05 +02:00
split-diagnose-pacman-hook-stall-2026-08-18.json diagnose_pacman_hook_stall.sh: split 493 -> 249 + 6 libs, 100% coverage 2026-08-18 22:33:57 +02:00
split-pacman-i3blocks-tests-2026-08-16.json Split the last two over-cap shell test suites 2026-08-16 22:27:44 +02:00
split-shfmt-conformance-2026-08-16.json Keep this session's splits shfmt-clean 2026-08-16 22:05:01 +02:00
stats-hltb-fixes-2026-05-28.json steam_backlog_enforcer: fix stats command — show real Rush/Leisure/Worst data 2026-05-28 07:02:48 +02:00
steam-backlog-cache-refetch-reduction-2026-05-08.json steam_backlog_enforcer: reduce repeated cache refetches 2026-05-08 15:13:25 +02:00
steam-backlog-finished-only-next-pick-2026-05.json steam_backlog_enforcer: only prompt next pick after game is finished 2026-05-23 21:19:44 +02:00
steam-backlog-module-split-2026-05.json Split modules, fix tests, fix pre-commit batching 2026-05-22 22:48:28 +02:00
steam-backlog-protected-ids-2026-05-14.json feat(steam-backlog): protect four additional Steam app IDs 2026-05-14 19:58:40 +02:00
steam-backlog-whitelist-hardening-2026-05.json feat(steam_backlog_enforcer): harden whitelist against circumvention 2026-05-17 20:44:05 +02:00
steam-compatibility-split-2026-08-17.json steam_compatibility: split 663 -> 140 + 199 + 156 + 124 + 103 2026-08-17 14:32:41 +02:00
steam-library-hide-fix-2026-05-17.json steam_backlog_enforcer: fix library_hider crash on invalid AppIDs + improve HLTB hour extraction 2026-05-22 15:59:18 +02:00
sync-tests-fix-coverage-2026-05.json fix: sync test paths, drop stale assertions, fix coverage gap 2026-05-16 15:46:02 +02:00
syncyomi-library-recovery-2026-08-09.json syncyomi_guard: refuse a collapsed payload as the new good copy 2026-08-10 15:33:18 +02:00
template.json style(prettier): apply markdown/json formatting updates 2026-05-07 22:08:00 +02:00
tether-enforcer-hotspot-bypass-2026-07-13.json phone_focus_mode: block hotspot/tethering to close the second-phone bypass 2026-07-13 10:48:59 +02:00
tether-enforcer-split-2026-08-17.json tether_enforcer: split 267 -> 182 + 103, and grow both deploy lists 2026-08-17 14:38:53 +02:00
token-audit-2026-08-14.json Add token_audit package: per-session token attribution and reporting 2026-08-14 22:20:44 +02:00
token-audit-standing-cost-2026-08-22.json Land the token_audit standing-cost checkup (116 tests, 100% branch coverage) 2026-08-22 14:33:03 +02:00
trace-prefix-writes-2026-08-16.json Trace scripts that place files, via a prefix redirect 2026-08-16 23:31:49 +02:00
transcribe-diarize-split-2026-08-17.json _transcribe_diarize: split 356 -> 164 + 143 + 105 2026-08-17 13:59:39 +02:00
transcribe-diarize-tests-2026-08-17.json _transcribe_diarize: cover 0% -> 100% before splitting 2026-08-17 13:54:04 +02:00
transcribe-helpers-split-2026-08-17.json transcribe_helpers: split 289 -> 177 + 142 2026-08-17 13:33:38 +02:00
transcribe-helpers-tests-2026-08-17.json transcribe_helpers: cover 0% -> 100% before splitting 2026-08-17 13:29:07 +02:00
transcribe-lib-harness-2026-08-22.json Give testsAndMisc-bash/lib a harness; cover transcribe_deps and _pkgmgr 2026-08-22 13:14:02 +02:00
unity-handler-off-allowlist-2026-08-22.json Clear unity_handler.sh: 100%, off the allowlist, 105 -> 104 2026-08-22 13:20:54 +02:00
unrooted-focus-mode-policy-and-owner-app-2026-08-05.json Make focus policy and blocklist usable without root; fix workout CDN unblock 2026-08-05 09:15:02 +02:00
usage-report-hz-cpu-fix-20260604.json fix(usage_report): stop charging atop's HZ field as CPU; bundle since-last-report mode 2026-06-04 18:13:47 +02:00
usage-report-main-split-2026-08-17.json usage_report: split usage_report.py 426 -> 101 + 195 + 117 + 68 2026-08-17 12:46:06 +02:00
usage-report-main-tests-2026-08-17.json usage_report: cover usage_report.py 47% -> 100% 2026-08-17 12:21:21 +02:00
usage-report-parsing-split-2026-08-17.json usage_report: split _usage_report_parsing.py 425 -> 243 + 206 2026-08-17 12:12:11 +02:00
usage-report-render-split-2026-08-17.json usage_report: split _usage_report_render.py 310 -> 181 + 123 + 24 2026-08-17 11:34:08 +02:00
vendor-agent-skills-import.json chore(third_party): vendor agent-skills snapshot 2026-05-07 22:06:00 +02:00
vscode-optimizer-move-tests-2026-08-17.json vscode_optimizer: move under python_pkg and cover 0% -> 100% 2026-08-17 13:10:10 +02:00
vscode-optimizer-split-2026-08-17.json vscode_optimizer: split _optimize.py 498 -> 100 + 5 modules 2026-08-17 13:15:50 +02:00
wake-alarm-gatelock-migration-2026-06-22.json Migrate wake_alarm to the shared gatelock backend 2026-06-22 07:33:49 +02:00
wake-alarm-hibernate-2026-05.json wake_alarm + midnight_shutdown: hibernate on alarm nights instead of poweroff 2026-05-22 16:01:04 +02:00
wake-alarm-loudness-typeable-2026-05.json wake_alarm: louder + typeable + multi-fan 2026-05-24 16:20:34 +02:00
wake-alarm-plug-fans-warnings-2026-05.json wake_alarm: Tapo P110 plug control, fan ramp via sudo, loud warnings 2026-05-23 19:51:26 +02:00
wake-alarm-refactor-2026-05-30.json refactor: split wake_alarm modules, fix ruff violations, enforce global coverage 2026-05-30 22:13:32 +02:00
wake-alarm-restore-display-test-gap-2026-06-22.json Fix the real cause of the wake_alarm CI coverage gap 2026-06-22 09:14:29 +02:00
wsg-grabber-2026-07-27.json wsg_grabber: scrape /wsg/, download every new video, triage with keep/pass 2026-07-27 14:55:30 +02:00
wsg-grabber-downloader-split-2026-08-16.json Split wsg_grabber/downloader.py under the 250-line cap 2026-08-16 16:01:11 +02:00
wsg-grabber-test-review-split-2026-08-16.json Split wsg_grabber/tests/test_review.py under the 250-line cap 2026-08-16 16:24:48 +02:00
wsg-grabber-test-split-2026-08-16.json Clear the wsg_grabber test modules: python_pkg is now under the cap 2026-08-16 18:19:26 +02:00