Files
claw/docs/_tmp_sgbrowser_ws_probe_transcript.md
木炎 bdf8e12246 feat: align browser callback runtime and export flows
Consolidate the browser task runtime around the callback path, add safer artifact opening for Zhihu exports, and cover the new service/browser flows with focused tests and supporting docs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 21:44:53 +08:00

11 KiB

sgBrowser websocket probe transcript

Endpoint: ws://127.0.0.1:12345 Timeout: 1500ms Cargo target dir override: D:/data/ideaSpace/rust/sgClaw/claw-new/target_task4

baseline-open

$ CARGO_TARGET_DIR="/d/data/ideaSpace/rust/sgClaw/claw-new/target_task4" cargo run --manifest-path "/d/data/ideaSpace/rust/sgClaw/claw-new/Cargo.toml" --bin sgbrowser_ws_probe -- --ws-url "ws://127.0.0.1:12345" --timeout-ms 1500 --step "baseline-open::[\"about:blank\",\"sgBrowerserOpenPage\",\"https://www.zhihu.com/hot\"]"
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.95s
     Running `target_task4\debug\sgbrowser_ws_probe.exe --ws-url 'ws://127.0.0.1:12345' --timeout-ms 1500 --step 'baseline-open::["about:blank","sgBrowerserOpenPage","https://www.zhihu.com/hot"]'`
STEP 1 baseline-open
SEND: ["about:blank","sgBrowerserOpenPage","https://www.zhihu.com/hot"]
RECV: Welcome! You are client #1
OUTCOME: received

open-agent

$ CARGO_TARGET_DIR="/d/data/ideaSpace/rust/sgClaw/claw-new/target_task4" cargo run --manifest-path "/d/data/ideaSpace/rust/sgClaw/claw-new/Cargo.toml" --bin sgbrowser_ws_probe -- --ws-url "ws://127.0.0.1:12345" --timeout-ms 1500 --step "open-agent::[\"about:blank\",\"sgOpenAgent\"]" --step "post-open-agent-open::[\"about:blank\",\"sgBrowerserOpenPage\",\"https://www.zhihu.com/hot\"]"
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.98s
     Running `target_task4\debug\sgbrowser_ws_probe.exe --ws-url 'ws://127.0.0.1:12345' --timeout-ms 1500 --step 'open-agent::["about:blank","sgOpenAgent"]' --step 'post-open-agent-open::["about:blank","sgBrowerserOpenPage","https://www.zhihu.com/hot"]'`
STEP 1 open-agent
SEND: ["about:blank","sgOpenAgent"]
RECV: Welcome! You are client #1
OUTCOME: received

STEP 2 post-open-agent-open
SEND: ["about:blank","sgBrowerserOpenPage","https://www.zhihu.com/hot"]
RECV: <none>
OUTCOME: timeout

set-auth

$ CARGO_TARGET_DIR="/d/data/ideaSpace/rust/sgClaw/claw-new/target_task4" cargo run --manifest-path "/d/data/ideaSpace/rust/sgClaw/claw-new/Cargo.toml" --bin sgbrowser_ws_probe -- --ws-url "ws://127.0.0.1:12345" --timeout-ms 1500 --step "set-auth::[\"about:blank\",\"sgSetAuthInfo\",\"probe-user\",\"probe-token\"]" --step "post-set-auth-open::[\"about:blank\",\"sgBrowerserOpenPage\",\"https://www.zhihu.com/hot\"]"
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.95s
     Running `target_task4\debug\sgbrowser_ws_probe.exe --ws-url 'ws://127.0.0.1:12345' --timeout-ms 1500 --step 'set-auth::["about:blank","sgSetAuthInfo","probe-user","probe-token"]' --step 'post-set-auth-open::["about:blank","sgBrowerserOpenPage","https://www.zhihu.com/hot"]'`
STEP 1 set-auth
SEND: ["about:blank","sgSetAuthInfo","probe-user","probe-token"]
RECV: Welcome! You are client #1
OUTCOME: received

STEP 2 post-set-auth-open
SEND: ["about:blank","sgBrowerserOpenPage","https://www.zhihu.com/hot"]
RECV: <none>
OUTCOME: timeout

browser-login

$ CARGO_TARGET_DIR="/d/data/ideaSpace/rust/sgClaw/claw-new/target_task4" cargo run --manifest-path "/d/data/ideaSpace/rust/sgClaw/claw-new/Cargo.toml" --bin sgbrowser_ws_probe -- --ws-url "ws://127.0.0.1:12345" --timeout-ms 1500 --step 'browser-login::["about:blank","sgBrowserLogin",{"appName":"probe","userName":"probe","orgName":"probe","menus":[{"name":"probe","normalImg":"x","activeImg":"x","url":"https://www.zhihu.com/hot"}]}]' --step 'post-browser-login-open::["about:blank","sgBrowerserOpenPage","https://www.zhihu.com/hot"]'
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.95s
     Running `target_task4\debug\sgbrowser_ws_probe.exe --ws-url 'ws://127.0.0.1:12345' --timeout-ms 1500 --step 'browser-login::["about:blank","sgBrowserLogin",{"appName":"probe","userName":"probe","orgName":"probe","menus":[{"name":"probe","normalImg":"x","activeImg":"x","url":"https://www.zhihu.com/hot"}]}]' --step 'post-browser-login-open::["about:blank","sgBrowerserOpenPage","https://www.zhihu.com/hot"]'`
STEP 1 browser-login
SEND: ["about:blank","sgBrowserLogin",{"appName":"probe","userName":"probe","orgName":"probe","menus":[{"name":"probe","normalImg":"x","activeImg":"x","url":"https://www.zhihu.com/hot"}]}]
RECV: Welcome! You are client #1
OUTCOME: received

STEP 2 post-browser-login-open
SEND: ["about:blank","sgBrowerserOpenPage","https://www.zhihu.com/hot"]
RECV: <none>
OUTCOME: timeout

active-tab

$ CARGO_TARGET_DIR="/d/data/ideaSpace/rust/sgClaw/claw-new/target_task4" cargo run --manifest-path "/d/data/ideaSpace/rust/sgClaw/claw-new/Cargo.toml" --bin sgbrowser_ws_probe -- --ws-url "ws://127.0.0.1:12345" --timeout-ms 1500 --step "active-tab::[\"about:blank\",\"sgBrowerserActiveTab\",\"https://www.zhihu.com/hot\",\"probeCallback\"]" --step "post-active-tab-open::[\"about:blank\",\"sgBrowerserOpenPage\",\"https://www.zhihu.com/hot\"]"
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.95s
     Running `target_task4\debug\sgbrowser_ws_probe.exe --ws-url 'ws://127.0.0.1:12345' --timeout-ms 1500 --step 'active-tab::["about:blank","sgBrowerserActiveTab","https://www.zhihu.com/hot","probeCallback"]' --step 'post-active-tab-open::["about:blank","sgBrowerserOpenPage","https://www.zhihu.com/hot"]'`
STEP 1 active-tab
SEND: ["about:blank","sgBrowerserActiveTab","https://www.zhihu.com/hot","probeCallback"]
RECV: Welcome! You are client #1
OUTCOME: received

STEP 2 post-active-tab-open
SEND: ["about:blank","sgBrowerserOpenPage","https://www.zhihu.com/hot"]
RECV: <none>
OUTCOME: timeout

combined-bootstrap

$ CARGO_TARGET_DIR="/d/data/ideaSpace/rust/sgClaw/claw-new/target_task4" cargo run --manifest-path "/d/data/ideaSpace/rust/sgClaw/claw-new/Cargo.toml" --bin sgbrowser_ws_probe -- --ws-url "ws://127.0.0.1:12345" --timeout-ms 1500 --step "combined-open-agent::[\"about:blank\",\"sgOpenAgent\"]" --step "combined-active-tab::[\"about:blank\",\"sgBrowerserActiveTab\",\"https://www.zhihu.com/hot\",\"probeCallback\"]" --step "combined-open::[\"about:blank\",\"sgBrowerserOpenPage\",\"https://www.zhihu.com/hot\"]"
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.95s
     Running `target_task4\debug\sgbrowser_ws_probe.exe --ws-url 'ws://127.0.0.1:12345' --timeout-ms 1500 --step 'combined-open-agent::["about:blank","sgOpenAgent"]' --step 'combined-active-tab::["about:blank","sgBrowerserActiveTab","https://www.zhihu.com/hot","probeCallback"]' --step 'combined-open::["about:blank","sgBrowerserOpenPage","https://www.zhihu.com/hot"]'`
STEP 1 combined-open-agent
SEND: ["about:blank","sgOpenAgent"]
RECV: Welcome! You are client #1
OUTCOME: received

STEP 2 combined-active-tab
SEND: ["about:blank","sgBrowerserActiveTab","https://www.zhihu.com/hot","probeCallback"]
RECV: <none>
OUTCOME: timeout

STEP 3 combined-open
SEND: ["about:blank","sgBrowerserOpenPage","https://www.zhihu.com/hot"]
RECV: <none>
OUTCOME: timeout

requesturl-variants

$ CARGO_TARGET_DIR="/d/data/ideaSpace/rust/sgClaw/claw-new/target_task4" cargo run --manifest-path "/d/data/ideaSpace/rust/sgClaw/claw-new/Cargo.toml" --bin sgbrowser_ws_probe -- --ws-url "ws://127.0.0.1:12345" --timeout-ms 1500 --step "target-as-requesturl::[\"https://www.zhihu.com/hot\",\"sgBrowerserOpenPage\",\"https://www.zhihu.com/hot\"]"
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.94s
     Running `target_task4\debug\sgbrowser_ws_probe.exe --ws-url 'ws://127.0.0.1:12345' --timeout-ms 1500 --step 'target-as-requesturl::["https://www.zhihu.com/hot","sgBrowerserOpenPage","https://www.zhihu.com/hot"]'`
STEP 1 target-as-requesturl
SEND: ["https://www.zhihu.com/hot","sgBrowerserOpenPage","https://www.zhihu.com/hot"]
RECV: Welcome! You are client #1
OUTCOME: received
$ CARGO_TARGET_DIR="/d/data/ideaSpace/rust/sgClaw/claw-new/target_task4" cargo run --manifest-path "/d/data/ideaSpace/rust/sgClaw/claw-new/Cargo.toml" --bin sgbrowser_ws_probe -- --ws-url "ws://127.0.0.1:12345" --timeout-ms 1500 --step "baidu-requesturl::[\"https://www.baidu.com\",\"sgBrowerserOpenPage\",\"https://www.zhihu.com/hot\"]"
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.94s
     Running `target_task4\debug\sgbrowser_ws_probe.exe --ws-url 'ws://127.0.0.1:12345' --timeout-ms 1500 --step 'baidu-requesturl::["https://www.baidu.com","sgBrowerserOpenPage","https://www.zhihu.com/hot"]'`
STEP 1 baidu-requesturl
SEND: ["https://www.baidu.com","sgBrowerserOpenPage","https://www.zhihu.com/hot"]
RECV: Welcome! You are client #1
OUTCOME: received
Sequence Sent frames First reply Final outcome Decision signal
baseline-open ["about:blank","sgBrowerserOpenPage","https://www.zhihu.com/hot"] Welcome! You are client #1 received only welcome banner; no numeric status or callback frame captured does not satisfy Option A rule
open-agent ["about:blank","sgOpenAgent"] then ["about:blank","sgBrowerserOpenPage","https://www.zhihu.com/hot"] Welcome! You are client #1 step 2 timed out with no reply does not satisfy Option A rule
set-auth ["about:blank","sgSetAuthInfo","probe-user","probe-token"] then ["about:blank","sgBrowerserOpenPage","https://www.zhihu.com/hot"] Welcome! You are client #1 step 2 timed out with no reply does not satisfy Option A rule
browser-login ["about:blank","sgBrowserLogin",{"appName":"probe","userName":"probe","orgName":"probe","menus":[{"name":"probe","normalImg":"x","activeImg":"x","url":"https://www.zhihu.com/hot"}]}] then ["about:blank","sgBrowerserOpenPage","https://www.zhihu.com/hot"] Welcome! You are client #1 step 2 timed out with no reply does not satisfy Option A rule
active-tab ["about:blank","sgBrowerserActiveTab","https://www.zhihu.com/hot","probeCallback"] then ["about:blank","sgBrowerserOpenPage","https://www.zhihu.com/hot"] Welcome! You are client #1 step 2 timed out with no reply does not satisfy Option A rule
combined-bootstrap ["about:blank","sgOpenAgent"] then ["about:blank","sgBrowerserActiveTab","https://www.zhihu.com/hot","probeCallback"] then ["about:blank","sgBrowerserOpenPage","https://www.zhihu.com/hot"] Welcome! You are client #1 steps 2 and 3 timed out with no reply does not satisfy Option A rule
requesturl-variants ["https://www.zhihu.com/hot","sgBrowerserOpenPage","https://www.zhihu.com/hot"] and ["https://www.baidu.com","sgBrowerserOpenPage","https://www.zhihu.com/hot"] Welcome! You are client #1 each one-shot run received only the welcome banner; no numeric status or callback frame captured does not satisfy Option A rule

Final decision

Option B wins.

Reason: the strict rule says Option A wins only if at least one sequence reproducibly yields real numeric status and/or callback frames for a real business action. Across the full required matrix, the reachable endpoint consistently returned only the websocket welcome banner on the first reply for each fresh connection, and every follow-on business-action step either timed out or produced no numeric status/callback frame. Therefore the evidence does not validate a raw-websocket bootstrap contract, so Option B is the required outcome.