← Commit history

Publish 2.1.168

John Lauer ·605db1a390 ·19d ago ·parent 6ec6e56
5 files changed +6−2
SKILL.md+2
@@ -1222,6 +1222,8 @@ Architectural notes for Claude: - `shell_execute` -- Run a shell command on the desktop. The CLI handles approval polling internally — it returns the final `{success, output, error, exitCode}` once the user clicks Allow on the desktop dialog. 2.1.132+: ab holds the prompt for `approvalWaitSec` (default 60, max 600); a lapse answers `errorCode:"approval_timeout"` (nobody answered, NOT a deny: re-send with a longer wait or `request_shell_approval {wait:true}`), an explicit Deny answers `errorCode:"approval_denied"`. **You do not need to poll, retry, or call `get_deferred_result` yourself.** The CLI emits `HINT:` lines to stderr while waiting (every 15s) so an AI Monitor sees progress.
 - `shell_kill_all` -- Kill all running shell commands and deny pending approvals.
 
+**Do not put JavaScript or escaped JSON in a `shell_execute` command (2.1.168, wiki #222).** On Windows the command runs through `cmd /c`, and cmd does NOT treat `\"` as an escaped quote. So in `curl -d "{\"js\":\"(()=>{const x=...})()\"}"` the `>` of `=>` (or any `<`/`>` comparison) can land outside cmd's quotes and become a REDIRECT: cmd writes a file named after the next word (`{const`, `e.children.length`) and the command gets mangled input. Send such payloads with `run_script {"interpreter":"powershell","scriptB64":...}` (base64, nothing to escape), or `write_file` the JSON and pass the file (`curl -d @C:/path/body.json`). ab now flags this shape in the reply's `_hint`. With no `cwd`, a command runs in `%TEMP%\adom-bridge-shell` (2.1.168; before that it ran in the Adom Bridge install folder, which is where those stray files landed); pass `cwd` when you need a specific folder.
+
 **v1.7.16 fix.** Earlier versions (v1.7.15 specifically) had a regression where the CLI's approval-wait loop re-sent the command every 1s instead of polling for the deferred result; that produced an infinite "Another shell command is already waiting for approval" loop because each retry created a fresh approval the user could never out-click. v1.7.16 fixes it. If you see that error string with a `>= 1.7.16` CLI, the bug is back — file an issue. If you see it with `< 1.7.16`, upgrade the CLI: `adom-wiki asset get apps/adom-bridge docker_binary -o /usr/local/bin/adom-bridge`.
 
 **Deprecated for download polling.** As of v1.5.0, use `desktop_watch_files` / `desktop_pull_glob` for waiting on download arrivals — those don't require user approval, don't go through PowerShell quoting, and are O(directory entries) rather than spawning a process every second. `shell_execute` itself stays as an escape hatch for genuinely shell-only operations (multi-step ad-hoc admin tasks, chained pipelines, etc.).
dist/linux/adom-bridge
⋯ 1 unchanged line ⋯
package.json+1−1
@@ -1,6 +1,6 @@ {
   "slug": "adom-bridge",
-  "version": "2.1.167",
+  "version": "2.1.168",
   "type": "app",
   "brief": "Adom Bridge unleashes your AI onto your full PC: full power, full safety. The AI breaks out of the container it runs in and onto your real machine, managing and running your entire laptop as you: launch apps, move files, drive any window, control KiCad, Fusion 360 or your real signed-in browser. Works with any AI, cloud or local (Claude Desktop, Claude Code, Codex), no Hydrogen required. Bridge and its bridges are an operating system for AI, with managed Node and Python runtimes, and a human-only permission system keeps you in charge of every side-effecting command.",
   "description": "Install this package in a cloud or Hydrogen Desktop container, not on the PC. It delivers two things: the Linux adom-bridge-cli (linked onto PATH) and the Claude skill set that teaches an AI every desktop verb (shell, files, screenshots, windows, notifications, KiCad, Fusion 360, browser automation). The CLI drives the Adom Bridge app running on your Windows PC over the relay; the Windows app itself is the separate installer in the Download box, not part of this package. Run adom-wiki pkg update to keep the CLI and skills current.",
page.json+1−1
@@ -1,6 +1,6 @@ {   "slug": "adom-bridge",-  "version": "2.1.167",+  "version": "2.1.168",   "type": "app",   "description": "Install this package in a cloud or Hydrogen Desktop container, not on the PC. It delivers two things: the Linux adom-bridge-cli (linked onto PATH) and the Claude skill set that teaches an AI every desktop verb (shell, files, screenshots, windows, notifications, KiCad, Fusion 360, browser automation). The CLI drives the Adom Bridge app running on your Windows PC over the relay; the Windows app itself is the separate installer in the Download box, not part of this package. Run adom-wiki pkg update to keep the CLI and skills current.",   "keywords": [
skills/adom-bridge/SKILL.md+2
@@ -1222,6 +1222,8 @@ Architectural notes for Claude: - `shell_execute` -- Run a shell command on the desktop. The CLI handles approval polling internally — it returns the final `{success, output, error, exitCode}` once the user clicks Allow on the desktop dialog. 2.1.132+: ab holds the prompt for `approvalWaitSec` (default 60, max 600); a lapse answers `errorCode:"approval_timeout"` (nobody answered, NOT a deny: re-send with a longer wait or `request_shell_approval {wait:true}`), an explicit Deny answers `errorCode:"approval_denied"`. **You do not need to poll, retry, or call `get_deferred_result` yourself.** The CLI emits `HINT:` lines to stderr while waiting (every 15s) so an AI Monitor sees progress.
 - `shell_kill_all` -- Kill all running shell commands and deny pending approvals.
 
+**Do not put JavaScript or escaped JSON in a `shell_execute` command (2.1.168, wiki #222).** On Windows the command runs through `cmd /c`, and cmd does NOT treat `\"` as an escaped quote. So in `curl -d "{\"js\":\"(()=>{const x=...})()\"}"` the `>` of `=>` (or any `<`/`>` comparison) can land outside cmd's quotes and become a REDIRECT: cmd writes a file named after the next word (`{const`, `e.children.length`) and the command gets mangled input. Send such payloads with `run_script {"interpreter":"powershell","scriptB64":...}` (base64, nothing to escape), or `write_file` the JSON and pass the file (`curl -d @C:/path/body.json`). ab now flags this shape in the reply's `_hint`. With no `cwd`, a command runs in `%TEMP%\adom-bridge-shell` (2.1.168; before that it ran in the Adom Bridge install folder, which is where those stray files landed); pass `cwd` when you need a specific folder.
+
 **v1.7.16 fix.** Earlier versions (v1.7.15 specifically) had a regression where the CLI's approval-wait loop re-sent the command every 1s instead of polling for the deferred result; that produced an infinite "Another shell command is already waiting for approval" loop because each retry created a fresh approval the user could never out-click. v1.7.16 fixes it. If you see that error string with a `>= 1.7.16` CLI, the bug is back — file an issue. If you see it with `< 1.7.16`, upgrade the CLI: `adom-wiki asset get apps/adom-bridge docker_binary -o /usr/local/bin/adom-bridge`.
 
 **Deprecated for download polling.** As of v1.5.0, use `desktop_watch_files` / `desktop_pull_glob` for waiting on download arrivals — those don't require user approval, don't go through PowerShell quoting, and are O(directory entries) rather than spawning a process every second. `shell_execute` itself stays as an escape hatch for genuinely shell-only operations (multi-step ad-hoc admin tasks, chained pipelines, etc.).