Releases: NoDeskAI/browser-pilot
Browser Pilot v0.0.9
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
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 id即device id。 - 新增 Agent Device 控制面:支持查看设备、acquire / renew / release / reclaim lease、查询 audit。
- 浏览器副作用动作纳入租约治理:动作响应会返回结构化
agentDevice字段,包括executionStatus、sideEffectStatus、failureCategory、auditStatus、evidenceStatus和nextStep。 - 补齐审计与证据语义:成功、失败、拒绝、租约过期、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
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/screenshot的store参数已废弃且无效果;如旧客户端仍需要 base64,请显式追加includeBase64=true。- Session-scoped token 不能访问全局 Files API,也不能重新获取已归档文件 URL;已签发的下载 URL 在 15 分钟内仍可能可访问。
完整变更: v0.0.6...v0.0.7
v0.0.6
亮点
- 新增统一 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_captureschema。 - 如果使用 Docker Compose 或
start.sh的内置 MinIO 存储,需要在.env中补充MINIO_ROOT_USER、MINIO_ROOT_PASSWORD、MINIO_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.pynpm run build
完整变更: v0.0.5...v0.0.6
v0.0.5
正式版重新发布。
主要更新:
- 统一出口能力收敛:保留 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
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
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_profilesbefore using Network Egress profiles. - If using managed OpenVPN egress, build or provide the configured
NETWORK_EGRESS_OPENVPN_IMAGE. - Runtime artifacts under
data/network-egress/andtmp/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.pynpm run build
Full Changelog: v0.0.3...v0.0.4
v0.0.3
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, and0008_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_CODEDEFAULT_NETWORK_COUNTRYDEFAULT_NETWORK_REGIONDEFAULT_NETWORK_CITYDEFAULT_NETWORK_TIMEZONEDEFAULT_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 buildThe frontend build passes with the existing Vite large chunk warning.
Full Changelog
v0.0.2
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 synchronized —
Network.setUserAgentOverrideandEmulation.setTimezoneOverridenow 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
EDITIONenv var handling - Fixed header responsive layout
- Updated EE submodule (tenant UI improvements)
Full Changelog
v0.0.1 — Initial Release
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,
bpilotCLI, 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 -dOpen 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 observeLicense
Apache License 2.0