Land desktop inspection/actions and tab API from feat/github-cache #89
- IA
Lands the `feat/github-cache` integration branch on `main`. Despite the branch name, its current contents are the tab API plus the native desktop inspection and action work for #8, each reviewed and merged here as a focused PR:
- #46: agents discover local Ace windows and rename one tab (`ace tabs --json`, `ace tab rename`). Closes #43. - #63: targeted native actions `desktop_click`, `desktop_type`, and `desktop_key`, using single-use observations bound to an exact app instance, window, and control, with completed, refused, or unknown outcomes. Also adds text selection and keyboard shortcuts and fixes the button-completion timeout (#61). - #71: native pixel reads, plus inspection failures that report target availability while keeping completed-action evidence (#64). - #82: click variants and screenshot-point targeting. - #70: `desktop_scroll` for an observed element or screenshot point (#68). - #85: atomic straight-line `desktop_drag` within one observed window (#68). - #74: explicit `desktop_activate`, `desktop_focus`, and `desktop_restore` with generation-bound targets and signed receipts (#73). - #84: `desktop_apps` name and bundle-ID search applied before the inventory is bounded (#83). - #87: a locked macOS session now gets a typed `target_unavailable` refusal with no dispatch for activate, focus, and restore (#64, #73).
Refs #8, #68, #73, #64, #5. Those issues stay open for their remaining scope; see each PR for its validation and what is still unverified. `HOST_PROTOCOL` moves from 7 to 8 for the tab messages. No durable channel format changes.
`main` was merged into the branch with a merge commit, not a rebase, because other PRs are stacked on it (#67, #75, #86). The merge had no conflicts. The only file changed on both sides was `apps/host/src/protocol.ts`, where Git combined the tab request/frame additions with the optional terminal `replay` flag from #60. I checked that combined result by hand. `bun install --frozen-lockfile`, `bun types`, and `bun run ci` pass locally on the merge. This is the first CI run for this branch's code, because the branch predates the CI workflow (#62).
### Built in Ace
An Ace channel agent did the merge, checks, push, and PR creation in an Ace lane using its shell tool (Git, Bun, `gh`). It used no outside tools. How each included PR was built is described in its own **Built in Ace** section. Several of them used Codex for source editing and fixture setup because a file editor (#22), external-harness integration (#9), and a native app launch tool (#8) are still missing.
iamnbutlermerged 3e49d70bb95alast month on GitHub
iamnbutlerreferenced this in Move and resize exact native windows #86last month on GitHub
iamnbutlerreferenced this in Rename channels and keep rolling summaries #23last month on GitHub