chore(release): version packages - #16
Open
github-actions[bot] wants to merge 1 commit into
Open
github-actions[bot] wants to merge 1 commit into
github-actions[bot] wants to merge 1 commit into
Conversation
github-actions
Bot
force-pushed
the
changeset-release/main
branch
9 times, most recently
from
September 29, 2026 16:04
a69b154 to
d3a28e1
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
September 29, 2026 17:58
d3a28e1 to
d90f487
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
browserhive@0.2.0
Minor Changes
#17
a4b5b8aThanks @arg1998! - Choose which browser sessions use, and run it inside Chromium's sandbox.--sandboxsetting (BROWSERHIVE_SANDBOX) defaults toauto: each browser is tried with the sandbox on its first launch and keeps it where it works (macOS, Windows, most Linux, and Google Chrome on Ubuntu). Where it cannot (Ubuntu 23.10+ with the bundled browser, running as root, Docker), sessions run as before, with one warning in the log, andbrowserhive doctorexplains why with the fix for your machine.--sandbox offis exactly the old behaviour.--sandbox onmakes the sandbox a guarantee. The server checks the configured browser before it opens its port and refuses to start (exit code 3) when it cannot sandbox, printing the reason and what to do on your machine, easiest first: an installed browser that does sandbox, an AppArmor profile, running as a normal user, or--sandbox auto.launch_sessionwithlaunch_options: { chromiumSandbox: true }on such a host used to answerINTERNAL_ERRORwith "retry with backoff"; it now answersSANDBOX_UNAVAILABLE, "retrying will not help", with the channels that do work.browserhive initshows the browsers on your machine and lets you pick one. It lists the bundled Chromium, an installed Google Chrome or Microsoft Edge, whether each can run sandboxed, and the pros and cons of each for your system. Enter keeps the current choice; a new choice is saved to your config file after you confirm. It can also install Google Chrome for you (Google's installer, administrator rights). In scripts:--channel chrome --yes,--installChrome; nothing is asked without a terminal.browserhive doctorchecks the browser you configured. AdefaultChannel=chromewithout Chrome installed is now a failure instead of a green check. New checks: installed Chrome and Edge, a browser that has moved more than one major version ahead of the tested build, managed policies that block automation, the sandbox per browser with the fix for your OS, and running as root or in a container.doctor --printApparmorProfileprints (never installs) the profile that lets the bundled browser sandbox on Ubuntu.browserhive init --installChrome), and--no-sandboxsuggests--sandbox.#20
15871c2Thanks @arg1998! - Read environment variables inbrowserhive.config.json, and see which variable every value came from.browserhive.config.jsoncan now contain{env:NAME}, and BrowserHive reads that environment variable when it starts:"authTokens": "ci-runner:{env:CI_TOKEN}","otelHeaders": { "Authorization": "Bearer {env:OTLP_TOKEN}" },"otelEndpoint": "http://{env:OTLP_HOST}:4318". The file can be committed and shared while tokens and per-machine values stay in the environment. It works for every key, in whole values, inside longer strings, in lists and in header maps;"maxSessions": "{env:MAX_SESSIONS}"accepts exactly whatBROWSERHIVE_MAX_SESSIONSwould.{env:NAME:-default}usesdefaultwhenNAMEis not set or is empty, so the same file works on a laptop and on a server.{env:NAME}without a default is required: if the variable is missing, startup stops and says which key, which file and which variable, and how to add a default.config: otelEndpoint=… (config-file via $OTLP_HOST) shadows env=…,browserhive config showprintsconfig-file via $OTLP_HOSTin the SOURCE column,config show --jsonandGET /api/v1/system/configaddrefsandtemplatefields, and the dashboard's System page shows a$OTLP_HOSTchip next to the source. Select it to see the value as written in the file; a new Only values from references switch lists just those keys.authTokens,otelHeaders, and any value whose variable name looks like a credential (it containstoken,secret,passwordand the like), you see the variable's name, never its value, and the value is scrubbed from logs.browserhive doctorno longer asks you tochmod 600a config file whoseauthTokensonly reference variables, and it warns when a variable was not set so its default is in use.${env:NAME}(the OpenTelemetry Collector's spelling) stops startup with "Did you mean '{env:NAME}'?";{ENV:NAME}or{file:…}stop it too, with how to keep such text literal ({{…}}). Braces that are not references, like{trace_id}inotelTraceUrlTemplate, are left alone, so existing config files work as before. References are not expanded inBROWSERHIVE_*variables or command-line flags (your shell does that); BrowserHive warns if it finds one there.browserhive config schema) accepts a reference for every key, so editors no longer underline"stealth": "{env:STEALTH}".#21
43d2f5eThanks @arg1998! - See which agent is connected (Claude Code, Codex, Cursor, OpenCode, Gemini CLI and others), count sessions and tool calls per agent, and filter by it.X-BH-Agent-Harnessheader, aBROWSERHIVE_HARNESSvariable in a stdio server'senvblock, or?harness=<name>to the MCP URL when a client only has a URL field.X-BH-Agent-Model/BROWSERHIVE_MODELandX-BH-Workspace/BROWSERHIVE_WORKSPACElabel the model and the workspace;X-BH-Meta-<Name>headers add a few extra labels. Tool calls can carry the same in_meta(ai.browserhive/harness,ai.browserhive/model,ai.browserhive/workspace), read on every call.GET /api/v1/sessionsacceptsharness=and returns aharnessesfacet, each session has aharness, tool calls carryharness(andGET /api/v1/tool-callsfilters by it), and there are two new endpoints:GET /api/v1/metrics/harnessesandGET /api/v1/system/mcp/connections. Traces carrybrowserhive.harness(and the declared model); the tool-call and live-session metrics gain aharnessattribute limited to known names plusotherandunknown.BROWSERHIVE_HARNESS,BROWSERHIVE_MODELandBROWSERHIVE_WORKSPACEare not configuration settings, so they are no longer rejected as unknown, and a misspelled one gets a suggestion.#28
9470febThanks @arg1998! - Answer from your phone: Approve, Reject and Mark resolved right in Telegram, Discord and ntfy, and richer Telegram messages.actButtons=trueandallow=<user ids>,mode=botfor Discord andreply=for ntfy.browserhive channels listshows whether answers reach BrowserHive.GET /api/v1/channels/actionsand the Discord bot setup under/api/v1/channels/discord/…; channels reportconnection; thechannelsWebSocket topic addsaction.recorded. The database moves to schema v6 (three new tables; an older release still opens it).#27
fb94fbcThanks @arg1998! - Notifications on your phone: Telegram, Discord, ntfy and webhook channels, with screenshots, live updates and messages that delete themselves.publicUrlkey (--publicUrl,BROWSERHIVE_PUBLIC_URL) is the address where you reach the dashboard (a Tailscale name, your reverse proxy, a Cloudflare tunnel). Notification links use it, its host is trusted withoutallowedHosts, and the CSRF check accepts it even when your proxy rewritesHost. The System page andbrowserhive doctorcheck that it really reaches this BrowserHive.--notificationChannel "telegram:name=phone,token=env:BH_TG_TOKEN,chat=123456"(repeatable; a token typed into the flag is refused). They show in the dashboard with a "from startup" badge.browserhive channels list,channels test <name>andchannels preview <name>;browserhive doctorchecks every channel's variables andpublicUrl./api/v1/channels(scopeschannels:read,channels:write),GET /api/v1/system/public-url, achannelsWebSocket topic, andinstance_idinGET /health.#25
9fce259Thanks @arg1998! - Notifications now follow what they announce, and every notification is a versioned message that can be delivered reliably to other apps.GET /api/v1/notificationsand thenotificationsWebSocket topic addkind,category,severity,state,revisionandthreadto every notification. Existing fields are unchanged.#29
7873a06Thanks @arg1998! - A daily summary and a heads-up when something's off.POST /api/v1/channels/{id}/digest.digest=daily@09:00,digest=daily:weekdaysordigest=weekly(Friday 17:00;weekly:mon@08:30for another day),tz=andanomaly=onwithanomaly.*thresholds;browserhive channels listshows each channel's next digest, andchannels preview --sample digest|anomalyrenders the samples.channels:write, a deleted channel's reply-topic cursor goes with it, the live delivery log no longer shows stale superseded rows, and the public address check reports a proxy's 5xx page as unreachable. The message contract gains thedigest.weeklykind, achartblock and an optionalreportfield (schema 1, additive);GET /api/v1/notificationstakes acategoryfilter; newGET /api/v1/notifications/reports,GET /api/v1/notifications/reports/{id}andGET/PUT /api/v1/notifications/report-settings; no database migration.#24
6c90adeThanks @arg1998! - Closed sessions now keep showing whether they ran inside Chromium's sandbox, and with which browser version.--sandbox autothe answer depends on the browser and the machine (on Ubuntu, Google Chrome sandboxes and the bundled Chromium falls back), so it is recorded rather than worked out later.browser: { version, sandboxed }onGET /api/v1/sessionsandGET /api/v1/sessions/{id}is now filled for closed sessions from what was recorded at launch. It is still left out when nothing was recorded, so read a missingbrowseras "unknown", never as "not sandboxed".Patch Changes
#22
a7a79d8Thanks @arg1998! - The System page's MCP connections list now shows 10 connections per page, with the usual pager underneath (10, 25 or 50 rows per page, previous/next, "1–10 of 23"). Before, it showed up to 50 at once with no way to see older ones. For API clients,GET /api/v1/system/mcp/connectionsaccepts anoffsetfor paging and returnstotal, the number of stored connections; existing calls behave exactly as before.#33
f4ebe1aThanks @arg1998! - OpenTelemetry now exports the notification, attention, session-launch, WebSocket, write-queue and browser-memory metrics the docs describe.browserhive.attention.wait,browserhive.session.launch.duration,browserhive.ws.connections,browserhive.ws.buffered_bytes,browserhive.ws.frames_dropped,browserhive.db.dropped_writes,browserhive.browser.rss_bytes(each session's browser with all its processes, every 10 seconds; Linux and macOS) andbrowserhive.process.event_loop_lag.closed_reasononbrowserhive.session.lifetime,kindonbrowserhive.attention.open(vault confirmations count too),tableonbrowserhive.retention.pruned_rows.browserhive.notifications.deliveries,.actionsand.reportsare now in the telemetry guide..reportsnow counts on-demand digests asmanual, as documented, and no longer counts a silent revision of an open in-app anomaly alert.browserhive.db.dropped_writesreports every recorder table from the start, at 0.ms,By, or a count such as{call}), and the guide's table lists each one with its type, unit and attributes. With telemetry off nothing is measured, as before.#15
280ec1fThanks @arg1998! - Fixes found while researching the next features./mcprejected every request whoseHostnamed a different port (localhost:8080for a server on 9876) while the dashboard kept working. Both now use the same check, which ignores the port.--allowedHostssetting (BROWSERHIVE_ALLOWED_HOSTS) for the name a reverse proxy forwards, so the recommended TLS proxy setup works without rewritingHost.X-BH-Agent-Model/X-BH-Workspace.X-BH-Agent-Harnessno longer overwrites the workspace. Stdio connections record their client too.BROWSERHIVE_AUTH_TOKENSandotelHeadersvalues from env or the config file are also scrubbed from logs and telemetry now.maxSessionsrespects container and systemd memory limits instead of deriving from the host's full RAM.chmod(network shares, some bind mounts) no longer stops the server from starting; it logs a warning.UNHANDLEDdegradation.@browserhive/core@0.2.0
Patch Changes
@browserhive/dashboard@0.2.0
Patch Changes
@browserhive/contracts@0.2.0
No changes in this release.