testsAndMisc/docs/superpowers/evidence
Krzysztof kuhy Rudnicki 9085a4e508
Some checks are pending
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
check_and_enable_services: split into lib/ under the 250-line cap
1225 lines down to 202, with the 21 functions moved into eight sourced
libraries grouped by subject. The entry script now holds only the
configuration, the argument parsing and the order the checks run in.

check_hosts was the one function that could not move verbatim: at 260 lines
it would have stayed over the cap on its own, so its repair half is now
hosts_fix_nsswitch / hosts_fix_resolved / hosts_repair_all in
services_hosts_fix.sh. Repair order is preserved (resolver config, then the
hosts file, then the guard-lib migration), and hosts_repair_all returns
non-zero under --dry-run so a dry run can no longer promote a status to "ok"
on the strength of repairs that never happened.

SERVICE_STATUS was a write-only global across five libs, which is a real
SC2034 rather than noise: the pre-commit hook runs shellcheck with no -x and
genuinely cannot see the one reader. It now goes through set_service_status /
get_service_status, which also rejects a duplicate write — each check owns
exactly one summary row, so a second write means two checks are fighting over
it. No suppression was added anywhere.

Proof the behaviour is unchanged: `--status --dry-run` run as root against
this machine is byte-identical to the same command from a worktree at the
pre-split revision, modulo the Date: line. verify_shell_split.sh reports
check_hosts as the single expected difference; the other 20 functions hash
identically. 72 assertions across three test files pass, with 100% line
coverage on services_common.sh (54/54) and services_report.sh (27/27).

services_units.sh measures 84.51% (60/71). The 11 uncovered lines are the
else-branches of [[ -f /etc/systemd/system/*.service ]] and
[[ -f /usr/local/bin/*.sh ]] probes — absolute root-owned paths that exist on
this machine and that no PATH shim can redirect. Reaching them needs a
root-prefix rewrite of live enforcement logic, which is not a line-count fix
and would forfeit the verbatim-move proof for everything else.

Found while testing, deliberately NOT fixed here: in all three unit checks
the is-active branch assigns status="warning" unconditionally, overwriting
the status="error" the is-enabled branch set just above it. A timer that is
both disabled and inactive therefore never gets repaired, because
report_and_fix only repairs on "error". It is identical in the pre-split
file, so this split neither caused nor hides it. The tests pin the current
behaviour and name it; fixing it changes enforcement and earns its own commit.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01F3PzGc75gBcdxP3PkHXGcV
2026-08-21 13:47:05 +02:00
..
agent-automation-bootstrap.json style(prettier): apply markdown/json formatting updates 2026-05-07 22:08:00 +02:00
always-blocked-geofence-exempt-2026-08-10.json Take the geofence out of YouTube's reach, and pin infakt on 2026-08-10 21:28:25 +02:00
always-on-vpn-network-block-2026-08-10.json Pin RethinkDNS as always-on VPN, the layer that reaches every app 2026-08-10 21:40:04 +02:00
analyze-repo-runtime-fix-2026-08-16.json Fix two runtime defects the analyze_repo.sh split introduced 2026-08-16 22:02:17 +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-anvil-octoforge-2026-08-09.json app_icons: add the anvil glyph and register octoforge 2026-08-09 15:24:09 +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-home-inventory-linux-2026-07-27.json app_icons: home_inventory has a Linux desktop target 2026-07-27 11:26:26 +02:00
app-icons-pubspec-background-sync-2026-07-21.json app_icons: auto-sync pubspec.yaml's adaptive_icon_background 2026-07-21 21:38:22 +02:00
app-icons-track-bars-kuhylog-2026-08-09.json app_icons: add the kuhylog app and its track-bars glyph 2026-08-09 15:26:55 +02:00
app-icons-warm-palette-2026-07-21.json app_icons: warm-tint the shared icon family palette 2026-07-21 21:20:41 +02:00
archive-libre-translate-2026-08-18.json Archive libre_translate.sh: unused, moved to testsAndMisc-archive 2026-08-18 21:00:33 +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
archive-unmaintained-2026-01.json chore: archive 41 unmaintained directories to testsAndMisc-archive 2026-05-14 20:21:05 +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-blender-agx-view-transform-2026-08-15.json artgate: render 3D route with Standard view transform, not AgX 2026-08-15 23:09:06 +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
artgate-pixel-icon-64-spec-2026-08-15.json artgate: add 64px icon spec for the diffusion route 2026-08-15 23:30:32 +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-shared-section-header-2026-08-15.json billsplit: use the shared SectionHeader instead of the local copy 2026-08-15 15:26:55 +02:00
billsplit-split-2026-08-16.json Split every over-cap billsplit Dart file 2026-08-16 20:57:56 +02:00
boot-repair-esp-recovery-20260730.json Add boot-repair: offline recovery for a stale EFI System Partition 2026-07-30 12:48:56 +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-display-partial-2026-08-16.json Reduce brother_printer/display.py and dedup the consumable bars 2026-08-16 16:39:02 +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-count-split-2026-08-16.json Split brother_printer page-count display into its own module 2026-08-16 16:50:02 +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-pjl-io-split-2026-08-16.json Split brother_printer PJL wire transport out of usb_query 2026-08-16 17:11:15 +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
bucket-catch-2026-06-26.json Add evidence artifact for the bucket_catch app 2026-07-11 00:16:35 +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-design-tokens-2026-07-22.json bucket_catch: introduce a real design-token system, fix reversed gradients 2026-07-22 19:18:12 +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
bucket-catch-lint-baseline-2026-08-17.json bucket_catch: fix typecheck so build works and eslint runs 2026-08-17 10:02:58 +02:00
bucket-catch-phase-union-2026-08-17.json bucket_catch: make the done phase carry its result 2026-08-17 11:55:05 +02:00
bucket-catch-puzzle-loop-split-2026-08-17.json bucket_catch: split usePuzzleGameLoop.ts 386 -> 194 + two modules 2026-08-17 10:05:37 +02:00
bucket-catch-puzzle-test-split-2026-08-17.json bucket_catch: split usePuzzleGameLoop.test.ts 332 -> 125 + 210 2026-08-17 10:07:38 +02:00
bucket-catch-shared-dom-helper-2026-08-17.json bucket_catch: share the must() DOM helper from src/test/ 2026-08-17 11:57:53 +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
calc-live-split-2026-08-16.json Split calc-live.zsh: extract the qalc coprocess 2026-08-16 22:12:32 +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
check-file-length-gate-2026-08-17.json meta: add the check_file_length.sh gate the splits assumed existed 2026-08-17 14:52:24 +02:00
checker-false-errors-2026-07-17.json fix(checker): stop reporting healthy services as errors; drop thesis_tracker 2026-07-17 08:32:55 +02:00
ci-mirror-gate-2026-07-11.json Add CI-mirror pre-push gate + requirements-sync check (monorepo variant) 2026-07-11 18:06:17 +02:00
ci-phase0-python-tests-self-trigger-2026-08-18.json CI: make python-tests.yml self-triggering + add workflow_dispatch 2026-08-18 23:19:43 +02:00
ci-phase0-rsvg-convert-2026-08-18.json CI: install rsvg-convert on GitHub Actions runners (Phase 0 fix) 2026-08-18 23:10:38 +02:00
ci-pipeline-and-lint-backlog-fix-2026-06-22.json Fix CI pipeline and clear the lint backlog it had been hiding 2026-06-22 07:52:44 +02:00
claude-md-terse-rewrite-2026-08-16.json Cut CLAUDE.md 259 -> 141 lines: delete what hooks already enforce, fix what was wrong 2026-08-16 15:17:02 +02:00
cleanup-meta-folder-2026-05.json chore: consolidate root configs into meta/, drop unused C dir + split/pdfCentered/geo_data 2026-05-14 20:40:12 +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-claude-backend-split-2026-08-16.json Split the Claude backend out of code_tutor/_llm 2026-08-16 18:00:53 +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
code-tutor-test-version-fix-2026-07-11.json Make code_tutor OSError fingerprint test Python-version-robust 2026-07-11 00:22:57 +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
device-owner-enforcement-live-2026-08-10.json Make the enforcer real: block YouTube, and refuse to be uninstalled 2026-08-10 21:12:53 +02:00
diet-guard-app-focus-whitelist-2026-06-22.json style: prettier format pre-existing evidence JSON 2026-06-27 12:25:13 +02:00
diet-guard-app-night-whitelist-2026-07-11.json phone_focus_mode: night-whitelist com.kuhy.diet_guard_app 2026-07-11 23:58:22 +02:00
diet-guard-gatelock-migration-2026-06-21.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
diet-guard-test-isolation-fix-2026-06-22.json Fix non-hermetic diet_guard gate tests depending on a real X display 2026-06-22 08:12:02 +02:00
digital-wellbeing-bypass-hardening-2026-05.json security: harden digital-wellbeing bypass vectors 2026-05-16 15:41:40 +02:00
disk-cleanup-check-split-2026-08-16.json Split disk_cleanup_check.sh: extract the helpers and the output blocks 2026-08-16 22:57:06 +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
enforcement-log-test-split-2026-08-16.json Split the fix-selection tests out of EnforcementLogTest 2026-08-16 22:46:51 +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
extract-tool-duplication-fix-2026-08-17.json extract_shell_functions: never leave a function defined twice 2026-08-17 15:15:25 +02:00
feedback-appimage-install-2026-08-10.json feedback: local-only pacman package build, and ignore build artifacts 2026-08-10 15:33:18 +02:00
file-length-split-2026-06-14.json style: apply prettier formatting to evidence JSON and dwm/gaming READMEs 2026-06-14 07:22:04 +02:00
file-length-test-venv-blindspot-2026-07-25.json python_pkg: the file-length test was blind to its own CI venv 2026-07-25 16:32:32 +02:00
fix-hosts-guard-pacman-integration-test-2026-08-18.json Fix test_hosts_guard_pacman_integration.sh: broken by the hosts-guard archive 2026-08-18 22:58:35 +02:00
fix-hosts-guard-silent-aborts-2026-07-17.json fix(hosts-guard): stop setup aborting silently, so the guards actually enable 2026-07-17 08:25:51 +02:00
fix-install-failures.json style: prettier formatting for evidence JSON files 2026-05-16 15:46:33 +02:00
fix-midnight-shutdown-heredoc-2026-06-22.json fix: shutdown timer crashing on every fire due to heredoc escaping bug 2026-06-22 07:09:55 +02:00
fix-remaining-wellbeing-services-2026-07-17.json fix(wellbeing): clear every remaining error/warning; drop thesis_tracker 2026-07-17 08:58:43 +02:00
flag-system-sweep-2026-08-10.json Let the sweep hide preinstalled apps, one named package at a time 2026-08-10 20:24:31 +02:00
flutter-git-env-wrapper-2026-07-26.json Fix: stop the Flutter SDK reading your own repo as itself inside git hooks 2026-07-26 15:39:33 +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-mode-installer-symlink-2026-07-17.json fix(wellbeing): symlink focus-mode-daemon so edits actually deploy 2026-07-17 14:02:33 +02:00
focus-mode-zombie-steam-2026-07-17.json fix(wellbeing): stop focus mode reading zombie processes as running Steam 2026-07-17 13:55:24 +02:00
focus-owner-analyzer-exclude-2026-08-16.json Commit the Flutter-generated analyzer exclude in focus_owner 2026-08-16 22:41:19 +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-decision-split-2026-08-17.json focus_owner: split EnforcementDecision.kt 274 -> 221 + types 2026-08-17 10:26:18 +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-focus-policy-split-2026-08-17.json focus_owner: split FocusPolicy.kt 277 -> 238 + types 2026-08-17 10:45:27 +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-kotlin-test-split-2026-08-16.json Split the largest focus_owner Kotlin test file 2026-08-16 20:48:56 +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-release-signing-2026-08-10.json Make the enforcer real: block YouTube, and refuse to be uninstalled 2026-08-10 21:12:53 +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
focus-owner-shared-palette-and-todo-night-whitelist-2026-08-14.json Put focus_owner on the shared palette, and stop curfew hiding todo 2026-08-14 23:21:06 +02:00
focus-owner-status-page-split-2026-08-18.json focus_owner: split status_page_state.dart under the 250-line cap 2026-08-18 23:38:09 +02:00
focus-owner-status-page-test-split-2026-08-16.json Split the last over-cap focus_owner Dart test file 2026-08-16 20:44:03 +02:00
fresh-install-main-split-2026-08-17.json fresh-install: split main.sh 308 -> 200 + 121 2026-08-17 14:11:26 +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
habit-stack-icon-2026-07-20.json app_icons: register habit_stack with a new chain-link glyph; whitelist it 2026-07-20 11:09:23 +02:00
harden-vpn-layer-2026-08-10.json Close the two holes that made the network block advisory 2026-08-10 22:33:11 +02:00
home-inventory-icon-and-whitelist-2026-07-27.json app_icons: add home_inventory storage-box glyph; whitelist it on the phone 2026-07-27 07:35:55 +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
i3-idle-inhibitor-path-2026-07-25.json fix(i3): repair the dead idle-inhibitor autostart and make it a singleton 2026-07-25 19:57:57 +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
i3blocks-claude-usage-ci-jq-2026-08-10.json ci: install jq for the shell tests, and probe for it explicitly 2026-08-10 15:40:42 +02:00
idle-inhibit-zero-fork-20260604.json perf(idle-off): replace controller-watch fork storm with a single systemd-inhibit 2026-06-04 18:14:07 +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
infakt-2fa-wipe-safety-2026-08-09.json inFakt is SMS-only 2FA, so the wipe cannot strand the account 2026-08-10 20:04:06 +02:00
install-core-system-cleanup.json Add install_core_system.sh; remove pc_startup and thesis_tracker 2026-05-15 01:13:28 +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 Fix prettier formatting on the plagiarism-tools split evidence JSON 2026-08-18 20:43:16 +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
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-joker-face-confirmed-2026-07-25.json kcd2_dice_solver: Balatro's joker replaces the one, confirmed 2026-07-25 16:33:08 +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-inventory-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-deploy-responsive-io-2026-07-26.json kcd2 dice solver: lock deploy_build.sh so two runs cannot publish half a bundle 2026-07-26 20:33:38 +02:00
kcd2-dice-solver-run-sh-2026-07-21.json Apply prettier formatting to new kcd2_dice_solver files 2026-07-21 18:17:45 +02:00
kcd2-dice-solver-warm-palette-2026-07-22.json chore: fix prettier formatting on the kcd2 evidence JSON 2026-07-22 18:05:04 +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
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
lint-python-symlink-fix-2026-08-16.json Resolve the symlink in lint_python.sh's SCRIPT_DIR 2026-08-16 23:13:07 +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 style: prettier formatting fixes 2026-05-15 01:15:52 +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-joplin-split-2026-08-16.json Split install_joplin.sh and establish the shell-split pattern 2026-08-16 18:33:59 +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
loud-maintenance-failures-2026-07-17.json fix(maintenance): make repair failures loud instead of silently exiting 0 2026-07-17 08:17:51 +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
move-install-core-system.json style: prettier formatting for evidence JSON files 2026-05-16 15:46:33 +02:00
mtk-root-run-tests-split-2026-08-16.json Split mtk_root run_tests.sh: assertions and the dump-test group 2026-08-16 23:02:09 +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
mutate-shell-tool-2026-08-17.json meta: make this session's 65 mutations reproducible from the repo 2026-08-17 16:38:46 +02:00
network-diagnostics-2026-07-19.json Add network diagnostics: duty-cycle and line-speed probes 2026-07-19 18:46:18 +02:00
next-session-brief-2026-08-17.json Rewrite the brief around what this session proved wrong 2026-08-17 18:15:18 +02:00
night-lockdown-2026-07-17.json feat(shutdown): night lockdown instead of power-off, so servers stay up 2026-07-17 09:09:54 +02:00
night-lockdown-drop-morning-alarm-2026-07-20.json night-lockdown: stop firing the morning alarm on a fixed hour 2026-07-20 08:50:45 +02:00
night-lockdown-dynamic-wake-floor-2026-07-18.json fix(night-lockdown): schedule a dynamic wake-floor trigger for any shutdown time 2026-07-18 06:51:26 +02:00
night-lockdown-power-save-and-dnsmasq-watchdog-2026-07-23.json Add overnight power-save to night-lockdown; harden dnsmasq with a watchdog 2026-07-23 11:58:37 +02:00
night-lockdown-wake-fixes-2026-07-18.json fix(night-lockdown): close console-blank gap, recover DP link, floor wake alarm 2026-07-18 06:44:17 +02:00
no-inline-python-gate-2026-08-16.json Gate the no-inline-Python rule instead of asking people to remember it 2026-08-16 15:11:56 +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-u-flag-fix-2026-08-12.json Fix pacman whitelist matching for yay's -U package-file installs 2026-08-12 22:43:30 +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
personal-website-2026-07-13.json Add personal website deploy + move Gitea to a subdomain 2026-07-13 19:10:48 +02:00
phone-backup-and-ublock-2026-08-09.json Back up what adb can actually reach, and block YouTube in Firefox too 2026-08-10 19:43:28 +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-blackview-recents-fix-2026-05-31.json fix(phone): restore Blackview launcher for recents gesture 2026-05-31 16:27:08 +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-adb-common-split-2026-08-17.json phone_focus_mode: split adb_common.sh 346 -> 155 + two libs 2026-08-17 10:31:34 +02:00
phone-focus-adb-test-split-2026-08-17.json phone_focus_mode: split test_adb_common.sh 287 -> 134 + 105 2026-08-17 10:34:55 +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-focus-whitelist-foss-and-run-apps-2026-07-11.json phone_focus_mode: whitelist run-with-music apps + FOSS stock-app replacements 2026-07-11 22:39:36 +02:00
phone-night-curfew-2026-06-13.json feat(phone_focus_mode): enable curfew per-UID network allow-list; build companion button 2026-06-13 16:58:49 +02:00
pin-all-system-tools-2026-08-04.json Pin prettier, shfmt and zsh too, not just shellcheck 2026-08-04 21:07:49 +02:00
pin-shellcheck-version-2026-08-04.json Pin shellcheck in CI so local and CI agree on what a finding is 2026-08-04 21:01:01 +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-ui-wiring-2026-08-14.json Track poker-stakes so the file-length cap can reach it 2026-08-16 15:19:07 +02:00
pre-commit-default-stages-2026-05-14.json perf(pre-commit): default_stages=[pre-commit] so push only runs pytest+prettier 2026-05-14 21:21:40 +02:00
pre-commit-prettier-isolated-scope-2026-05-14.json perf(pre-commit): run prettier in its own systemd-run scope 2026-05-14 21:12:32 +02:00
pre-commit-prettier-scope-fix-2026-05-14.json perf(pre-commit): tighten prettier scope to fit in pre-push cgroup 2026-05-14 21:09:14 +02:00
pre-commit-pytest-batch-2026-05-14.json perf(pre-commit): batch+parallelize pytest on commit; kill 15s sleeps in steam_backlog_enforcer tests 2026-05-14 21:52:52 +02:00
pre-commit-pytest-scope-fix-2026-05-14.json fix(pre-commit): skip deleted/missing python_pkg subpackages 2026-05-14 21:05:49 +02:00
pre-commit-stage-rebalance-2026-05-14.json perf(pre-commit): move mypy/pylint/bandit from pre-push to pre-commit 2026-05-14 21:20:21 +02:00
prettier-and-gradle-caps-2026-08-03.json Format last three markdown files; cap billsplit's Android build memory 2026-08-03 13:25:48 +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-coverage-fix.json fix: remove dead code in unplayable_reason; add coverage for playable path 2026-05-08 20:35:55 +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
pytest-xdist-coverage-flake-fix-2026-06-22.json Drop -n 4 xdist parallelism from the pytest-coverage pre-commit hook 2026-06-22 08:29:54 +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
remove-build-your-x-2026-07-17.json chore: remove byox_ladder — extracted to its own repo 2026-07-17 20:06:14 +02:00
remove-diet-guard-2026-06-22.json Remove diet_guard: extracted to its own repo (kuhyx/diet-guard) 2026-06-22 12:22:41 +02:00
remove-focus-mode-daemon-2026-07-19.json remove(digital-wellbeing): delete unusable focus-mode daemon entirely 2026-07-19 13:15:04 +02:00
remove-hosts-script-self-chattr-2026-07-16.json fix(hosts): stop chattr +i'ing install.sh and generate_hosts_file.sh sources 2026-07-17 08:06:46 +02:00
remove-screen-locker-2026-05-28.json chore: remove screen_locker — extracted to own repo 2026-05-28 07:44:14 +02:00
remove-screen-replay-2026-06-06.json remove: uninstall unused ffmpeg screen-replay feature 2026-06-06 10:44:36 +02:00
remove-setup-script-self-chattr-2026-07-16.json fix(shutdown): stop chattr +i'ing this script's own git-tracked source 2026-07-17 07:55:07 +02:00
remove-steam-backlog-enforcer-2026-05-28.json chore: remove steam_backlog_enforcer — extracted to own repo 2026-05-28 07:27:32 +02:00
remove-thorium-fitatu-autostart-2026-08-17.json Remove the dead Thorium/Fitatu autostart instead of splitting it 2026-08-17 08:08:09 +02:00
remove-wake-alarm-2026-06-22.json Remove wake_alarm (extracted to kuhyx/wake-alarm) and fix the orchestrator 2026-06-22 12:47:06 +02:00
requirements-sync-foreign-imports-2026-07-19.json requirements-sync: map bs4 and exempt foreign-runtime imports 2026-07-19 18:58:35 +02:00
restore-apps-after-wipe-2026-08-10.json Make the enforcer real: block YouTube, and refuse to be uninstalled 2026-08-10 21:12:53 +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-new-enemies-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
runnerup-always-available-2026-08-12.json Whitelist RunnerUp day and night, so it can always sync 2026-08-12 19:22:50 +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
security-hardening-guard-lib-units-2026-07-19.json security-hardening: check guard-lib units, not the retired ones 2026-07-19 19:58:32 +02:00
security-hardening-shutdown-guard-2026-07-19.json security-hardening: recognise the guard-lib shutdown guard 2026-07-19 20:09:24 +02:00
self-hosted-gitea-2026-07-04.json Add self-hosted Gitea deployment, mirroring all GitHub repos publicly 2026-07-04 07:45:00 +02:00
session-autopsy-badge-and-aliases-2026-07-25.json session_autopsy: badge counts only significant candidates; zero-token aliases 2026-07-25 18:05:49 +02:00
session-autopsy-drop-explain-diff-2026-07-25.json session_autopsy: handled candidates leave the nudge; drop explain-diff 2026-07-25 18:12:38 +02:00
session-autopsy-hook-mutation-gate-2026-07-25.json Make the hook tests' non-vacuity re-verifiable, and gate it 2026-07-25 17:37:34 +02:00
session-autopsy-hook-tests-2026-07-25.json session_autopsy: test the hooks, the untested half of the analyzer 2026-07-25 17:27:30 +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
set-home-and-vpn-lock-2026-08-10.json Let the app set its own home, and lock VPN configuration 2026-08-10 22:17:31 +02:00
setup-dns-blocker-2026-07-10.json feat: add Pi-hole-like LAN DNS blocking served from the PC (dnsmasq) 2026-07-10 19:02:46 +02:00
setup-dufs-cloud-2026-07-12.json linux_configuration: self-hosted dufs cloud storage + KeePass WebDAV auto-sync 2026-07-12 03:40:54 +02:00
setup-local-llm-2026-06-27.json Add local-LLM setup script (ollama-cuda + qwen3 + Open WebUI) 2026-07-11 00:16:24 +02:00
setup-midnight-shutdown-violation-checks-disabled.json fix(digital-wellbeing): disable schedule leniency violation checks 2026-05-07 22:06:34 +02:00
setup-searxng-2026-08-09.json Fix engine pruning: disabled -> inactive (they were still running) 2026-08-09 17:56:59 +02:00
setup-syncyomi-2026-07-13.json Add setup_syncyomi.sh: self-hosted SyncYomi manga sync 2026-07-13 17:20:02 +02:00
setup-wireguard-ssh-2026-06-19.json feat: add self-hosted WireGuard+SSH remote access from Android, across networks 2026-06-21 20:07:13 +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-gate-2026-08-17.json meta: measurable shell coverage, and dns_iptables.sh at 100% 2026-08-17 15:29:08 +02:00
shell-extract-tool-2026-08-17.json shell splits: add extract_shell_functions.py 2026-08-17 14:14:41 +02:00
shell-split-harness-2026-08-17.json shell splits: add a verbatim-move harness and triage all 29 targets 2026-08-17 14:07:20 +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
shell-tests-ci-2026-07-19.json Run shell tests in CI and repair three broken by a reorg 2026-07-19 19:06:23 +02:00
shell-tests-complete-coverage-2026-07-19.json Run all 14 shell tests in CI 2026-07-19 19:39:28 +02:00
shell-tests-stale-assertions-2026-07-19.json Repair two stale shell tests; CI now runs all six 2026-07-19 19:13:51 +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
split-test-security-hardening-2026-08-16.json Split test_security_hardening.sh; finish the mutation-driver split 2026-08-16 22:24:02 +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-behavior-fix-2026-05-08.json steam_backlog_enforcer: reduce repeated cache refetches 2026-05-08 15:13:25 +02:00
steam-backlog-done-install-retry-2026-05-08.json steam_backlog_enforcer: retry install after library hide restart 2026-05-08 14:56:46 +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
thorium-crash-logging-2026-08-09.json Log why Chromium browsers die; whitelist librewolf 2026-08-09 22:27:16 +02:00
todo-night-whitelist-2026-07-11.json phone_focus_mode: night-whitelist dev.kuhy.todo 2026-07-11 23:32:57 +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
trace-harness-extra-stubs-2026-08-16.json Let trace_shell_split.sh stub extra binaries per run 2026-08-16 22:51:20 +02:00
trace-harness-stub-values-2026-08-16.json Let trace stubs emit values, so traces reach guarded branches 2026-08-16 22:59:40 +02:00
trace-prefix-writes-2026-08-16.json Close three fail-open paths in the prefix trace harness 2026-08-16 23:38:38 +02:00
trace-shell-split-harness-2026-08-16.json Add an execution-trace harness for shell splits 2026-08-16 22:49:48 +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-fw-split-2026-08-17.json transcribe_fw: split 302 -> 236 + 91 2026-08-17 13:43:49 +02:00
transcribe-fw-tests-2026-08-17.json transcribe_fw: cover 0% -> 100% before splitting 2026-08-17 13:40:47 +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
ublock-origin-wrapper-integration-2026-08-12.json Wire uBlock Origin into every real Chromium launch, alongside LeechBlock 2026-08-12 22:44:28 +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
untools-app-icon-2026-08-09.json app_icons: add a decision-tree glyph and register untools 2026-08-09 17:23:35 +02:00
usage-report-drop-compute-window-2026-08-17.json usage_report: delete the dead _compute_window shim 2026-08-17 12:57:52 +02:00
usage-report-drop-import-barrel-2026-08-17.json usage_report: import _fmt_h from its owner, not through the render module 2026-08-17 11:38:24 +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-parsing-tests-2026-08-17.json usage_report: cover _usage_report_parsing.py 39% -> 100% 2026-08-17 12:04:13 +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
usage-report-render-tests-2026-08-17.json usage_report: cover _usage_report_render.py 21% -> 100% 2026-08-17 11:20:02 +02:00
usage-report-test-split-2026-08-17.json usage_report: split test_usage_report_since.py 480 -> 186 + 145 + 178 2026-08-17 10:40:06 +02:00
vendor-agent-skills-import.json chore(third_party): vendor agent-skills snapshot 2026-05-07 22:06:00 +02:00
verify-shell-split-script-2026-08-16.json Commit the shell-split verifier and the traps it found 2026-08-16 18:59:20 +02:00
vscode-optimizer-intel-gpu-fix-2026-08-17.json vscode_optimizer: detect Intel iGPUs as Intel, not AMD 2026-08-17 14:49:43 +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 style: prettier format CLAUDE.md and evidence JSON 2026-05-30 22:13:54 +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-catalog-split-2026-08-16.json Split wsg_grabber/catalog.py under the 250-line cap 2026-08-16 15:36:02 +02:00
wsg-grabber-cli-split-2026-08-16.json Split wsg_grabber/cli.py under the 250-line cap 2026-08-16 15:39:10 +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-net-split-2026-08-16.json Split wsg_grabber/net.py under the 250-line cap 2026-08-16 15:45:39 +02:00
wsg-grabber-player-split-2026-08-16.json Split wsg_grabber/player.py under the 250-line cap 2026-08-16 16:05:41 +02:00
wsg-grabber-review-split-2026-08-16.json Split wsg_grabber/review.py under the 250-line cap 2026-08-16 15:42:10 +02:00
wsg-grabber-store-split-2026-08-16.json Split wsg_grabber/store.py under the 250-line cap 2026-08-16 15:52:08 +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
wsg-grabber-ui-split-2026-08-16.json Split wsg_grabber/ui.py under the 250-line cap 2026-08-16 16:18:13 +02:00
youtube-block-unrooted-2026-08-09.json Block YouTube on the unrooted Pixel, and trust more than one phone 2026-08-10 19:16:01 +02:00