testsAndMisc/docs/superpowers/evidence
Krzysztof kuhy Rudnicki a5209b6878 Extract phone_focus_mode together with focus_policy
github.com/kuhyx/phone-focus-mode

The two halves go as one repo: focus_policy parses phone_focus_mode's
config.sh into the typed policy that focus-owner consumes, and nothing
else references it. 77 commits of history, plus the two Python suites
from linux_configuration/tests/ and the six mutation fixtures from
meta/scripts/fixtures/, all of which named phone_focus_mode paths.

Running the suites -- not reading them -- turned up a real defect the
extraction would otherwise have inherited. config.sh sources the
untracked config_secrets.sh, and ctl_libs_harness.sh never pinned
HOME_LAT/HOME_LON, so the distance assertions were checking against
whatever real coordinates that file happened to hold. The suite passed on
this machine and could not run anywhere else, and a real home location
was load-bearing in a pass/fail condition. The harness now pins a pair
4300 m south of the coordinate its own case seeds, and config.sh sources
the secrets file only when it exists. 136/136 pass with no secrets file
present.

Before making the repo public I scanned the whole history for the known
home coordinates and for any committed config_secrets.sh: zero hits, and
the file was never tracked. The new repo also gained a .gitignore, since
none came across in the filter-repo pass.

test_magisk_service.sh hangs. It hangs identically in the pre-extraction
baseline worktree and appears in no CI list here, so the new repo's CI
skips it with that reason rather than pretending it passes.

check_python_location.sh loses its phone_focus_mode exception now that
the directory is gone; every tracked .py still passes it. The .gitignore
rules for config_secrets.sh and the keystore STAY -- the working copy is
still on this machine and still holds a real location.

Depth 262 -> 248.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PJrqKERAo5QUeEHWS5Asgp
2026-08-23 18:32:58 +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
arch-cpu-tests-2026-08-22.json Test arch_cpu.sh to 100% and take it off the allowlist (91 -> 90) 2026-08-22 21:14:57 +02:00
arch-hardware-tests-2026-08-22.json Test arch_hardware.sh to 100%, fix its dead journal vacuum (90 -> 89) 2026-08-22 21:46:42 +02:00
arch-perf-fixes-coverage-2026-08-22.json Test arch_perf_fixes.sh to 93.48% and fix the journal regex a third time 2026-08-22 19:34:12 +02:00
arch-perf-probes-coverage-2026-08-22.json Test arch_perf_probes.sh to 100%: allowlist 93 -> 92 2026-08-22 19:04:50 +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
arch-sysctl-tests-2026-08-22.json Test arch_sysctl.sh and open the optimize_arch_desktop lib family 2026-08-22 20:54:47 +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
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
archwiki-reindex-path-independent-test-2026-08-23.json Fix a test that only passed in a directory named testsAndMisc 2026-08-23 14:53:29 +02:00
array-literal-continuation-2026-08-22.json Instrument: multi-line array elements are not statements; clear arch_perf_fixes 2026-08-22 20:13:45 +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
aw-autostart-suite-2026-08-22.json Cover aw_autostart.sh (82.93%), executing the script it generates 2026-08-22 12:49:51 +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
block-compulsive-opening-split-2026-08-21.json block_compulsive_opening: test the allow/block decision 2026-08-21 15:53:54 +02:00
boot-repair-bios-guard-2026-08-22.json boot-repair: refuse shadow-file cleanup on BIOS systems with no ESP 2026-08-22 23:46:20 +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
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
bt-report-coverage-2026-08-22.json Test bt_report.sh to 100%: allowlist 98 -> 97 2026-08-22 16:33:33 +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
cache-ci-python-deps-2026-08-23.json Cache pip and pre-commit envs in CI 2026-08-23 16:24:17 +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-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
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-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
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
ci-skips-kcov-jail-suites-2026-08-22.json CI: skip the kcov-jail suites instead of failing to install kcov 2026-08-22 12:31:36 +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
clean-audio-filters-suite-2026-08-22.json Cover clean_audio_filters.sh (89.25%), completing testsAndMisc-bash/lib 2026-08-22 13:27:44 +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
clear-bt-audio-arch-perf-report-2026-08-22.json Clear bt_audio.sh and arch_perf_report.sh: allowlist 95 -> 93 2026-08-22 18:40:05 +02:00
closing-brace-continuation-2026-08-22.json Coverage instrument: a closing brace plus an operator is not a statement 2026-08-22 18:29:47 +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
dwm-config-suite-2026-08-22.json Cover dwm_config.sh and fix its unreachable upstream-drift warning 2026-08-22 12:44:12 +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
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-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-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-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-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-shell-functions-keyword-form-2026-08-21.json extract_shell_functions: recognise the function name() spelling 2026-08-21 16:11:29 +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
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
five-pacman-hook-stall-off-allowlist-2026-08-22.json Clear five pacman_hook_stall libs: allowlist 103 -> 98 2026-08-22 14:57:01 +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-python-tests-ci-resolution-too-deep-2026-08-23.json Fix the Python tests CI workflow: drop mitmproxy 2026-08-23 16:13:28 +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
fix-shell-tests-stale-suite-2026-08-23.json shell-tests: drop the last stale suite name 2026-08-23 18:11:36 +02:00
fixes-lib-run-all-2026-08-22.json Add fixes/lib run_all.sh; the previous handoff was wrong about that directory 2026-08-22 14:40:31 +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
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
glyph-art-split-2026-08-21.json glyph-art evidence: describe the commit that actually landed 2026-08-21 16:43:01 +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
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
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
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-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 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
jail-aware-libtests-gate-2026-08-22.json Teach both lib/tests gates to run jail-requiring suites 2026-08-22 12:05:45 +02:00
jail-case-timeout-2026-08-22.json Bound every coverage-jail case with a timeout and closed stdin 2026-08-22 11:40:16 +02:00
jail-propagates-case-failure-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-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
kcov-cross-process-underreport-2026-08-22.json Correct the cause of rpi_nc_ca.sh's missing line: it is cross-process 2026-08-22 13:05:52 +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
kcov-numerator-bug-proven-2026-08-22.json Prove kcov's under-report is TWO defects, one of them a numerator bug 2026-08-22 13:57:33 +02:00
kcov-offset-lines-2026-08-22.json Name the lines outside kcov's line set; bound defect (c) as fail-closed 2026-08-22 14:30:39 +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
leechblock-deploy-lib-2026-08-21.json install_leechblock: deploy lib/ alongside the entry script 2026-08-21 15:44:10 +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
live-state-installed-scripts-2026-08-23.json report_live_state: also scan installed scripts under /usr/local 2026-08-23 17:44:10 +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
lyricanki-focus-whitelist-2026-08-22.json Whitelist com.kuhy.lyricanki in focus mode 2026-08-22 16:26:52 +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
metrolist-night-allowlist-2026-08-22.json Allow Metrolist during the night curfew, deploy to phone 2026-08-22 23:20:27 +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
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
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-config-allowlist-2026-08-23.json Take nvidia_config.sh off the allowlist for real (85 -> 84) 2026-08-23 14:13:24 +02:00
nvidia-config-seams-restore-2026-08-23.json Restore nvidia_config.sh's four test seams 2026-08-23 13:33:35 +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
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-tests-follow-split-2026-08-21.json pacman tests: follow the wrapper split so Shell tests goes green 2026-08-21 16:25:15 +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
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
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
phase3-namespace-jail-feasibility-2026-08-21.json Phase 3: prove 100% shell coverage is reachable via a namespace jail 2026-08-21 17:08:05 +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
precommit-workflow-dispatch-2026-08-23.json Allow Pre-commit checks to be run manually 2026-08-23 16:38:15 +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
prettier-endurain-readme-2026-08-23.json Apply prettier to endurain/README.md 2026-08-23 13:43:22 +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
python-tests-minimal-deps-2026-08-23.json Install only the test deps in Python tests CI: 79 packages -> 17 2026-08-23 16:29:24 +02:00
python-tests-path-filter-symlink-2026-08-23.json Trigger Python tests when meta/requirements.txt changes 2026-08-23 16:20:10 +02:00
quarantine-arch-sysctl-cases-2026-08-22.json Quarantine the arch_sysctl cases: they broke bt_audio's measurement 2026-08-23 10:15:11 +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
restructure-step0-safety-net-2026-08-23.json Restructure step 0: live-state inventory + depth gate dry run 2026-08-23 16:59:54 +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
rpi-nc-ca-suite-2026-08-22.json Cover rpi_nc_ca.sh (98.63%) and bind the two paths its suite needed 2026-08-22 12:59:51 +02:00
rpi-nc-install-suite-2026-08-22.json Cover rpi_nc_install.sh and fix two latent bugs in the nc_php suite 2026-08-22 11:49:47 +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-apps-follow-cco-split-2026-08-21.json security_apps: follow the cco split so Shell tests goes green 2026-08-21 16:06:28 +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
security-hardening-split-aware-2026-08-21.json test_security_hardening: look for the blocker's code where it now lives 2026-08-21 16:06:08 +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
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-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-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-midnight-shutdown-violation-checks-disabled.json fix(digital-wellbeing): disable schedule leniency violation checks 2026-05-07 22:06:34 +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
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-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-bar-back-to-presence-2026-08-23.json Drop the 100% shell coverage bar; back to a presence ratchet 2026-08-23 15:47:04 +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-coverage-ratchet-2026-08-21.json Phase 3: ratchet shell libraries onto test suites 2026-08-21 17:00:26 +02:00
shell-coverage-ratchet-fixes-2026-08-21.json Shell ratchet: fix tests/lib misread, enforce shrink-only, correct docs 2026-08-21 17:09:20 +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-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-ratchet-wiring-handoff-2026-08-21.json Hand off the shell-ratchet hook paste, with the tests/ exclusion measured 2026-08-21 23:42:52 +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-libtests-discovery-2026-08-21.json shell-tests: actually run the lib/tests suites in CI 2026-08-21 15:42:51 +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
shfmt-fixes-libs-preformat-2026-08-22.json Reformat three fixes libs with shfmt ahead of coverage work 2026-08-22 20:22:23 +02:00
shutdown-monitor-test-split-aware-2026-08-21.json test_shutdown_timer_monitor: actually populate SETUP_SOURCES 2026-08-21 16:32:51 +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
skip-duplicated-pytest-in-precommit-ci-2026-08-23.json Stop running the Python suite twice per push in CI 2026-08-23 16:30:27 +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
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
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
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
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
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-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
transcribe-lib-tests-2026-08-22.json Give testsAndMisc-bash/lib a harness; cover transcribe_deps and _pkgmgr 2026-08-22 13:14:02 +02:00
transcribe-venv-off-allowlist-2026-08-22.json Clear transcribe_venv.sh: 100%, off the allowlist, 104 -> 103 2026-08-22 13:24:28 +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
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
ubuntu-perf-more-coverage-2026-08-22.json Test ubuntu_perf_more.sh to 100%: allowlist 93 -> 92 2026-08-22 19:25:21 +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
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
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
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