Skip to content

Releases: agent-labs-dev/fastbrowse

v0.4.2: chore: 0.4.2 (#80)

Choose a tag to compare

@github-actions github-actions released this 20 Sep 16:11
6de20b3
  • A form is set up in the order that works. Its mode - which tab of a search, which kind of account or
    ticket, which category - decides which fields it has and empties what they hold, so it is chosen before
    any value is typed rather than after, which used to mean typing the values twice. The filters a task asks
    for are set before submitting where the form offers them, because setting one afterwards submits twice,
    and a filter the page only reveals once there are results is set there. On a flight search this removed
    five steps of rework; on a two-package comparison it removed the repeated writes to the search box that
    had made it the most expensive lookup in the suite.

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 20 Sep 14:00
98d366b
  • A secret can be declared for a site rather than for one of its hosts. https://*.example.com covers
    www.example.com, accounts.example.com and example.com itself, which is how one sign-in spans a site:
    the login typed on the account host is the login the shop host asks for. The wildcard
    stands for whole labels only, so it does not cover example.com.evil.test, and neither the scheme nor the
    port is ever wildcarded. An exact origin behaves exactly as before. This reaches the MCP server too
    (--secret NAME=ENV_VAR@https://*.example.com), where each secret keeps the scope it was declared with
    rather than the start page's.
  • ScopedSecrets.per_secret({name: (value, origins)}) holds a person's credentials each scoped to the
    sites it belongs to, for an application that stores them that way. The single-origin constructor is
    unchanged.
  • An IPv6 origin survives being read back. origin_of returned https://::1, which is not a URL any
    parser reads again, so a check against an IPv6 origin could raise rather than answer. The literal keeps its
    brackets.

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 20 Sep 13:29
3178484

Everything an application needs to run fastbrowse as its browser engine rather than as a command someone
types. Each of these came from wiring it into a product that already had one.

  • Drive a browser you already have. cdp_url attaches to any browser over the DevTools protocol,
    wherever it runs: a container, a VM, a machine you own. The run opens one tab and closes that tab, so a
    browser handed over is left exactly as it was found, and nothing is billed to a cloud account. This is the
    option to reach for when the browser should live next to the user rather than in someone else's cloud.
  • Start from the task alone. start is optional now. A caller whose own interface takes a goal and no
    URL had nowhere to get one; the first address is worked out from the task, as a person would. --start
    is optional in the CLI and start is optional on the MCP server's browse tool, where task is now the
    only thing a call must carry, and it holds for an attached browser too, which the run opens its own tab on.
    A secret is only ever typed on the start origin, so asking for one without a start page is refused rather
    than quietly dropped.
  • Stop a cloud browser you did not start. The browser event carries the cloud browser's id, so an
    application that has to end a run out of band (a user pressing cancel, a subscription ending) can.
  • proxy_country and viewport reach a cloud browser the run starts, instead of being fixed at what
    the library guessed.

Fixed in the same release, from tasks that failed in the field:

  • A list longer than one page is answered from the whole of it. A task over a paginated catalogue read the
    first page, answered from it and called that done. The run now follows the pager until what was asked for is
    evidenced or the page cap is reached, the reader is told when the page it is reading continues, and a claim
    about a whole list is not accepted from one page of it.
  • A bot check is reported as one. Status.BLOCKED is new: a CAPTCHA is not a sign-in and no credential
    passes it, so a run that meets one says so rather than ending as stuck. A challenge that clears itself once
    its script runs is still waited out first, and the check is made whether or not a secret is held for the site.
  • A reply cut short is asked for again. A read whose answer hit the output limit was parsed as though it
    were whole, so facts after the cut were lost without a word.
  • --json keeps its contract on a bad limit. --max-steps 0 printed a traceback and nothing parseable; it
    is now refused like any other bad flag, with the error on stdout as JSON.
  • A limit reads as what it is in the message that reports it: a dollar limit as money, a duration as a
    duration.

v0.3.4

Choose a tag to compare

@github-actions github-actions released this 20 Sep 12:11
bb2c96e
  • A step frame can no longer carry a secret the step itself revealed. Config(step_frames=True) checked
    whether a resolved secret was on screen using the reading of the page the step was decided from, which is
    the page before the action ran. A fill that a page mirrors into ordinary text put the secret on the page
    after that check, so the frame sent to the caller could contain it as pixels. The check now reads the page
    as it is when the image is taken. Affects 0.3.2 and 0.3.3 with step frames enabled; no other surface sent
    an image.

v0.3.3

Choose a tag to compare

@github-actions github-actions released this 20 Sep 11:27
a038901

What's Changed

  • build: support Python 3.13, so an application pinned to it can depend on this by @cjber in #65
  • chore: 0.3.3 by @cjber in #66

Full Changelog: v0.3.2...v0.3.3

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 20 Sep 11:12
0234ae9

What's Changed

  • feat: send the page a step acted on, for a caller showing the run live by @cjber in #63
  • chore: 0.3.2 by @cjber in #64

Full Changelog: v0.3.1...v0.3.2

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 20 Sep 08:37
b85ebab

What's Changed

  • build: type-check with ty, and run ruff and ty before each commit by @cjber in #54
  • feat: run a cloud browser as a profile someone already signed in by @cjber in #55
  • chore: 0.3.1 by @cjber in #56

Full Changelog: v0.3.0...v0.3.1

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 20 Sep 06:58
045b96c

What's Changed

  • feat: 15-task live eval suite with Bitwarden logins, and the agent fixes it found by @cjber in #9
  • fix: tell identically labelled controls apart, and stop ending runs on one model's 'you never told me' by @cjber in #11
  • feat(evals): jev-ultrafast arm, fair-arm grading, recordings and head-to-head results by @cjber in #13
  • docs(evals): hosted Browser Use re-run with a $0.60 cap by @cjber in #14
  • fix(evals): grade Google Flights on the search it rendered, not its URL by @cjber in #17
  • perf: accept DONE on confirmed requirements without the LLM verifier by @cjber in #18
  • fix(evals): grade the form behind a popup the run left open by @cjber in #19
  • General fixes from a dev/held-out split: frames, icons, hover, action effects, loop budget by @cjber in #15
  • docs(readme): demo GIF from a nonstop Google Flights search by @cjber in #20
  • fix: read typed-search results before leaving them (#7) by @cjber in #21
  • fix: count a derived comparison as met when the notes hold its facts (#7) by @cjber in #22
  • perf: verify on flash-lite by @cjber in #23
  • feat(evals): keep each run's step log and judgement trace in the eval row by @cjber in #26
  • fix: cite every note a comparison claim is drawn from by @cjber in #24
  • feat(evals): count wasted actions next to pass rate by @cjber in #25
  • fix: let recovery direct a read, scroll, back or escape, not only a control by @cjber in #27
  • docs: head-to-head results from three passes on every arm by @cjber in #30
  • fix(evals): keep a hosted session's cost when its output fails the schema by @cjber in #31
  • fix: draw the page before moving the pointer onto a point measured in the DOM by @cjber in #32
  • fix: treat a return to an earlier page state as no progress (#12) by @cjber in #28
  • fix: try the start page again once when the browser cannot reach it by @cjber in #33
  • fix(evals): judge a repeated action by the page it was taken from by @cjber in #34
  • fix: try the start page again when it never finishes loading by @cjber in #35
  • fix: let a finish stand when the verifier doubts only what the notes cite (#7) by @cjber in #36
  • build(evals): run both other arms on their latest releases by @cjber in #37
  • fix: wait for an empty page to draw before reading it by @cjber in #38
  • docs(readme): lead with the Browser Use comparison and what fastbrowse wins by @cjber in #41
  • perf: act on Jev's unsure pick once per page state before paying for recovery by @cjber in #39
  • fix: act on a redrawn control's one twin instead of deciding again by @cjber in #40
  • fix: outlast a brief provider outage instead of losing the run to it by @cjber in #42
  • docs(readme): add experimental warning notice by @furqanrydhan in #50
  • docs(security): record provenance and checksum for vendored autoconsent by @furqanrydhan in #48
  • docs(security): add a security policy and disclosure channel by @furqanrydhan in #47
  • security(ci): pin actions to commit SHAs and add gitleaks secret scan by @furqanrydhan in #46
  • feat: serve fastbrowse to MCP clients as one browse tool by @cjber in #43
  • refactor(mcp): share the CLI's browser and secret rules instead of restating them by @cjber in #52
  • fix: read the package's own text files as UTF-8, and format a day portably by @cjber in #44
  • feat: read a list split across pages whole, and stop repeating a click that did nothing (#12) by @cjber in #53
  • chore: 0.3.0 by @cjber in #51

New Contributors

Full Changelog: v0.2.0...v0.3.0

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 18 Sep 11:00
v0.2.0
c950d64

What's Changed

  • feat: --record video, and sign in with a stored login the task does not mention by @cjber in #6

Full Changelog: v0.1.0...v0.2.0

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 18 Sep 10:44
v0.1.0
695fc09

What's Changed

  • feat: a browser agent that picks instead of generating by @cjber in #1
  • perf: cut a task from 44s to 38.5s, and fix the fill that stalled on its own suggestions by @cjber in #2
  • perf: 26.7s a task, draft answers, and the open-source readiness review by @cjber in #3
  • perf: faster than hosted Browser Use (12.9s median), Jev grounded in Typesafe docs by @cjber in #4
  • docs(readme): Browser Use comparison only; build: version 0.1.0 by @cjber in #5

New Contributors

  • @cjber made their first contribution in #1

Full Changelog: https://github.com/agent-labs-dev/fastbrowse/commits/v0.1.0