Repository navigation
π Browser4 v4.16.7 Release Notes
Release Date: 2026-11-14 13:58:26 UTC
Built by: @galaxyeye
β Java requirement β depends on how you install
Install mode Java needed? Self-contained bundle β browser4-cli installNone β the bundle ships its own jlink-built JRE browser4-clibinaries /npm install -g browser4-cliNone β native binary Standalone Browser4.jar(java -jar)Java 25+ WebMiner ( browser4-cli webminer)JDK 17+ β auto-detected (the bundle's JRE also satisfies it) Build from source JDK 25+ to compile; JDK 25 enables the JVM AOT cache (JEP 483/515)
test(browser4-browser): assert the vi-data staleness short circuit precedes compute
viDataStatusJsShortCircuitsOnComputedData expected u._viDataComputed === true to appear before u.compute(), but that flag is only assigned after a
successful compute, so the assertion could never hold and the Nightly Build
went red on a correct implementation.
What actually guards the already-computed document is the runtime staleness
check: the script first looks for u.isLayoutStale (absent on older runtimes)
and short-circuits on u._viDataComputed !== true instead of computing again.
Assert both of those appear before u.compute().
π¦ Release Highlights
π Release Statistics
| Metric | Value |
|---|---|
| π JAR Size | 106MB |
| π Commits | 54 |
| π₯ Contributors | 1 |
| ποΈ Build Date | 2026-11-14 13:58:26 UTC |
π Changes Since Last Release
- test(browser4-browser): assert the vi-data staleness short circuit precedes compute (6ae3a59072)
- refactor(coding): remove the shell syntax gate (479dacf119)
- refactor(agent): drop the engine tag from the interactive banner (97a090f461)
- fix(cli): keep env server/session defaults out of batch steps (769f219c51)
- fix(cli): stop the WMI fallback test from popping a terminal window (14e17c4d4a)
- fix(cli): stop the AOT training run from showing a console window (d376d9425a)
- fix(coding): let --unrestricted lift the command tier, not only the syntax gate (a14347680e)
- docs(skill): keep agent.md under the 500-line cap (41d60c3706)
- docs(copilot): record progress and remaining work in the efficiency plan (24af82d755)
- feat(coding): add
coding.readFilesfor a bounded multi-file read (9dd0cc0c5f) - feat(agent): report a run's four-bucket timings on the task result (6612798180)
- docs(copilot): agent dev efficiency plan v3, review and timing script (30a0030653)
- perf(agentic): price output tokens in the coding prompt (cf94abbc44)
- feat(agentic): attribute every tool round to model, tools and callbacks (d7b0796439)
- perf(coding): short-circuit Maven builds whose inputs are unchanged (6c336fbd33)
- chore(issues): record the #640 fix (ce9cbe9d08)
- fix(cli): scope the e2e process sweep to this checkout (#640) (b1fb027d6c)
- chore(issues): link #640 for the e2e sweep incident (3037dc69e0)
- chore(issues): file the e2e sweep killing a neighbouring checkout's backend (c8dfc08bae)
- docs(agent): state that a resume keeps --unrestricted and cannot drop it (733b3236b5)
- test(agent): cover --unrestricted end to end (REPL and command_run) (acd64347b1)
- fix(coding): keep the runtime vetoes visible inside block parentheses (6eb70dce14)
- fix(agent): run and report an unrestricted task truthfully (be4d6aa025)
- docs(agent): state what --unrestricted does and does not lift (d3eb553855)
- fix(agent): describe an unrestricted task truthfully (e651dce9b4)
- fix(coding): classify every syntax refusal consistently (f2f35e2deb)
- fix(agent): make the unrestricted prompt block reachable and name the vetoes (ef1ae5c1e2)
- test(coding): gate the cmd.exe cases to Windows and cover the lift everywhere (87dbc5f0b4)
- fix(coding): keep the runtime vetoes when --unrestricted lifts the syntax gate (ece8e59edc)
- fix(agent): rethrow a compaction token-budget abort instead of retrying it (256c16c203)
- feat(coding): let
--unrestrictedlift the shell's syntax gate (ca0c40561e) - feat(agent): add
agent run --unrestrictedto run with the OS user's own permissions (409f2a9446) - fix(agent): reset the token budget per run and charge compaction calls (3c9f811492)
- feat(coding): support validated cmd.exe if conditionals (218e534339)
- Merge origin/feat/self-dev-worktree-isolation into 4.16.x (e7322c2aad)
- feat(coding): add a boot probe and session-scoped worktree reuse (93ce54bdb5)
- feat(recover): add -Prune to reclaim isolated worktrees on demand (6bbb6c141c)
- feat(coding): reclaim stale isolated worktrees (acb485737f)
- feat(coding): protect the launch path and refuse task-driven bootstrap (9c522687f5)
- feat(recover): add
b4w recoverand keep the previous runtime bundle (cfc057bc85) - feat(agent): run coding tasks in a git worktree and merge verified patches (26e795e6e4)
- fix(coding): add module resolver, isolation gate and worktree merge primitives (7e4191106f)
- refactor(agent): delete the orphaned ContextToAction inference events and TextToAction (553664f4d0)
- refactor(agent): remove deprecated generate() method in ContextToAction (3b9f7e7576)
- fix(rest): bind Kotlin @RequestBody DTOs on Jackson 3 (591cf99899)
- refactor(agent): delete the dead system-prompt v1 chain (127724f37f)
- refactor(agent)!: remove session.act() and the act REST/CLI entry points (1ad98c0599)
- refactor(agent): remove the observe-act engine, keep only the CLI tool loop (da2f3fec43)
- revert(agent): drop @deprecated from the PerceptiveAgent.run chain (96a34bc773)
- refactor(agent): deprecate PerceptiveAgent.run in favour of command.run (5b4f219dd9)
- fix(cli): carry task context into follow-up menu and stop capping full-mode tables (49a22abcb7)
- feat(agent): carry one session context across tasks and predict the next task (f106139079)
- fix(ci): restore the PowerShell gate for agent.md and
star(e9e32e697f) - Auto-bump version to 4.16.7-SNAPSHOT (bc81e91fea)
π Quick Start
Self-contained install
Use the CLI to download the matching Browser4 runtime bundle for your platform
(ships its own jlink-built JRE β no Java installation required):
browser4-cli install
browser4-cli openCLI & SKILLS
# Open a new browser window
browser4-cli open
# Navigate to a page
browser4-cli goto https://browser4.io
# Inspect the page β note the eN labels on interactive nodes
browser4-cli snapshot
# Interact using refs from the snapshot
browser4-cli click e15
browser4-cli type e15 "Hello World"
browser4-cli press e15 Enter
browser4-cli keydown Shift
browser4-cli mousemove 150 300
browser4-cli mousewheel 0 100
browser4-cli keyup Shift
# Take a screenshot and save it to disk
browser4-cli screenshot
# Use a custom server URL
browser4-cli open --server http://localhost:9090
# Execute multiple commands in one process
browser4-cli batch "open https://browser4.io" "snapshot"
# Stop on the first batch failure
browser4-cli batch --bail "open https://browser4.io" "click e1" "screenshot"
# Advanced: pipe batch commands as JSON via stdin
echo '[
["goto", "https://example.com/form-filling"],
["click", "#reset-btn"],
["fill", "#first-name", "Bob"],
["fill", "#last-name", "Smith"],
["fill", "#email", "bob@example.com"],
["select", "#country", "uk"],
["check", "#agree-terms"],
["click", "#submit-btn"]
]' | browser4-cli batch --json
# Close the session when done
browser4-cli closeπ Full Changelog
Built with β€οΈ by the Browser4 team
browser4-cli
This release also includes prebuilt browser4-cli binaries for:
- Linux x64
- Linux ARM64
- Linux musl x64
- Linux musl ARM64
- Windows x64
- macOS x64
- macOS ARM64
npm package:
npm install -g browser4-cli
CLI package version in this release workflow:
4.16.7
Self-contained Browser4 runtime bundles
This release also includes self-contained Browser4 runtime bundles with:
- a
lib/directory containingBrowser4Bundle.jarand all runtime dependencies - a minimal
jlink-built JRE underruntime/ - platform-specific launcher scripts in
bin/
Runtime model:
runtime/bin/java -cp "lib/*" <MainClass>
Supported release assets:
browser4-bundle-runtime-windows-x64.zipbrowser4-bundle-runtime-linux-x64.tar.gzbrowser4-bundle-runtime-darwin-arm64.tar.gz
Recommended install flow:
browser4-cli install
Full Changelog: v4.16.6...v4.16.7