Skip to content

Latest commit

 

History

History
141 lines (108 loc) · 7.57 KB

CHANGELOG.md

File metadata and controls

141 lines (108 loc) · 7.57 KB

Changelog

All notable changes to Agent Browser are recorded here. The format follows Keep a Changelog, and this project uses Semantic Versioning.

0.2.3 - 2026-10-01

Added

  • An observer-authorized, image-only POST /browser/view-frame endpoint and matching Python/Node client methods for the authenticated Aether RC browser relay. Capture is limited to one frame per second per owned session, omits page text and form values, and does not consume model vision steps. The local noVNC port remains loopback-only and must not be tunneled.

0.2.2 - 2026-09-04

Added

  • server.json at the repository root, so Agent Browser can be published to the official MCP Registry as io.github.AetherAI3/agent-browser. It lists both clients — the npm and PyPI aether-browser packages — each started as aether-browser mcp over stdio, with AGENT_BROWSER_URL and the two tokens declared as optional environment variables.
  • Registry ownership proof carried by the packages themselves: an mcpName field in the npm client's package.json, and an mcp-name marker at the top of the PyPI client's README, which is that package's long description. The registry verifies both against live package metadata, so this is the first release that can be published to it.

Changed

  • Version bumped to 0.2.2 across the runtime, both clients, the image label, and the Compose tag. No runtime behaviour changes, and the API contract stays api_version: "v1".

0.2.1 - 2026-09-04

Fixed

  • Reconciled the public demo record: current continuous media and the superseded v0.1 still montage are now clearly scoped, with checksums and the limits of the retained public provenance.
  • Updated the launch kit, repository metadata, and release copy to cover the Python client, PyPI, and both MCP servers instead of describing the old v0.1.0 release candidate.
  • Prepared the patch release so its tag is created only after the runtime, evidence-rebind, and manifest commits close; this keeps the tagged source archive and release evidence coherent.

0.2.0 - 2026-09-03

Added

  • MCP server, in both clients, under the same nine tool names: aether-browser mcp (Python) and npx aether-browser mcp (Node) serve one Agent Browser session to any MCP client over stdio, so Claude Code, Claude Desktop, Cursor and Windsurf can drive the session a human is watching. The JSON-RPC transport is implemented directly in clients/node/src/mcp.js and clients/python/src/aether_browser/mcp.py, so neither client gains a runtime dependency. Documented in docs/MCP.md.
  • The MCP server owns the session id, so the model never carries it, and every response that can carry the live view URL does. Its initialize instructions tell the model to stop and ask for a human takeover at a login, a payment, or a 2FA prompt rather than guessing.
  • A packaging test asserts the two MCP servers expose an identical toolset, so the Node and Python servers cannot drift apart without failing CI. Each server also reports the version its own package declares, with a test per client, so a release bump cannot leave an MCP server advertising a stale version.

Changed

  • The README demo is a real recorded run rather than the previous montage of three static frames, and it plays inline instead of linking to a file. docs/DEMO_EVIDENCE.md records how it was made and states its limits.
  • Documentation that describes an ongoing property of the pre-1.0 line — the unauthenticated loopback-only noVNC surface, the closed API contract, the locally built container — now says v0.x rather than v0.1, so those statements stay true across releases instead of silently going stale on every bump. Statements that name the release itself say v0.2.0.
  • SECURITY.md no longer describes the project as preparing its first release candidate, and its supported-version table names the current release line.

0.1.0 - 2026-09-03

First stable release of the v1 API contract and both clients.

Added

  • Python client and CLI in clients/python, published to PyPI as aether-browser — the same distribution name, commands, and closed v1 contract as the npm client, released version for version with it (0.1.0rc1 is npm's 0.1.0-rc.1). No runtime dependencies: the transport is urllib from the standard library. Requires Python 3.10 or newer.
  • pypi-publish.yml, the exact sibling of npm-publish.yml: manual dispatch, the same exact-current-main ref proof, a default dry run, and PyPI Trusted Publishing (OIDC) instead of a stored token.
  • python-client CI job covering unit tests, strict typing, wheel contents, and a server-free CLI run. Its packaging tests read clients/node/package.json, so a version or command that drifts between the two clients fails in CI rather than on a registry.

Changed

  • Both clients leave the release-candidate line: npm 0.1.0-rc.1 and PyPI 0.1.0rc1 become 0.1.0, so npm install aether-browser and pip install aether-browser need no prerelease flag. The CLI's up now fetches the v0.1.0 source tag.

0.1.0-rc.1 - 2026-09-02

First public, source-only release candidate, published as Agent Browser by Aether AI.

Added

  • Single-session runtime that owns one headed Google Chrome Stable instance behind a closed v0.1 HTTP API: session create/end, navigation, structured snapshots, and bounded interaction (click, type, press, scroll).
  • Separate controller and observer authorization roles, with fail-closed capacity rejection.
  • Live human observation and takeover of the same session over noVNC.
  • Egress policy that refuses direct SSRF targets and out-of-policy redirects, keeps downloads non-persistent, and bounds popups.
  • Deterministic teardown covering browser processes, the browser profile, and the container.
  • Docker Compose quickstart that binds user-facing listeners to numeric loopback.
  • Release evidence pipeline: rootless image build, SBOM and vulnerability scan, isolated acceptance against the exact image ID, quickstart reproduction, and a strict repository gate.

Naming

The project is Agent Browser by Aether AI, and this is the first candidate published under that name. The repository is AetherAI3/agent-browser, the Python package is agent_browser, the distribution is agent-browser, and the runtime environment prefix is AGENT_BROWSER_*.

An earlier candidate was briefly published under the working name "Aether Browser" before the rename settled. It was withdrawn rather than kept alongside this one, so v0.1.0-rc.1 is the only release and it carries the final naming throughout.

Security

  • The v0.1 noVNC surface is unauthenticated and is intended only for numeric loopback on a machine you control. See docs/SECURITY-MODEL.md.
  • Grype runs against the exact image with --fail-on high --only-fixed. A green build means no fixed high-or-higher findings, not an absence of vulnerabilities; see docs/RELEASE_EVIDENCE.md for the full posture.