Reverts gitignore change. Now using forge SSH URLs for flake inputs
with daemon auto-push, so issues.jsonl stays tracked and synced
while flake locks to stable remote commits.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This repo is consumed as a flake input. Beads daemon auto-commits
to issues.jsonl cause narHash mismatches between nix flake lock
and build.
Also add missing gitignore patterns for daemon runtime files.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Document all commands: list-windows, get-text, find-element,
query-state, benchmark. Add common flags section.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- benchmark.py: measures coverage and query performance
- Documents coverage across Ghostty, waybar, vicinae
- Key finding: Firefox not visible to AT-SPI without explicit config
- Query performance: ~1.7s to find buttons across all apps
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add opt-in debug logging to all scripts:
- set_debug() and log_debug() in common.py
- --debug flag in all 4 scripts
- Exception handlers now log context via log_debug()
Keeps broad exception catching (needed for AT-SPI stale objects)
but adds visibility when debugging.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Consolidates duplicate find_elements() from find-element.py and query-state.py.
Shared function returns raw accessibles; callers map through their own info extractors.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Consolidates duplicate find_windows() from get-text.py and find-element.py
into a shared module. Also adds get_all_windows() helper.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use printf %q to escape arguments before passing through nix-shell --run.
Fixes handling of arguments containing spaces or special characters.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>