Skip to content

Releases: bencherdev/bencher

v0.6.10

Choose a tag to compare

@github-actions github-actions released this 18 Jul 20:49
  • Add a Y-Axis scale toggle to perf plots with three modes (Auto, Linear, and Log); the Auto default preserves the existing adaptive scaling, Log falls back to Auto when the data includes zero or negative values, and the selection is saved in the plot URL, restored for pinned plots, and can be set with bencher plot create --y-axis or changed with bencher plot update --y-axis
  • Selecting a pinned plot from the Plots tab in the Perf explorer now applies the plot's saved X-Axis and Y-Axis instead of the defaults
  • Thin the Branch Version Number x-axis tick labels to fit the plot width; previously every version rendered a label, which overlapped into an unreadable smear on plots with many versions
  • Add Bencher MCP, a hosted Model Context Protocol server at https://mcp.bencher.dev/mcp (/mcp on Self-Hosted); AI agents and assistants can query benchmark data and submit runs with the same permissions as a project API key (bencher_run_*), without needing the bencher CLI installed

v0.6.9

Choose a tag to compare

@github-actions github-actions released this 18 Jul 14:30
  • Add Vitest adapter (js_vitest)
  • Add a database.cache_size server config option for the writer connection page cache in KiB (default 64 MiB)
  • Update a pinned plot in place with PATCH /v0/projects/{project}/plots/{plot}, the Perf explorer "Update Pin" button, or bencher plot update
  • Reject plot dimension UUIDs from other projects with a 404 Not Found and empty dimension lists with a 400 Bad Request
  • Add the project name and link as the first row of the PR comment report table (Thank you @OmarTawfik)
  • Create the GitHub Check with an in_progress status before benchmarks run and complete it with the results once they finish, so reruns no longer show a stale conclusion; if bencher run exits with an error before the results are posted, the check is marked as failed (Thank you @OmarTawfik)
  • Add runner update channels via runner up --update-channel <stable|canary> (default: stable); the canary channel tracks a rolling prerelease that is rebuilt whenever the runner changes on a Bencher Cloud deploy, so runner changes are field-tested on Bencher Cloud before a versioned release; canary runners report their binary checksum and converge on the published build by content rather than by version
  • Runner self-update checksum fetch failures no longer drop the WebSocket channel into a reconnect loop; the server now logs the failure, skips the update offer, and retries at the runner's next ready poll
  • BREAKING CHANGE The reports list endpoint (GET /v0/projects/{project}/reports) now omits the results and alerts for each report by default, drastically reducing response sizes for projects with large reports; set the new expand query param to true (bencher report list --expand) to restore the previous behavior. A new counts field summarizes each report with the number of benchmarks and distinct measures per iteration and the total and active alerts. Note that older CLI versions cannot parse the new default list response, so update the CLI before using bencher report list; bencher run is unaffected

Runner Canary

Runner Canary Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Jul 13:42

Rolling prerelease of the runner, rebuilt on cloud branch deploys. Currently built from d2895af.

v0.6.8

Choose a tag to compare

@github-actions github-actions released this 21 Jun 06:05
  • BREAKING CHANGE Change the default self-hosted API server port from 61016 to the newly IANA-registered 6610. Deployments relying on the default now serve the API on 6610. Update clients, reverse proxies, and --host/BENCHER_HOST references (Docker Compose, devcontainer, and docs are updated to match). To stay on 61016, set server.bind_address to 0.0.0.0:61016 (or run bencher up --api-port 61016).
  • Mark the remaining user API token REST endpoints (list, view, update, and revoke) as deprecated in the OpenAPI spec and API docs; they continue to work for existing tokens

v0.6.7

Choose a tag to compare

@github-actions github-actions released this 15 Jun 04:10
  • Fix the OCI registry token endpoint for the Docker 29+ containerd image store, which sends multiple scope query parameters and an OAuth2 POST token exchange (Thank you @travishathaway)
  • Add user-scoped API keys (bencher_user_...) that authenticate as the owning user across every endpoint a JWT can reach, including docker login; the one exception is key management: a user API key cannot create more keys and can only see, update, or revoke itself, so a leaked key cannot mint credentials that outlive its own revocation, tamper with the user's other keys, or enumerate them
  • Add bencher user key {create,list,view,update,revoke} CLI subcommands and an "API Keys" page in the Console for managing user API keys
  • --key/BENCHER_API_KEY now accepts either a project-scoped key (bencher_run_*) or a user-scoped key (bencher_user_*); the --project requirement applies only to project-scoped keys
  • DEPRECATED User API tokens are deprecated in favor of user API keys: POST /v0/users/{user}/tokens (bencher token create) now always fails with a 403 Forbidden error; existing API tokens continue to work and can still be listed, viewed, renamed, and revoked
  • Replace the Tokens entry in the Console account dropdown with Keys, and hide the "API Tokens" page entirely for accounts created after 15 June 2026
  • bencher run --github-actions now always creates a Bencher Report GitHub Check (failing on an active Alert), so it can be used as a required status check in branch protection; the check is created on a best effort basis, so check creation failures are now warnings instead of errors (Thank you @OmarTawfik)
  • Create the GitHub Check on the pull request head commit (pull_request.head.sha or workflow_run.head_sha) instead of GITHUB_SHA, so the check appears on the pull request
  • Append the --ci-id ID to the GitHub Check name (ie Bencher Report (<ID>)) so multiple bencher run invocations on the same commit get distinct, stable check names

v0.6.6

Choose a tag to compare

@github-actions github-actions released this 18 May 02:50
  • Show context-aware auth hints in API 404 errors: routes that accept project API keys now mention both API tokens and project keys, while token-only routes mention only API tokens
  • BREAKING CHANGE Rename usage to metrics in the organization usage API response and add runner_minutes field for bare metal runner minutes usage
  • Add --max-retry-after CLI option to cap exponential backoff between retries (default 30s) and increase default --attempts from 10 to 35 for ~15 minutes of retry coverage

v0.6.5

Choose a tag to compare

@github-actions github-actions released this 11 May 14:08
  • Add project scoped API keys
  • Add build time and file size tracking support for bare metal runs
  • Fix bencher run hanging on stdin when no command is provided, including for --image remote bare metal runs (Thank you @sophie-h)

v0.6.4

Choose a tag to compare

@github-actions github-actions released this 02 May 03:00
  • Allow a minimum sample size of 1 for the Percentage (percentage) Threshold Test (Thank you @teofr)
  • BREAKING CHANGE Switch runner key format from hex to alphanumeric encoding, reducing key length from 79 to 45 characters; existing runner keys must be rotated

v0.6.3

Choose a tag to compare

@github-actions github-actions released this 24 Apr 03:08
  • Fix sample standard deviation for Z-score, t-test, and Log Normal Thresholds to use Bessel's correction (divide by n − 1) (Thank you @ggirol-rc)
  • Fix t-test Threshold to use the prediction interval (scale the standard deviation by √(1 + 1/n)) so the boundary tests whether a new Metric is consistent with the historical distribution rather than whether it contains the historical mean (Thank you @ggirol-rc)
  • Existing Thresholds will produce slightly wider (statistically correct) boundaries; no configuration changes required
  • Fix Alert JSON to return the Spec for the Report in which the Alert was generated instead of the Testbed's current Spec
  • BREAKING CHANGE Rename runner token to runner key across the API, CLI, and environment variables
  • Fix race condition where concurrent branch creation could cause a "branch head is null" 500 error (Thank you @vmelamed)
  • Self-heal legacy Branches whose head_id is still NULL from the race condition above so subsequent bencher run submissions succeed instead of 500ing (Thank you @vmelamed)
  • Add API token revocation with bencher token revoke and Revoke button in the Console

v0.6.2

Choose a tag to compare

@github-actions github-actions released this 09 Apr 02:48
  • Allow unauthenticated docker push to unclaimed projects
  • Fix URL fragment placed before query string per RFC 3986 (Thank you @ricardoboss)
  • Fix --start-point-hash failure on non-existent hash by falling back to the start point branch's latest version (Thank you @teofr)