A 27-assertion suite for dwm_config.sh, the highest-scored remaining allowlisted lib. It drives the lib for real inside the jail: rewriting dwm.c with perl, appending to config.h, compiling with cc and installing into /usr/local/bin. The generated content is asserted, not just the call. LATENT BUG, found by writing the test: apply_fullscreen_confine_hook does `on=$(grep -c 'pconfine-auto on' "$src")`, and grep -c exits 1 when the count is zero. The caller runs `set -euo pipefail`, so the function aborted at that line exactly when the count was zero -- which is precisely when the "setfullscreen/unmanage were likely refactored upstream" warning three lines below was the thing needed. The warn branch was dead code in the only situation it exists for. Both call sites now use `|| true`, and the suite asserts the warning fires. Measured: dwm_config.sh 35/73 = 47.95%. It STAYS on the allowlist -- the bar is 100% and it is measured, not asserted. That number is an under-report. An `exit 43` sentinel proves build_install, build_pointer_confine, write_session_files and verify all execute inside the jail while kcov reports their bodies at zero hits. One kcov artifact is now CONFIRMED against a minimal repro: continuation lines inside a multi-line quoted argument (the `perl -0777 -pe '...'` blocks) are counted as statements that never run, which is the wrong denominator. A sixth hypothesis -- that the exec-ing sudo shim or a pipeline loses the trace -- was tested and disproven. The two-strike time-box on this hunt is spent; docs/shell-split-verification.md records what is known, including the exit-sentinel technique for telling a tracing failure from an aborted suite. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016sxxsDHWgdRhmdmzNMA6XM |
||
|---|---|---|
| .github | ||
| .hippo | ||
| .vscode | ||
| billsplit | ||
| bucket_catch | ||
| docs | ||
| focus_owner | ||
| kcd2_dice_solver | ||
| linux_configuration | ||
| meta | ||
| phone_focus_mode | ||
| poker-stakes | ||
| python_pkg | ||
| reverse_survivors | ||
| third_party/agent-skills | ||
| .binary-allowlist | ||
| .copilotignore | ||
| .fvmrc | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .prettierignore | ||
| .shellcheckrc | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| DESIGN_AUDIT_TODO.md | ||
| lint_python.sh | ||
| NEXT_SESSION_PROMPT.md | ||
| pyproject.toml | ||
| README.md | ||
| refactor_claude_todo_resume.md | ||
| refactor_claude_todo.md | ||
| requirements.txt | ||
| run.sh | ||
testsAndMisc
A collection of personal projects, scripts, and experiments — from a GPS-based phone focus tool to Linux/Arch automation, with CI, linting, and pre-commit hooks across the board.
Highlights
Phone Focus Mode
Location-based app restriction for rooted Android. Automatically disables non-whitelisted apps within 500 m of home using ADB + Magisk. Features Haversine distance calculation, hysteresis to prevent toggling, fail-safe unlock, and state persistence. Bash, Android ADB.
Linux Configuration
Automated Arch Linux setup: fresh-install scripts, i3 window manager config, LaTeX environment, and system tests. Includes documentation and test result logging.
Scripts
Utility scripts for development workflows — build file validation, secret detection, and custom makepkg helpers.
Repository Layout
| Path | Description |
|---|---|
python_pkg/ |
Python packages (each maintained subpackage lives here) |
billsplit/ |
Receipt bill-splitting Flutter app — people, groups, per-item assignment, e-paragon import and xlsx export (Dart, 100 % line coverage gate) |
linux_configuration/ |
Arch Linux setup, i3 config, system maintenance scripts |
focus_owner/ |
Device Owner app enforcing focus mode on the unrooted Pixel 6a — geofence + night curfew, hides apps the phone cannot un-hide (Dart/Kotlin) |
phone_focus_mode/ |
GPS-based Android focus enforcer (rooted-era scripts; config.sh is still the policy source of truth for focus_owner/) |
reverse_survivors/ |
Reverse Survivors — React/Vite game where you play the horde against an AI survivor (TypeScript, 100 % coverage gate) |
scripts/ |
Workspace-level helper scripts and pre-commit hooks |
docs/ |
Reference docs and historical reports |
third_party/ |
Vendored upstream skills/agents |
meta/ |
Repo-wide tooling: pyproject.toml, requirements.txt, .pre-commit-config.yaml, run.sh, lint_python.sh, .fvmrc. Symlinked into the repo root so tools that auto-discover from root keep working. |
Archived / unmaintained projects live in the sibling repository
testsAndMisc-archive.
Tooling
- Python linting: Ruff with all rules enabled (see
meta/pyproject.toml) - Dependencies:
pip install -r meta/requirements.txt(combined runtime + dev) - CI: GitHub Actions — lint, build, and test on push
- Testing: pytest (Python), custom shell-based test harness for scripts