Commit graph

250 commits

Author SHA1 Message Date
dan 99a86f0b40 bd daemon export: 2026-01-18 08:25:53 2026-01-18 08:25:53 -08:00
dan d19ae873d5 bd daemon export: 2026-01-18 08:14:48 2026-01-18 08:14:48 -08:00
dan de6d94f724 bd daemon export: 2026-01-18 08:14:45 2026-01-18 08:14:45 -08:00
dan 93e443f899 bd daemon export: 2026-01-18 08:14:33 2026-01-18 08:14:33 -08:00
dan c8491342b7 bd daemon export: 2026-01-18 08:13:59 2026-01-18 08:13:59 -08:00
dan 3eda2f4d0c bd daemon export: 2026-01-18 08:13:25 2026-01-18 08:13:25 -08:00
dan 560ee4c9bc chore: re-track issues.jsonl, use forge for flake stability
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>
2026-01-18 08:10:13 -08:00
dan d0e93a74aa chore: untrack issues.jsonl to prevent flake hash mismatches
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>
2026-01-17 20:41:01 -08:00
dan 201b0db068 bd sync: 2026-01-15 20:38:37 2026-01-15 20:38:37 -08:00
dan 1bfbb2b30a bd sync: 2026-01-15 20:33:36 2026-01-15 20:33:36 -08:00
dan 75f1c0bee0 bd sync: 2026-01-15 19:15:50 2026-01-15 19:15:50 -08:00
dan 22f280d253 bd sync: 2026-01-15 19:14:14 2026-01-15 19:14:14 -08:00
dan 6c09bee2c4 docs(ui-query): add full command documentation
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>
2026-01-15 19:14:10 -08:00
dan ca98eec7a6 feat(ui-query): add AT-SPI benchmark script and results
- 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>
2026-01-15 19:13:28 -08:00
dan b48212e973 bd sync: 2026-01-15 15:39:13 2026-01-15 15:39:13 -08:00
dan 5f5675d1ca refactor(ui-query): improve exception handling with --debug flag
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>
2026-01-15 15:39:05 -08:00
dan ec6c81b436 bd sync: 2026-01-15 15:18:27 2026-01-15 15:18:27 -08:00
dan fedec9c46a refactor(ui-query): extract shared find_elements() to common.py
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>
2026-01-15 15:18:18 -08:00
dan 5a80055ed8 bd sync: 2026-01-15 14:54:20 2026-01-15 14:54:20 -08:00
dan bccf7514ce refactor(ui-query): extract shared find_windows() to common.py
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>
2026-01-15 14:54:11 -08:00
dan e428be1ae6 bd sync: 2026-01-15 14:23:49 2026-01-15 14:23:49 -08:00
dan f449c60c74 fix(ui-query): proper argument quoting in wrapper script
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>
2026-01-15 14:23:38 -08:00
dan 1875cbf751 bd sync: 2026-01-15 14:22:08 2026-01-15 14:22:08 -08:00
dan 82d92c6bc2 bd sync: 2026-01-15 14:19:46 2026-01-15 14:19:46 -08:00
dan 205e8b0dfa feat(ui-query): add query-state.py for element state inspection
Detailed state querying for UI elements:
- Find focused element with --focused
- Show all state flags with descriptions (--all-states)
- Reports actions, value ranges, text content, caret position
- Human-readable state descriptions

Completes ui-query skill (list-windows, get-text, find-element, query-state)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 14:19:37 -08:00
dan 6ed762ad05 feat(ui-query): add find-element.py for element search
Search AT-SPI tree for elements by role and/or name:
- Filter by role (button, label, text, menu-item, etc.)
- Filter by name substring (case-insensitive)
- Scope to specific window or app
- Returns position, states, path context

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 14:17:37 -08:00
dan d3b24e91c7 bd sync: 2026-01-15 14:15:51 2026-01-15 14:15:51 -08:00
dan c876394460 feat(ui-query): add get-text.py for text extraction
Extracts text content from windows via AT-SPI Text interface:
- Match windows by name pattern or app name
- Traverses accessibility tree to find text elements
- Outputs hierarchical text structure or JSON

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 14:15:46 -08:00
dan 0b0b6f49f9 bd sync: 2026-01-15 11:57:24 2026-01-15 11:57:24 -08:00
dan 6eee2be66e feat(skills): add ui-query skill with list-windows
Initial AT-SPI integration for semantic UI access:
- list-windows.py: enumerate windows via accessibility tree
- Wrapper script handles nix dependencies (pyatspi, pygobject3)
- Outputs table or JSON with window geometry and states

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 11:57:03 -08:00
dan 49d75fb9ef bd sync: 2026-01-15 11:36:40 2026-01-15 11:36:40 -08:00
dan bf0998af89 bd sync: 2026-01-15 10:42:23 2026-01-15 10:42:23 -08:00
dan 68426ce108 bd sync: 2026-01-15 10:23:18 2026-01-15 10:23:18 -08:00
dan 5dd304615d release: worker v0.1.1 with spawn reliability fixes
- Robust rollback on spawn failure (branch + worktree cleanup)
- Error messages include step context
- Default base branch changed to main

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 10:23:13 -08:00
dan 29d23dfa53 bd sync: 2026-01-15 09:37:48 2026-01-15 09:37:48 -08:00
dan 48ec6cde83 fix(worker): address code review findings
- Fix rollback to handle partial branch creation (skills-yylq)
  - Pre-compute branch/worktree names before createWorktree
  - Use gitBranchExists() and dirExists() for robust cleanup
- Add step context to error messages (skills-ux6h)
  - Track currentStep through spawn process
  - Error now shows which step failed
- Deduplicate success output block (skills-qjln)
  - Consolidated to single block with conditional review line
- Simplify use-skills.sh auth symlink (skills-475o)
  - One-liner with || instead of nested if
- Fix inconsistent default branch in git.nim (skills-fext)
  - Changed default from "origin/integration" to "main"

Closes skills-yylq, skills-ux6h, skills-qjln, skills-475o, skills-fext

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 09:37:37 -08:00
dan 9f096dea0d bd sync: 2026-01-15 09:29:41 2026-01-15 09:29:41 -08:00
dan 461c5ac148 fix(worker): improve spawn reliability and add noFetch flag
- Change default base branch from origin/integration to main
- Add --noFetch flag to skip git fetch (for offline/sandbox use)
- Add try/except with rollback on spawn failure
- Improve error message for missing review-gate
- Add Codex auth.json symlink to use-skills.sh
- Include worker orchestration AAR from 2026-01-13

Addresses pain points from worker-orchestration-aar-2026-01-13.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 09:29:36 -08:00
dan d463fe58bb docs: add worklog for skills directory standardization 2026-01-14 19:18:25 -08:00
dan b0fe974831 bd sync: 2026-01-14 19:02:29 2026-01-14 19:02:29 -08:00
dan 48d2737699 refactor(skills): standardize directory structure (assets/ references/)
- Remove redundant 'skills/' subdirectories
- Rename 'templates/' to 'assets/' in worklog, template, review-gate, hq
- Move loose docs to 'references/' in niri-window-capture, spec-review
- Update SKILL.md and README.md paths
2026-01-14 19:02:08 -08:00
dan 2c0db1c911 bd sync: 2026-01-14 11:40:53 2026-01-14 11:40:53 -08:00
dan b87fe4c467 docs: Add missing skills to README and frontmatter to review-gate 2026-01-14 11:40:43 -08:00
dan 33e307daaa bd sync: 2026-01-14 11:40:40 2026-01-14 11:40:40 -08:00
dan 3cc7540c46 docs: add worklog for HQ deployment and Codex skills integration
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 06:56:49 -08:00
dan 06f5fafd1a bd sync: 2026-01-13 06:51:08 2026-01-13 06:51:08 -08:00
dan e6d777e589 feat: add Codex per-repo skills support
- use-skills.sh: symlink to $CODEX_HOME/skills when CODEX_HOME is set
- docs: update PER-REPO-SKILLS.md and RFC-SKILLS-MANIFEST.md with Codex flow
- hq: add model configuration section (sonnet-4.5, Claude Max)
- hq: update launch commands with explicit --model flag

Closes skills-legi

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 06:50:56 -08:00
dan 2969878553 feat: add Codex support to ai-skills module
- Add codexSkills option for deploying skills to ~/.codex/skills/
- Follows same pattern as claudeCodeSkills and openCodeSkills
- Dotfiles can now configure: services.ai-skills.codexSkills = [ "worklog" "hq" ];

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 05:58:56 -08:00
dan 84830fd5cb Merge feat/skills-zws1 2026-01-12 21:12:19 -08:00
dan 2177b10d50 Add hello world script 2026-01-12 21:11:49 -08:00