From 695a888840e25edd70ad2d66cd676b55a5bdc322 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=A8=E7=82=8E?= <635735027@qq.com> Date: Mon, 13 Apr 2026 14:59:51 +0800 Subject: [PATCH] docs: add lineloss target_url fix design spec MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Qoder][https://qoder.com] --- .../2026-04-13-lineloss-target-url-fix.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 docs/superpowers/specs/2026-04-13-lineloss-target-url-fix.md diff --git a/docs/superpowers/specs/2026-04-13-lineloss-target-url-fix.md b/docs/superpowers/specs/2026-04-13-lineloss-target-url-fix.md new file mode 100644 index 0000000..009492e --- /dev/null +++ b/docs/superpowers/specs/2026-04-13-lineloss-target-url-fix.md @@ -0,0 +1,36 @@ +# 台区线损 Skill - target_url 缺失修复方案 + +## 问题背景 + +`browser_script_skill_tool.rs` 调用 `Action::Eval` 时只传了 `script` 参数,没有传 `target_url`。`callback_backend.rs` 的 `target_url` 方法需要从 params 或 `current_target_url` 获取值,两者都没有时报错。 + +知乎热榜正常工作是因为先执行了 `Action::Navigate`,设置了 `current_target_url`。 + +## 设计方案 + +**方案:在 `browser_script_skill_tool.rs` 的 params 中添加 `target_url`** + +### 修改位置 + +`src/compat/browser_script_skill_tool.rs` - `execute_browser_script_impl` 函数 + +### 修改内容 + +在调用 `browser_tool.invoke(Action::Eval, ...)` 时,从 `expected_domain` 构造完整 URL 并添加到 params: + +```rust +let target_url = format!("http://{}", expected_domain); +let result = match browser_tool.invoke( + Action::Eval, + json!({ + "script": wrapped_script, + "target_url": target_url, + }), + &expected_domain, +) { +``` + +### 约束条件 + +- 使用 `http://` 协议前缀 +- `expected_domain` 可能包含端口号(如 `20.76.57.61:18080`),直接拼接即可