Skip to content

Releases: NoDeskAI/browser-pilot

Browser Pilot v0.0.9

25 May 17:27

Choose a tag to compare

Browser Pilot v0.0.9

总结

这一版让 Session 的占用状态更符合直觉:创建和启动不会再自动占用,只有 Agent 或用户真正拿到 lease 后才显示为占用。

同时,Docker Compose 部署移除了 backend 上的 Docker socket 挂载,改由内部 runtime-worker 管理浏览器容器,部署边界更清晰。

亮点

  • Session 创建和启动容器不再自动占用设备。
  • 会话卡片新增占用状态和占用方展示,并优化了 ID、URL、网络出口等信息的展示与复制体验。
  • 删除 Session 时会提示当前占用方;删除仍可继续,并会使 active lease 失效。
  • 修复删除 Session 被租约状态拦截的问题。
  • 新建 Session 返回 12 位短 ID,旧 UUID 仍然兼容。
  • CLI 和 Web 文档同步更新短 ID 与 Agent 接入说明。
  • 指纹运行状态新增 WebGL2 可用性展示。
  • Docker Compose 新增内部 runtime-worker,backend 不再直接挂载 Docker socket。

升级注意

  • Docker Compose 部署需要在 .env 中设置 BROWSER_RUNTIME_CONTROL_TOKEN
  • 升级后,历史 initial lease 会被撤销;需要操作浏览器的 Agent 应重新 acquire lease。

一键升级

已有本地 clone 的用户,可以在项目目录执行:

git fetch --tags origin && git checkout v0.0.9
if ! grep -q '^BROWSER_RUNTIME_CONTROL_TOKEN=' .env 2>/dev/null; then
  printf '\nBROWSER_RUNTIME_CONTROL_TOKEN=%s\n' "$(openssl rand -hex 32)" >> .env
fi
docker compose build && docker compose up -d

数据库迁移会在 backend 启动时自动执行,正常升级不需要手动运行 Alembic 命令。

Tag: https://github.com/NoDeskAI/browser-pilot/releases/tag/v0.0.9

完整变更: v0.0.8...v0.0.9

Browser Pilot v0.0.8

22 May 10:33

Choose a tag to compare

Browser Pilot v0.0.8

总结

这一版是 Browser Pilot 接入 Agent Device 协议后的重要版本。Browser Pilot 现在将每个 Session 作为一个受治理的 Agent Device 暴露出来,补齐 Level 1 Device Governance 的租约、状态、审计、失败语义和证据语义,让外部 Agent 可以更安全、可判断地复用浏览器会话。

同时,本版本继续完善 CLI Agent 接入、observe 视觉识别、网络出口管理、Session 文件管理和会话列表体验。

亮点

  • 基于 Agent Device 协议实现 Level 1 Device Governance:Session 即 Device,session iddevice id
  • 新增 Agent Device 控制面:支持查看设备、acquire / renew / release / reclaim lease、查询 audit。
  • 浏览器副作用动作纳入租约治理:动作响应会返回结构化 agentDevice 字段,包括 executionStatussideEffectStatusfailureCategoryauditStatusevidenceStatusnextStep
  • 补齐审计与证据语义:成功、失败、拒绝、租约过期、runtime 鉴权失败等路径都会进入 audit;截图、文件和页面动作会返回可判断的 evidence 状态。
  • /agent-devices 页面新增协议状态、合规级别、provider、policy、lease、audit、evidence/failure 状态展示。
  • CLI 增加 Agent Device / lease / audit 命令,并补齐 Agent 自动接入文档,明确 Browser Pilot 当前支持 Level 1,不支持 Level 2 control transfer / request_intervention / handoff / Human 接手。
  • observe 增强视觉识别能力,增加视觉模式和 YOLO UI detector fallback,提高复杂页面元素识别稳定性。
  • CLI 补齐 Network Egress 管理能力,支持列出、创建、更新、检查和删除网络出口。
  • 优化 Session 文件和删除体验:修复空文件选择项、默认选择删除会话关联文件、增加长耗时删除提示,并修复 Session 文件列表可见性。
  • 修复未运行 Session 详情页被自动启动的问题。
  • 修复会话卡片中“网络”标签换行成竖排的显示问题。
  • start.sh 增加本地依赖自动安装,降低新环境启动成本。

完整变更: v0.0.7...v0.0.8

Browser Pilot v0.0.7

14 May 21:25

Choose a tag to compare

Browser Pilot v0.0.7

Release: https://github.com/NoDeskAI/browser-pilot/releases/tag/v0.0.7

总结

本版本完善了 Browser Pilot 的文件管理闭环:Session 删除前会明确提示并处理关联文件,保留的已完成文件会进入全局 Files 页面继续管理;截图 API 和 CLI 也改为默认返回已存入 FileStore 的文件记录和短期签名下载链接,避免默认输出大段 base64,并让 Builtin/S3 两种存储的下载语义保持一致。

亮点

  • 删除 Session 时新增关联文件处理流程:删除前展示文件列表,用户可以选择保留、全删或按文件选择删除。
  • 新增全局 Files 管理:已完成文件可以在 Session 删除后归档保留,并继续在 Files 页面保存、重命名和删除。
  • 优化截图 API/CLI:/api/browser/screenshot 默认返回文件记录和下载地址,不再默认返回大段 base64。
  • 文件下载 URL 改为 15 分钟有效的签名链接:Builtin 使用后端签名 URL,S3 使用预签名 URL,并支持公开下载 endpoint 配置。
  • CLI bpilot screenshot 默认输出 file.url-o 会先写入 FileStore,再从签名 URL 下载本地副本。
  • 修复登录服务错误提示方式,改为前端通知提示。

升级说明

  • 本版本包含新的数据库迁移,后端启动时会自动通过 Alembic 升级。
  • 如果使用 Docker Compose 内置 MinIO,建议配置 MINIO_PUBLIC_ENDPOINT,确保浏览器和 CLI 能访问 S3 预签名下载链接。
  • GET /api/browser/screenshotstore 参数已废弃且无效果;如旧客户端仍需要 base64,请显式追加 includeBase64=true
  • Session-scoped token 不能访问全局 Files API,也不能重新获取已归档文件 URL;已签发的下载 URL 在 15 分钟内仍可能可访问。

完整变更: v0.0.6...v0.0.7

v0.0.6

13 May 17:44

Choose a tag to compare

亮点

  • 新增统一 FileStore 文件产物链路:截图、浏览器下载和 runtime 生成文件统一进入后端管理的 FileStore。
  • 新增 runtime 侧下载捕获:浏览器容器内 file-capture-agent 监听 Chrome 下载完成事件,并通过后端 ingest API 上传;存储凭据只保留在后端。
  • Docker Compose / start.sh 新增内置 MinIO 默认对象存储,方便本地和一体化部署快速启用 S3 兼容存储;应用层仍使用通用 S3 / Built-in Storage 配置。
  • 优化 noVNC 工具栏和下拉交互,修复触发器点击、分隔符、字体和实时速率展示问题。
  • 优化指纹信息查看体验:补齐系统版本显示,长值 tooltip 稳定展示,支持点击复制,并避免复制空值。
  • Settings 页面支持路由化跳转,创建会话入口补齐 hover 提示。

升级说明

  • 本版本包含新的数据库迁移,后端启动时会自动通过 Alembic 升级;不需要手动执行迁移命令。
  • 升级后如果需要回退到 v0.0.5,请使用升级前的数据库备份,旧版本无法识别新的 0013_runtime_file_capture schema。
  • 如果使用 Docker Compose 或 start.sh 的内置 MinIO 存储,需要在 .env 中补充 MINIO_ROOT_USERMINIO_ROOT_PASSWORDMINIO_BUCKET
  • 如果使用外部 S3 / R2 / OSS,可在设置页配置通用 S3 存储;MINIO_* 只用于内置 MinIO bootstrap。
  • 需要重新构建 Selenium 浏览器镜像,以包含新的 file-capture-agent
  • 如果暂时不能更新浏览器镜像,可临时设置 BP_LEGACY_DOCKER_DOWNLOAD_WATCHER=true 使用旧下载捕获 fallback。

验证

  • python -m pytest tests/test_browser_file_routes.py tests/test_db_bootstrap.py tests/test_download_watcher.py tests/test_file_capture.py tests/test_file_capture_agent.py tests/test_file_service.py tests/test_file_store.py tests/test_session_network_behavior.py tests/test_storage_settings.py
  • npm run build

完整变更: v0.0.5...v0.0.6

v0.0.5

07 May 20:29

Choose a tag to compare

正式版重新发布。

主要更新:

  • 统一出口能力收敛:保留 Clash / OpenVPN,移除手填 HTTP/SOCKS 代理入口,避免误导为全流量出口。
  • 数据库启动迁移日志增强:启动时能看到当前 revision、目标 revision 和 pending revisions。
  • 指纹 ready 状态更严格:Direct + 未验证网络画像不再标记为可验收。
  • WebGL 稳定性修复:默认使用更稳定的渲染路径,降低 Chrome 147 WebGL context 不可用风险。
  • CDP 指纹注入修复:首次导航前完成注入后 detach 业务页,避免 Boss / Zhipin 这类站点因持续 CDP 探测触发循环刷新。
  • 品牌 UI 更新:增加 Browser Pilot 顶部栏 Logo、登录/初始化页 Logo 和 favicon。

验证:

  • npm --prefix frontend run build
  • python3 -m py_compile services/selenium-chrome/cdp-fingerprint-agent.py
  • pytest backend/tests/test_windows_like_profile.py backend/tests/test_session_network_behavior.py backend/tests/test_network_egress.py -q
  • 结果:前端构建通过,后端相关测试 43 passed

v0.0.5-rc1

07 May 08:36

Choose a tag to compare

v0.0.5-rc1 Pre-release
Pre-release

Internal RC for Browser Pilot fingerprint runtime validation.

Included:

  • Browser image build and session startup fixes.
  • Session egress and declared network profile management.
  • Chrome 147 WebGL runtime stabilization.
  • Localhost bridge compatibility for in-container browser access.
  • Browser image list dedupe and frontend refresh fixes.

Known RC limitations:

  • Network profile remains unverified by default.
  • ToDetect/Pixelscan still flag timezone/DNS/proxy/masking inconsistencies without trusted egress sync.
  • IPCS can still fail on lat/lon typing.
  • Chrome 147 can still hit Cloudflare validation on CreepJS.

Recommended use: internal validation only; keep Chrome 135 as the safer default until the remaining P0 fingerprint items are fixed.

v0.0.4

28 Apr 19:07

Choose a tag to compare

Highlights

  • Added session-level Network Egress profiles, so sessions can use direct access, manual proxy, Clash, or OpenVPN-based egress from the product UI.
  • Added Network Egress setup in Settings and session creation/toolbar surfaces, making the active route visible instead of hidden in backend config.
  • Improved browser image handling with exact Chrome version selection and duplicate-build protection.
  • Reduced Selenium session noise by disabling Chrome save-password and crash-restore prompts, plus internal WebDriver proxy bypass handling.
  • Fixed CE build compatibility by providing safe EE stubs for optional enterprise modules.
  • Polished session shortcuts and dropdown alignment for smoother daily operation.

Upgrade Notes

  • Run the new database migration for network_egress_profiles before using Network Egress profiles.
  • If using managed OpenVPN egress, build or provide the configured NETWORK_EGRESS_OPENVPN_IMAGE.
  • Runtime artifacts under data/network-egress/ and tmp/ are now ignored by Git.

Validation

  • python -m pytest tests/test_browser_images.py tests/test_session_network_behavior.py tests/test_browser_session.py tests/test_network_egress.py tests/test_windows_like_profile.py
  • npm run build

Full Changelog: v0.0.3...v0.0.4

v0.0.3

27 Apr 18:22

Choose a tag to compare

Highlights

  • Added browser image management so deployments can build, select, and manage browser images from Settings.
  • Added fingerprint pool management and persisted browser language support, including database migrations for the new session and tenant data.
  • Reworked browser fingerprinting with Windows-like runtime profiles, font allowlisting, CDP-based injection, runtime health reporting, and richer fingerprint details in the VNC panel.
  • Changed network fingerprint handling to use declared network metadata first, then hidden/background browser probes for nonblocking reconciliation.
  • Added CLI and API token documentation pages, including separate Manual CLI and Agent CLI access flows.
  • Replaced the bundled Python CLI package with the backend-served zero-dependency shell CLI installer.
  • Added session-scoped API tokens and API token management UI.
  • Improved session creation, delete shortcuts, startup status, dark/light theme behavior, and NoVNC input handling.

Upgrade Notes

  • Run the new Alembic migrations before deploying if your environment does not run migrations automatically: 0004_browser_lang, 0005_fingerprint_pool, 0006_session_scoped_tokens, 0007_browser_images, and 0008_browser_images_unique_tenant_tag.
  • Rebuild the browser image to pick up the new CDP fingerprint agent, font configuration, stealth extension changes, and browser startup script updates.
  • The old Python CLI package under cli/ has been removed. Install the CLI through the backend instead:
curl -fsSL http://localhost:8000/api/cli/install | bash
  • Network profile probing is now nonblocking. For deterministic self-hosted deployments, configure declared worker network metadata with:
    • DEFAULT_NETWORK_COUNTRY_CODE
    • DEFAULT_NETWORK_COUNTRY
    • DEFAULT_NETWORK_REGION
    • DEFAULT_NETWORK_CITY
    • DEFAULT_NETWORK_TIMEZONE
    • DEFAULT_NETWORK_DNS_SERVERS

Fixes

  • Fixed login error handling so disabled accounts, backend failures, and network failures show clearer messages.
  • Fixed frontend action states around browser startup, hibernation, deletion, and NoVNC controls.
  • Fixed multiple fingerprint and network-profile edge cases, including DNS selection, runtime warning propagation, and cache/background reconciliation behavior.

Validation

Validated before release:

pytest tests/test_fingerprint_network.py tests/test_session_network_behavior.py tests/test_windows_like_profile.py
npm run build

The frontend build passes with the existing Vite large chunk warning.

Full Changelog

v0.0.2...v0.0.3

v0.0.2

19 Apr 20:12

Choose a tag to compare

What's New

🎭 Complete Fingerprint Profile System

Each browser session now gets a full, internally consistent hardware identity — not just a noise seed, but a complete device profile covering navigator, WebGL, screen, timezone, and Client Hints.

  • 10 realistic device presets (Windows / macOS / Linux × various GPUs) randomly assigned per session
  • All fingerprint components stay consistent — UA, platform, GPU renderer, timezone, language all match within one profile
  • CDP overrides synchronizedNetwork.setUserAgentOverride and Emulation.setTimezoneOverride now derive values from the profile instead of hardcoded constants
  • View & regenerate in UI — new fingerprint popover in the VNC toolbar shows current profile and allows one-click regeneration

🖥️ UI Improvements

  • Modernized session card design in dashboard
  • Fixed 11 frontend UX issues (layout, spacing, responsiveness)
  • Removed extra padding at bottom of session cards

🐛 Fixes

  • Fixed CE (Community Edition) Docker build and EDITION env var handling
  • Fixed header responsive layout
  • Updated EE submodule (tenant UI improvements)

Full Changelog

v0.0.1...v0.0.2

v0.0.1 — Initial Release

17 Apr 23:35

Choose a tag to compare

Remote browser automation for AI Agents. Each session runs in an isolated Docker container with Chrome, Selenium, anti-bot stealth, and a noVNC viewer — controllable via REST API, CLI, or the built-in web UI.

Highlights

  • Isolated browser sessions — each session gets its own Docker container with Chrome, Selenium WebDriver, and noVNC live viewer
  • Anti-bot stealth — fingerprint spoofing, human-like input patterns, stealth Chrome extensions
  • Three control methods — REST API, bpilot CLI, and built-in web UI
  • Device presets — switch between desktop resolutions and mobile emulation (iPhone, iPad, Galaxy, Pixel)
  • Per-session proxy — configure HTTP/HTTPS/SOCKS4/SOCKS5 proxy per session, changeable anytime
  • Session hibernation — pause/resume browser containers to save resources

Quick Start

Requires Docker (with Compose v2).

git clone https://github.com/NoDeskAI/browser-pilot.git
cd browser-pilot
docker compose build && docker compose up -d

Open http://localhost:8000 to access the web UI.

CLI

pip install bpilot-cli
bpilot config set api-url http://localhost:8000
bpilot session create --name "My Task"
bpilot navigate https://example.com
bpilot observe

License

Apache License 2.0