While building the details sidebar (channel sidebar-populate), every native desktop tool call (desktop_apps, with and without a query) failed with "Open Ace on this host to enable native desktop tools." even though Ace Canary was running and hosting the channel. A lane's bun run dev Ace-dev app was also running.
Without them the agent could not inspect or click the Ace-dev window to smoke-test UI, and fell back to driving the dev host's web app with Playwright's cached Chromium outside Ace. The agent's read tool also cannot show the resulting PNG screenshots, so visual checks were limited to DOM text.
Expected: desktop tools work from a channel whenever its host's Ace app is open, or the error says what is actually missing.
Cause and scope (updated Oct 6)
The reproduced cause is worker provenance (details): a source-checkout bun ace CLI using Canary's data directory (ACE_HOME) started the dormant channel's worker itself. Without explicit ACE_DESKTOP_CLIENT, native() in apps/host/src/desktop.ts looks for the client beside process.execPath, which for that worker is Bun, so every desktop tool fails before reaching Canary's socket. #118 fixed the supported bun desktop dev runner, which passes its checkout's client explicitly; it doesn't cover a source CLI starting a worker in an installed app's data directory.
Expected now: such a worker finds the installed app's client, or the CLI refuses or warns before starting it, or the error names the worker's provenance. Reading saved screenshots is #51.
While building the details sidebar (channel sidebar-populate), every native desktop tool call (
desktop_apps, with and without a query) failed with "Open Ace on this host to enable native desktop tools." even though Ace Canary was running and hosting the channel. A lane'sbun run devAce-dev app was also running.Without them the agent could not inspect or click the Ace-dev window to smoke-test UI, and fell back to driving the dev host's web app with Playwright's cached Chromium outside Ace. The agent's
readtool also cannot show the resulting PNG screenshots, so visual checks were limited to DOM text.Expected: desktop tools work from a channel whenever its host's Ace app is open, or the error says what is actually missing.
Cause and scope (updated Oct 6)
The reproduced cause is worker provenance (details): a source-checkout
bun aceCLI using Canary's data directory (ACE_HOME) started the dormant channel's worker itself. Without explicitACE_DESKTOP_CLIENT,native()inapps/host/src/desktop.tslooks for the client besideprocess.execPath, which for that worker is Bun, so every desktop tool fails before reaching Canary's socket. #118 fixed the supportedbun desktop devrunner, which passes its checkout's client explicitly; it doesn't cover a source CLI starting a worker in an installed app's data directory.Expected now: such a worker finds the installed app's client, or the CLI refuses or warns before starting it, or the error names the worker's provenance. Reading saved screenshots is #51.