Skip to content

Releases: Thatgfsj/webctl

0.2.0 - 2026-10-25

Choose a tag to compare

@github-actions github-actions released this 25 Oct 10:16
b2185b3

Release Notes

本版主题:站点定位兜底(用户说得出站点名、给不出 URL 时给出带证据的候选)
与浏览器上下文注入(借用宿主/设备浏览器的 HTTP 头与 Cookie)。决策依据:ADR-0006。

Added

  • 第 17 个工具 resolve_site(#173):多候选 + 证据 + 置信度,绝不单选。
    通道阶梯 L1–L5:
    • L1 内置映射表(36 条)+ 域名直推(纯本地、不联网);
    • L2 站点内建搜索(模板表 24 条,每次最多 2 个站点;robots 拦下不请求;分值 55/58,永不跨可靠阈值)(#178);
    • L3 Wikidata P856 官方网站(免 key 只读 API;两步请求都过 politeness)(#175);
    • L4 候选域名 robots.txt 的 Sitemap: 声明(只报告声明,不提升置信度)(#176);
    • L5 显式 opt-in 的 SERP 兜底(allow_serp_fallback 默认 false、结果低分、被拦即 BLOCKED)(#177)。
  • 浏览器上下文注入系列(#161…#169):WEBCTL_BROWSER_CONTEXT 指向的 JSON 文件;
    user_agent / accept / accept_language / sec_ch_ua / referer / cookies[];凭据类头只同源携带;
    cookie 值不落盘/不落日志/不进 envelope(BrowserContext 刻意不实现 Serialize);TLS/JS 指纹不可借用(诚实边界)。
  • robots.txt 支持 Sitemap: 解析(RobotsRules::sitemaps())。

Changed

  • CI 政策(用户要求)(#166):PR 只跑 static + guards;三平台矩阵与 musl 静态改到 push main / 手动 / 发布;
    分支保护的必需检查同步收敛为 2 项。覆盖面变化如实登记在 docs/CI.md §8(合并红线 9 → 2)。
  • 大文件拆分(#171):tests/mcp.rs、session/form.rs、tests/session.rs 均拆到 < 1000 行,全仓无超限文件。

Notes

  • 发布:本条目即 v0.2.0 的发布说明;资产清单与校验和见 Release 页(tag v0.2.0)与 docs/RELEASE.md。若资产有问题,按 docs/RELEASE.md §3 的回滚步骤处理。

webctl 0.2.0

Install webctl 0.2.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Thatgfsj/webctl/releases/download/v0.2.0/webctl-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/Thatgfsj/webctl/releases/download/v0.2.0/webctl-installer.ps1 | iex"

Download webctl 0.2.0

File Platform Checksum
webctl-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
webctl-x86_64-apple-darwin.tar.xz Intel macOS checksum
webctl-x86_64-pc-windows-msvc.zip x64 Windows checksum
webctl-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
webctl-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

webctl-mcp 0.2.0

Install webctl-mcp 0.2.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Thatgfsj/webctl/releases/download/v0.2.0/webctl-mcp-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/Thatgfsj/webctl/releases/download/v0.2.0/webctl-mcp-installer.ps1 | iex"

Download webctl-mcp 0.2.0

File Platform Checksum
webctl-mcp-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
webctl-mcp-x86_64-apple-darwin.tar.xz Intel macOS checksum
webctl-mcp-x86_64-pc-windows-msvc.zip x64 Windows checksum
webctl-mcp-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
webctl-mcp-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

0.1.2 - 2026-10-19

Choose a tag to compare

@github-actions github-actions released this 20 Oct 10:09
30d1593

Release Notes

本版主题:JS 密集型 / SPA 站点的有效信息获取(EPIC #113)。
三条路线同时推进:内嵌结构化数据、可行动降级、以及受限的内置 JS 引擎。

Added

  • 内嵌结构化数据通道:新工具 embedded_data(工具面第 16 个),从 JSON-LD、script[type=json](如 __NUXT_DATA__)、框架状态容器(inline-state,如 window.__NUXT__)与 data-page(Inertia)里取结构化数据(#114)。
  • 降级带可行动信息:meta.actionable = {reason, detected, next_steps},让调用方知道"为什么降级、看到了什么、还能试什么";caps 同时暴露 SPA 支持面(#115)。
  • SPA 样本集与「有效信息获取率」基线:docs/SPA-BASELINE.md + 可执行的离线基线测试(#119)。
  • 受限内置 JS 引擎(ADR-0005):crates/webctl-js 用纯 Rust 的 Boa 执行页面内联脚本,配套最小 DOM/BOM 垫片与 render();
    沙箱零宿主能力(无网络 / 文件 / 子进程 / 定时器,动态 import fail-closed),限值覆盖 loop / recursion / stack 与输入预算。
  • js_render 开关(默认关闭) 与引擎接线:开启后 extract 等工具先渲染再解析;caps.js 如实区分 enabled(调用方是否开启)与 wired(是否真的接线)。
  • CI 重写:三平台矩阵(ubuntu / macos / windows)、合并安全守卫(全量 --locked、每作业超时、并发取消、最小权限、#[ignore] 零容忍、工作区洁净断言)、
    失败精准定位为 file:line:col 的 GitHub 注解 + 作业摘要;配套 docs/CI.md 与 docs/TESTING.md §1 的通道映射。

Changed

  • CI 性能:guards 作业加 Rust 缓存(热运行 146s → 43s);release 构建(L2)只在 Linux 上跑(Windows 367s → 251s);日志仅在失败/取消时上传。
    总墙钟热缓存 373s → 257s(−31%);覆盖面变化(PR CI 不再验证 macOS/Windows 的 release profile 编译)已如实登记在 docs/CI.md §7.3。

Fixed

  • 安全:修掉沙箱的一处真实逃逸——Boa 默认模块加载器以进程 CWD 为根,页面脚本可用相对 import() 真实读取宿主文件(#127)。

已知仍在评审中、尚未进入本版的改动:doc_text / json_query / download 在 JS 页的降级继承(#125,PR #139 待合)。

  • 最小 DOM:解析器补 RAWTEXT(script/style/textarea/title 按原文处理)、序列化函数防止被页面改写、垫片避开 Annex B 的 substr。
  • CI:dist 安装方式修正(cargo-dist 已更名 dist,crates.io 上无 0.33.0;改用官方脚本 + sha256 固定 + 版本断言),修掉 main 上长期红灯的 static 作业(#140)。

达成与未达成(按 PLAN §5.3 的口径,逐条分清)

  • 验收锚点已达成(PLAN §5.3 第 1 条:该页必须 DEGRADED 并说明原因,不得「成功但空」):quotes.toscrape.com/js/ 返回 DEGRADED + degraded_from + meta.actionable ✓。
  • 能力目标只对内联脚本页达成:开启引擎后该页仍取不到内容 ✗,原因是它的内联脚本依赖外链 jQuery
    (ReferenceError: $ is not defined)。本版让"内容由内联脚本生成"的页面可取,让"依赖外部 JS 库"的页面如实降级。
    是否执行同源外链脚本见 #137。
  • 引擎限值只有 loop / recursion / stack 与输入预算;堆内存与墙钟不设限(Boa 0.20 不提供这些 API),归属决策见 #130。
  • musl 静态体积基线待用真实发布资产回填(本机无 Bootlin 工具链,未编造数字)。

webctl 0.1.2

Install webctl 0.1.2

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Thatgfsj/webctl/releases/download/v0.1.2/webctl-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/Thatgfsj/webctl/releases/download/v0.1.2/webctl-installer.ps1 | iex"

Download webctl 0.1.2

File Platform Checksum
webctl-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
webctl-x86_64-apple-darwin.tar.xz Intel macOS checksum
webctl-x86_64-pc-windows-msvc.zip x64 Windows checksum
webctl-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
webctl-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

webctl-mcp 0.1.2

Install webctl-mcp 0.1.2

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Thatgfsj/webctl/releases/download/v0.1.2/webctl-mcp-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/Thatgfsj/webctl/releases/download/v0.1.2/webctl-mcp-installer.ps1 | iex"

Download webctl-mcp 0.1.2

File Platform Checksum
webctl-mcp-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
webctl-mcp-x86_64-apple-darwin.tar.xz Intel macOS checksum
webctl-mcp-x86_64-pc-windows-msvc.zip x64 Windows checksum
webctl-mcp-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
webctl-mcp-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

0.1.1 - 2026-10-17

Choose a tag to compare

@github-actions github-actions released this 17 Oct 10:47
569acb9

Release Notes

Added

  • CI 增加 musl-static 作业:每次 PR 用固定版本 Bootlin 2026.08-1 musl C++ 工具链
    (GCC 15.3.0 / musl 1.2.6,SHA256 每次运行都校验)构建 webctl/webctl-mcp,
    并用 file/ldd/readelf 断言静态(#90)。
  • x86_64-unknown-linux-musl 恢复到 cargo-dist 发布矩阵,本版起产出 musl 静态资产。
  • L4 性能基线通道(#83):
    crates/webctl-web/examples/perf_probe.rs(确定性自生成输入)与 scripts/perf-baseline.sh
    (相对基线 + 门槛,--record/--check),覆盖单测 30s 挂死守卫抓不到的 [~5s, 30s) 档。
  • CI 行数门禁(#41 / #24):
    scripts/pr-size.sh 作为唯一口径实现,pr-size 作业在计入 >1000 行时失败,
    维护者批准后打 lines: exempt 标签放行。
  • docs/DSH-INTEGRATION.md(#28):
    DSH MCP 的 7 条硬约束逐条核对(指令字节数、探测/并发启动、toolOrder、预算、会话归属)。
  • docs/MIGRATION.md 补记旧仓处置:README 顶部迁移提示 + 归档(#26)。

Changed

  • MCP 侧 JS 降级传播接线并收口 SEC-09(#82):
    search/links/tables/forms 的零结果接入与 CLI/库同一套降级判定;删除 PR 11 留的
    交接常量与 #[ignore] 哨兵;新增跨路径一致性用例与 MCP 侧脱敏的隔离用例。
  • README(中英)、RELEASE、ACCEPTANCE、TESTING 与体积基线同步为如实口径;
    「调用预算 60 秒(MCP-09)/ 请求预算 30 秒(timeout_ms)」两处措辞与代码对齐。

Fixed

  • scripts/install-musl-toolchain.sh 改为每次运行都校验工具链 SHA256(原先缓存命中时整段跳过,
    与脚本头"每次校验"的声称矛盾),并写明该工具链属 TOFU 信任(无 GPG、不从源码重建)。
  • 测试的 #[ignore] 由 3 条降为 0 条:DOC-12 改为真实调用 doc_text/json_query;
    与 tests/mcp14.rs 重复的 MCP-14 占位删除。

已知限制

  • 未在真实 DSH 里挂载并调用 mcp__webctl__*(docs/DSH-INTEGRATION.md §5 已登记);
  • 未做 Alpine/容器干净环境 E2E(构建机无 Docker/podman);静态性证据为 ldd + readelf -d 无 NEEDED + env -i 冒烟;
  • aarch64-unknown-linux-musl 未纳入发布矩阵;
  • L4 性能通道是手动通道(发布前必跑),对机器负载敏感(有效门槛见 docs/TESTING.md §6.11)。

webctl 0.1.1

Install webctl 0.1.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Thatgfsj/webctl/releases/download/v0.1.1/webctl-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/Thatgfsj/webctl/releases/download/v0.1.1/webctl-installer.ps1 | iex"

Download webctl 0.1.1

File Platform Checksum
webctl-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
webctl-x86_64-apple-darwin.tar.xz Intel macOS checksum
webctl-x86_64-pc-windows-msvc.zip x64 Windows checksum
webctl-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
webctl-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

webctl-mcp 0.1.1

Install webctl-mcp 0.1.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Thatgfsj/webctl/releases/download/v0.1.1/webctl-mcp-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/Thatgfsj/webctl/releases/download/v0.1.1/webctl-mcp-installer.ps1 | iex"

Download webctl-mcp 0.1.1

File Platform Checksum
webctl-mcp-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
webctl-mcp-x86_64-apple-darwin.tar.xz Intel macOS checksum
webctl-mcp-x86_64-pc-windows-msvc.zip x64 Windows checksum
webctl-mcp-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
webctl-mcp-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 17 Oct 07:15
f50ce69

webctl 0.1.0

Install webctl 0.1.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Thatgfsj/webctl/releases/download/v0.1.0/webctl-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/Thatgfsj/webctl/releases/download/v0.1.0/webctl-installer.ps1 | iex"

Download webctl 0.1.0

File Platform Checksum
webctl-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
webctl-x86_64-apple-darwin.tar.xz Intel macOS checksum
webctl-x86_64-pc-windows-msvc.zip x64 Windows checksum
webctl-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

webctl-mcp 0.1.0

Install webctl-mcp 0.1.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Thatgfsj/webctl/releases/download/v0.1.0/webctl-mcp-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/Thatgfsj/webctl/releases/download/v0.1.0/webctl-mcp-installer.ps1 | iex"

Download webctl-mcp 0.1.0

File Platform Checksum
webctl-mcp-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
webctl-mcp-x86_64-apple-darwin.tar.xz Intel macOS checksum
webctl-mcp-x86_64-pc-windows-msvc.zip x64 Windows checksum
webctl-mcp-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum