diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index b4b6632fe..c0dc64592 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "f3accc753cf2417d816be7f0bddbb1bba0466d09", - "syncedAt": "2026-04-26T00:22:13.518Z" + "sha": "e6ee4d6e68445386ed3c7dadbe7fa7e9d04eabd7", + "syncedAt": "2026-04-26T00:23:08.129Z" } diff --git a/docs/cli/browser.md b/docs/cli/browser.md index 962d8c7fc..baf81622f 100644 --- a/docs/cli/browser.md +++ b/docs/cli/browser.md @@ -138,6 +138,10 @@ the optional label, and the raw `targetId`. Agents should pass `suggestedTargetId` back into `focus`, `close`, snapshots, and actions. You can assign a label with `open --label`, `tab new --label`, or `tab label`; labels, tab ids, raw target ids, and unique target-id prefixes are all accepted. +When Chromium replaces the underlying raw target during a navigation or form +submit, OpenClaw keeps the stable `tabId`/label attached to the replacement tab +when it can prove the match. Raw target ids remain volatile; prefer +`suggestedTargetId`. ## Snapshot / screenshot / actions @@ -185,6 +189,10 @@ openclaw browser wait --text "Done" openclaw browser evaluate --fn '(el) => el.textContent' --ref ``` +Action responses return the current raw `targetId` after action-triggered page +replacement when OpenClaw can prove the replacement tab. Scripts should still +store and pass `suggestedTargetId`/labels for long-lived workflows. + File + dialog helpers: ```bash diff --git a/docs/tools/browser-control.md b/docs/tools/browser-control.md index f88d8504c..990e25ae1 100644 --- a/docs/tools/browser-control.md +++ b/docs/tools/browser-control.md @@ -221,6 +221,11 @@ Notes: - Download, trace, and upload paths are constrained to OpenClaw temp roots: `/tmp/openclaw{,/downloads,/uploads}` (fallback: `${os.tmpdir()}/openclaw/...`). - `upload` can also set file inputs directly via `--input-ref` or `--element`. +Stable tab ids and labels survive Chromium raw-target replacement when OpenClaw +can prove the replacement tab, such as same URL or a single old tab becoming a +single new tab after form submission. Raw target ids are still volatile; prefer +`suggestedTargetId` from `tabs` in scripts. + Snapshot flags at a glance: - `--format ai` (default with Playwright): AI snapshot with numeric refs (`aria-ref=""`). @@ -258,6 +263,9 @@ OpenClaw supports two “snapshot” styles: Ref behavior: - Refs are **not stable across navigations**; if something fails, re-run `snapshot` and use a fresh ref. +- `/act` returns the current raw `targetId` after action-triggered replacement + when it can prove the replacement tab. Keep using stable tab ids/labels for + follow-up commands. - If the role snapshot was taken with `--frame`, role refs are scoped to that iframe until the next role snapshot. - Unknown or stale `axN` refs fail fast instead of falling through to Playwright's `aria-ref` selector. Run a fresh snapshot on the same tab when