Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 57 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,66 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).

Starting from 0.2.0, CLI / Extension / DSH Plugin share the same version number.

## [Unreleased]
## [0.4.0] - 2026-10-30

### Changed

- **Breaking — extension compatibility:** the extension now requires daemon
protocol 1.6 or later; CLI/daemon 0.3.3 uses protocol 1.3 and cannot connect.
Update the CLI and restart the running daemon before updating the extension,
then update the DSH plugin. CLI/daemon and extension 0.4.0 use protocol 1.7.
- **Breaking — shared browser control:** new sessions and their task tabs enable
human/agent collaboration automatically. After initial navigation, synchronize
with `bsk cooperate sync` and pass its single-use `--context` to each action;
DSH uses `bsk_session action:sync` and `contextId`. Human input or changed page
evidence can revoke a pending action; synchronize and reconsider the result
instead of replaying it. Reload the updated skill in existing conversations.
- Moving any controlled tab out of its original Agent Window ends the whole
session, preserves pages in place and removes control indicators. Moving the
tab back does not restart the task. Normal session stop preserves pages with
human participation and cleans up untouched task-created pages.
- macOS CLI releases require Developer ID signing and Apple notarization for
both architectures, alongside the existing Windows EV signature checks.
`Publish CLI` verifies both platforms before publishing the complete release;
archive names and installation commands remain unchanged.
- English and Chinese privacy policies cover shared-control observations,
explicitly saved observation files, incognito tasks and `tabGroups`. Upgrade
and publishing instructions use CLI-first rollout for this compatibility change.

### Added

- Human/agent collaboration with visible control indicators, manual hold and
resume, bounded activity evidence, page-change guards and explicit decision
regions. Native JavaScript dialogs participate in control and recovery.
- Native drag interactions, including cross-origin frame targets, and a
click–move–click mode for selecting ranges. CLI and DSH expose the new actions.
- `bsk step` executes one chosen action, optionally waits for an element and then
synchronizes, preserving the action receipt if a later stage fails. Explicit
observation saving, baseline reuse and `bsk view` let agents read and search
historical evidence locally without another browser call. DSH exposes these
through `step`, `view`, `saveFull` and baseline options.
- Incognito Agent Windows through `session start --incognito`, with explicit
browser incognito permission and no borrowing of ordinary tabs. Incognito
windows in one profile share their incognito login state.
- Orange BrowserSkill tab groups mark controlled Agent Window tabs using the
new `tabGroups` permission; grouping is removed when the task ends.

### Fixed

- Browser interactions retain current element references for dynamic menus,
dispatch shadow-DOM input events correctly, handle plus-key chords, and reject
select controls that become disabled during focus. Extraction respects
`content-visibility`, and observation token estimates and evidence scope are
more consistent.
- Website debugging preserves failed request-body metadata and primitive console
exceptions. Video capture respects human control, and playback regressions wait
for decoded frames before checking colors.
- Windows DSH child-process cancellation preserves its termination grace period;
remote authorization handles a busy store, and WebSocket connection limits
bound incoming peers. Foreground daemon consoles remain visible.
- Browser evaluation scaffolding handles Windows cross-drive paths, relative
import URLs and long run IDs; child output preserves UTF-8. Extension types are
prepared during dependency installation.
- Extension: explain when the running bsk daemon is too old to connect, with
its version, a copyable update command and restart guidance in the popup.
A toolbar warning and a notification make the problem visible before opening
Expand Down
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ members = [
default-members = ["crates/bsk-cli"]

[workspace.package]
version = "0.3.3"
version = "0.4.0"
edition = "2024"
rust-version = "1.85"
license = "MIT"
Expand Down Expand Up @@ -43,7 +43,7 @@ rand = "0.8"
uuid = { version = "1", features = ["v4", "serde"] }

# Workspace crates (version required for `cargo publish` of dependents)
bsk-protocol = { version = "0.3.3", path = "crates/bsk-protocol" }
bsk-protocol = { version = "0.4.0", path = "crates/bsk-protocol" }

[profile.release]
strip = "symbols"
Expand Down
14 changes: 11 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,13 @@ These and other agents that can run shell commands use the same **`bsk` CLI**. *
| Your goal | What BrowserSkill provides |
| --- | --- |
| **Work where you are already signed in** | Read documents, search internal sites, and complete web workflows with the browser's existing login state. |
| **Turn instructions into browser actions** | Read page text and controls, click, type, fill forms, and manage tabs. Capture viewport or full-page screenshots; upload and download files in local mode. |
| **Stay in control of the task** | Follow the agent in its own window, explicitly borrow an existing tab, or take over for login, verification, and other steps that need you. |
| **Turn instructions into browser actions** | Read page text and controls, click, type, fill forms, drag items, select ranges, and manage tabs. Capture viewport or full-page screenshots; upload and download files in local mode. |
| **Stay in control of the task** | Work alongside the agent with shared control, pause it while you edit, and let it reconcile your changes before continuing. Tasks remain visible in their own window; existing tabs can be explicitly borrowed. |
| **Take web data with you** | Export loaded tables and lists as JSON/CSV, with column names, page/frame sources, merged-cell metadata, and explicit coverage. [Structured extraction](docs/structured-extraction.md) |
| **Find the evidence behind a failure** | Connect actions to requests, response bodies, console messages, and page changes. Inspect performance, slow APIs, and suspected duplicate requests; test a hypothesis with explicit HTTP rules or request replay. [Website debugging](docs/website-debugging.md) |
| **Keep a replay of the work** | Record one authorized task tab as a silent MP4, then preview, save, or delete it from the extension. [Task video recording](docs/video-recording.md) |
| **Continue when the page is ready** | Wait for a requested element condition with an explicit timeout before the next step. [Element waits](docs/wait-for-element.md) |
| **Reuse what you already observed** | Execute one chosen action and synchronize with `step`; explicitly save the full observation, then search or read it with `view` without another browser capture. [Steps and saved observations](crates/bsk-cli/skill/references/step-and-cache.md) |
| **Use the right browser for the job** | Name browser instances, bind a task to a specific profile, or pair a server-side agent with the browser on your computer. [Browser profiles](docs/browser-profiles.md) |
| **Review what happened** | Reopen browser-local debugging history, export evidence as JSON, or enable a separate operation audit to review task activity. [Operation audit](docs/operation-audit.md) |

Expand Down Expand Up @@ -197,7 +198,7 @@ In WorkBuddy/CodeBuddy, or hosts that reap command children, the agent should re

The [DSH plugin](packages/dsh-plugin-browserskill/README.md) adds native `bsk_*` tools, browser task previews, and screenshot results to the DeepSeek Harness Web UI. It uses the same `bsk` CLI and extension and includes its own BrowserSkill skill.

**Upgrading to 0.3.3:** update the CLI and extension before the plugin. The six `browser_*` tools have been renamed to `bsk_*`, without aliases for the old names. Update custom tool calls and policies, restart the DSH profile, and invoke `/browser-skill` again in existing conversations. See the [migration guide](packages/dsh-plugin-browserskill/README.md#breaking-tool-api-migration-033).
**Upgrading to 0.4.0:** update the CLI and running daemon first, then the extension and plugin. Restart the DSH profile and invoke `/browser-skill` again so existing conversations load the shared-control instructions and new drag, step and saved-observation tools. See the [0.4.0 upgrade guide](packages/dsh-plugin-browserskill/README.md#upgrading-to-040); installations older than 0.3.3 also need the [tool-name migration](packages/dsh-plugin-browserskill/README.md#breaking-tool-api-migration-033).

With DeepSeek Harness, pnpm, and `bsk` installed and the extension connected, add the plugin to your profile:

Expand Down Expand Up @@ -269,6 +270,8 @@ The built-in server supports device pairing, renewal, and revocation. The `bsk u

By default, an Agent Window shares the selected profile's login state; **it is not a separate account or security sandbox**. Agents can act with the permissions of the signed-in websites, so choose the tasks and agent you trust.

New tasks enable shared control automatically. BrowserSkill observes page changes and supported manual activity in controlled tabs so the agent can yield while you edit and synchronize before acting again. This coordination works even when debugging, audit and video recording are off. Use the task's manual hold and resume controls to keep control while you work. [Shared-control guide](crates/bsk-cli/skill/references/cooperation.md)

The extension has two independent **Automation settings**, both enabled by default:

| Setting | What it controls |
Expand All @@ -285,13 +288,18 @@ BrowserSkill does not operate a mandatory cloud service or collect product telem
| **Website debugging** | The current browser profile, including in remote mode | Retains captured evidence, including available bodies and field values. Stopped records expire after 30 days, with a 50-record / 50 MiB retention budget and earlier eviction when necessary. Stop capture before deleting a record. |
| **Operation audit** | The daemon's host, under `BSK_HOME/audit` | Off by default. Records task and operation metadata, excluding input values, page bodies, screenshots, and file contents. Ended tasks expire after 30 days. |
| **Task video** | The current browser profile; exported copies at the chosen destination | Opt-in, silent capture of one authorized tab, limited to 10 minutes / 256 MiB per video. Recordings expire 24 hours after creation; the temporary video budget is 1 GiB. The library supports preview, export and deletion. |
| **Saved observations and step results** | An explicitly chosen JSON path on the CLI machine, including a remote server | `--save-full` / DSH `saveFull` saves the complete reply before display filtering. Files have no automatic expiry; delete them on that machine. `view` reads historical evidence without refreshing the browser state. |

These features offer export and deletion. Stopping a task or disconnecting does not delete retained history or videos; expiration is applied during access or cleanup. Exported copies and copies already received by an agent or gateway must be managed separately. Known secrets are filtered from debugging evidence, but redaction cannot guarantee that all sensitive data is removed. Video frames are not automatically redacted; review visible content before sharing.

[Privacy policy](apps/extension/PRIVACY.md) · [Operation audit](docs/operation-audit.md) · [Debugging retention and limits](docs/website-debugging.md#history-and-export)

## Updating

**For 0.4.0, update the CLI and restart its running daemon before updating the extension; update DSH last.** The new extension requires daemon protocol 1.6 or later, while CLI/daemon 0.3.3 uses 1.3. Updating only the binary leaves a foreground or externally managed daemon on its old version until its host restarts it. Use matching 0.4.0 components for the new features.

Existing scripts must follow the [shared-control workflow](crates/bsk-cli/skill/references/cooperation.md): after initial navigation, synchronize with `bsk cooperate sync`, pass its `--context` to one action, then synchronize again. Reload the updated skill instead of continuing with old instructions.

Finish active browser tasks, then update the CLI:

```sh
Expand Down
14 changes: 11 additions & 3 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,13 @@ https://github.com/user-attachments/assets/959cb520-80ba-4b9e-b6d8-d94523b03693
| 你想完成的事 | BrowserSkill 如何帮忙 |
| --- | --- |
| **用已有账号,做网站任务** | 复用浏览器登录态,读取文档、搜索内部网站,完成需要登录的网页流程。 |
| **一句指令,落实到操作** | 读取页面文本和控件,点击、输入、填写表单、管理标签页;截取可见区域或完整页面,在本地模式上传和下载文件。 |
| **Agent 操作,你来掌控** | 任务在独立窗口中可见运行,也可显式借用已有标签页;登录、验证等需要人工参与的步骤,由你接手。 |
| **一句指令,落实到操作** | 读取页面文本和控件,点击、输入、填写表单、拖拽元素、选择范围、管理标签页;截取可见区域或完整页面,在本地模式上传和下载文件。 |
| **Agent 操作,你来掌控** | 共享控制让你与 Agent 协作;编辑时暂停 Agent,让它核对你的改动后继续。任务在独立窗口中可见运行,也可显式借用已有标签页。 |
| **网页表格,导出即用** | 将已加载的表格和列表导出为 JSON/CSV,保留列名、页面/frame 来源、合并单元格信息和完整性标记。[结构化提取](docs/structured-extraction.md) |
| **操作出错,找到线索** | 关联操作、请求、响应正文、控制台和页面变化,检查性能、慢接口与疑似重复请求;用明确配置的 HTTP 规则或请求重放验证判断。[网站调试](docs/website-debugging.md) |
| **录下过程,随时回看** | 将一个已授权的任务标签页录制为无声 MP4,在扩展中预览、保存或删除。[任务视频录制](docs/video-recording.md) |
| **页面就绪,再做下一步** | 设置明确的超时,等待目标元素满足指定条件后再继续操作。[元素等待](docs/wait-for-element.md) |
| **已经观察,按需复用** | 用 `step` 执行一个已决定的动作并同步状态;明确保存完整观察结果,再用 `view` 搜索或分段阅读,无需重新采集页面。[步骤与观察结果保存](crates/bsk-cli/skill/references/step-and-cache.md) |
| **浏览器与账号,选对再开工** | 为浏览器实例命名,让任务绑定指定 Profile;也可以让服务器上的 Agent 连接你电脑上的浏览器。[浏览器 Profile](docs/browser-profiles.md) |
| **任务结束,记录可查** | 重新打开浏览器本地的调试历史、导出 JSON,或单独开启操作审计,查看任务执行记录。[操作审计](docs/operation-audit.md) |

Expand Down Expand Up @@ -197,7 +198,7 @@ bsk session stop <id>

[DSH 插件](packages/dsh-plugin-browserskill/README.md) 在 DeepSeek Harness Web UI 中提供原生 `bsk_*` 工具、浏览器任务预览和截图结果。它使用同一套 `bsk` CLI 与扩展,并自带 BrowserSkill skill。

**升级到 0.3.3:**先更新 CLI 和扩展,再更新插件。六个 `browser_*` 工具已改名为 `bsk_*`,不保留旧名称别名。请更新自定义工具调用和策略,重启 DSH profile,并在已有对话中重新调用 `/browser-skill`。详见[迁移指南](packages/dsh-plugin-browserskill/README.md#breaking-tool-api-migration-033)。
**升级到 0.4.0:**先更新 CLI 和正在运行的 daemon,再更新扩展和插件。重启 DSH profile,并重新调用 `/browser-skill`,让已有对话加载共享控制指引及新增的拖拽、step 和观察结果读取工具。详见 [0.4.0 升级指南](packages/dsh-plugin-browserskill/README.md#upgrading-to-040);从 0.3.3 以前的版本升级时,还需要完成[工具名称迁移](packages/dsh-plugin-browserskill/README.md#breaking-tool-api-migration-033)。

安装好 DeepSeek Harness、pnpm 和 `bsk`,连接扩展后,将插件加入你的 profile:

Expand Down Expand Up @@ -262,6 +263,8 @@ bsk session start --browser "工作账号" --no-focus --json

## 浏览器控制与隐私

新任务默认启用共享控制。BrowserSkill 会观察受控标签页中的页面变化和受支持的手动活动,让 Agent 在你编辑时让出控制权,并在再次操作前同步状态。即使调试、审计和视频录制均关闭,这种协调仍会进行。你可以通过任务的手动接管与恢复功能决定何时继续。[共享控制指南](crates/bsk-cli/skill/references/cooperation.md)

代理窗口共享所选 Profile 的登录态,**它不是独立账号,也不是安全沙盒**。Agent 可以使用已登录网站授予的权限执行操作,请选择你信任的 Agent 和任务。

扩展提供两个默认开启、相互独立的**自动化设置**:
Expand All @@ -280,13 +283,18 @@ BrowserSkill 没有必须使用的云服务,也不收集产品遥测。自动
| **网站调试** | 当前浏览器配置中,远程模式也一样 | 保存采集到的数据,包括可获取的正文和字段值。已停止记录 30 天后过期,保留预算为 50 条/50 MiB,达到限制时可能提前清理。删除记录前需先停止采集。 |
| **操作审计** | daemon 所在主机的 `BSK_HOME/audit` | 默认关闭。记录任务与操作元数据,不记录输入值、页面正文、截图或文件内容。已结束任务 30 天后过期。 |
| **任务视频** | 当前浏览器配置;导出副本保存在指定位置 | 主动开启后,录制一个已授权标签页的无声视频;单个视频上限为 10 分钟/256 MiB,创建 24 小时后过期,临时视频预算为 1 GiB。视频库支持预览、导出和删除。 |
| **观察结果及 step 响应** | CLI 所在计算机上明确指定的 JSON 路径,也可能是远程服务器 | `--save-full`/DSH `saveFull` 会在显示过滤前保存完整响应。文件不会自动过期,需要在该计算机上删除;`view` 读取历史数据,不会刷新浏览器状态。 |

这些功能均支持导出和删除。结束任务或断开连接不会删除保留的历史或视频,过期数据会在访问或清理时处理。导出的文件、Agent 或网关已经收到的副本需要另行管理。调试数据会过滤已知敏感信息,但不能保证完全脱敏。视频画面不会自动脱敏,分享前请检查可见内容。

[隐私政策](apps/extension/PRIVACY.zh-CN.md) · [操作审计](docs/operation-audit.md) · [调试历史与保留限制](docs/website-debugging.md#history-and-export)

## 升级

**升级到 0.4.0 时,先更新 CLI 并重启正在运行的 daemon,再更新扩展,最后更新 DSH。** 新扩展要求 daemon 协议至少为 1.6,而 CLI/daemon 0.3.3 使用 1.3。仅替换二进制不会更新通过前台或外部进程管理器运行的旧 daemon,仍需在所属宿主中重启。使用新功能时请配套使用 0.4.0 组件。

已有脚本需要遵循[共享控制流程](crates/bsk-cli/skill/references/cooperation.md):首次导航后执行 `bsk cooperate sync`,将返回的 `--context` 用于一次操作,然后重新同步。请加载新版 skill,避免继续使用旧指令。

先结束正在执行的浏览器任务,再更新 CLI:

```sh
Expand Down
Loading
Loading