Driverrefuses to construct unless a realclaudebinary exists (afk/driver.py:17-29), breaking unit tests that inject a fake CLI and blocking use on machines without the CLI installed.- PATH check shells out to
which(afk/driver.py:20);whichis absent on minimal images, causingFileNotFoundErrorbefore any work. Useshutil.whichand allow caller-provided env. Driver.runno longer handlesKeyboardInterrupt(afk/driver.py:46-65); ^C now raises to the caller instead of returning an exit code, violating “method blocks until process exits.”commits_betweennow always uses--first-parent --ancestry-path(afk/git.py:81-104), silently dropping commits from merged branches despite the method’s promise to return the full range.commits_between(None, …)now callsroot_commit()which raises on multi-root repos (afk/git.py:67-104); many real histories have multiple roots, so this introduces spurious failures where the previous code worked.- Pytest is forced to
-q --tb=shortglobally (pyproject.toml:12-14), hiding diagnostics and making already brittle tests harder to debug without justification.