Repository navigation
BrowserSkill CLI 0.5.0 simplifies session management and adds guarded batch actions, reusable recipes, and bounded DOM reads. Use it with extension 0.5.0 for the new observation and interaction features.
Added
bsk open,bsk sync, andbsk closemanage a browser session for the current caller. Use--scope <name>to isolate parallel tasks. Sync returns short context and observation IDs for subsequent actions.bsk planruns a sequence of decided actions and stops on the first incomplete step.bsk recipesaves and replays verified workflows, with approval for supported reversible steps and a hold when a previous run's outcome is uncertain. Plan is available in MCP and DSH, and recipe tools are opt-in.bsk readsamples bounded DOM fields such as text, attributes, and form state on changing pages. MCP and DSH expose the same read operation. Scripts can declare what they depend on for a narrower pre-action check.- The daemon records pending browser actions in a local intent ledger. If an action's effect is uncertain, the ledger holds subsequent writes on that tab until reconciliation. Use
bsk syncto inspect current state andbsk ledger statusto check the hold. - Local pairing verifies the browser and daemon identities and supports credential rotation, recovery, and revocation. Pairing remains optional for local connections. Skill installation also supports Qoder and Qoder CN.
Changed
- The CLI can apply a text-only observation patch to its exact saved baseline and write the merged observation for offline inspection with
bsk view. The daemon and extension also reduce repeated work during synchronization and targeted actions. - Native select accepts unique visible option labels. Fill reports when the page reformats the value and redacts the resulting value for sensitive fields.
- The packaged skill uses the new session commands and documents how to recover when an action's effect is uncertain. DSH documentation covers tool access through
run_codein PTC mode.
Fixed
- Text waits in
bsk openandbsk syncevaluate the full observation even when the latest response is a delta or has a token limit. bsk get-html --json --out <file>writes HTML to the file and returns its path and size in JSON.- Recording retains its captured steps through session cleanup and better recognizes form controls, shadow DOM selects, and controls whose positions change.
- Native input calibrates Chromium's clock to reduce false human-intervention events. Navigation waits handle pending navigation and back/forward cache restores.
Upgrade
- Finish active browser tasks and run
bsk update --yes. If a supervisor manages your daemon, restart it through the supervisor. - Install extension 0.5.0 and update the DSH plugin to 0.5.0 if you use it.
- Reload your browser-skill instructions. Restart your MCP client or DSH profile if it still uses the previous version.
- Check the connection with
bsk --version,bsk status, andbsk doctor.
What's changed
- feat(cli): run decided actions together with
bsk planby@NianJiuZstin #615 - fix: add constrained DOM reads for changing pages by
@NianJiuZstin #616 - fix(extension): minimize control panel without blocking page clicks by
@NianJiuZstin #617 - feat(cli): replay verified flows with
bsk recipeby@NianJiuZstin #618 - docs(evals): add optional contributor end-to-end testing skill by
@NianJiuZstin #619 - feat: add optional local pairing with recovery and revocation by
@NianJiuZstin #620 - fix(record): capture native select changes in shadow roots by
@NianJiuZstin #635 - fix(fill): accept equivalent end-of-editor caret positions by
@columbia11in #640 - fix(extension): give punctuation keys a physical code and key code by
@PerryLinkin #637 - fix(record): keep clicks on controls in non-editable editor regions by
@NianJiuZstin #634 - fix(extract): keep content visible when CSS overrides hidden by
@kesmeeyin #610 - fix: apply CSS case transforms during extraction (#597) by
@kesmeeyin #613 - fix(extension): preserve upload handler failure receipts across debugger detach by
@NianJiuZstin #654 - feat: formalize recipe CLI and complete plan/recipe integration by
@NianJiuZstin #656 - fix(cooperation): preserve evidence checks during preparation, retry settling syncs by
@NianJiuZstin #655 - fix(record): preserve form button clicks by
@tlysanhuoin #602 - fix(record): keep clicks on controls that share a form with a search field by
@columbia11in #658 - fix(record): keep clicks on controls with long names by
@columbia11in #662 - fix(extension): detach remaining CDP sessions when Agent Window closes by
@NianJiuZstin #659 - fix(cooperation): release blurred edits and auto-resume idle tabs on new task sync by
@NianJiuZstin #660 - feat(evals): expand release test with plan/recipe/read, video/forum sites, and benchmark metrics by
@NianJiuZstin #664 - fix(fill): notify each final value once by
@AriaLEntropyin #663 - fix(evals): isolate recipe fixtures and correct release benchmark accounting by
@NianJiuZstin #671 - fix(cooperation): tolerate proven hidden unresponsive frames (#614) by
@NianJiuZstin #672 - fix: attribute file transfers and report local validation errors by
@NianJiuZstin #673 - fix(record): keep step refs after scrolling and clicks inside controls by
@columbia11in #679 - test: fix main CI (hidden-frame timing flake, stale download exit code) by
@NianJiuZstin #680 - feat(extension): keep connection settings open and fold pairing advice behind an icon by
@columbia11in #682 - feat(evaluate): support scoped and unverified scripts by
@NianJiuZstin #683 - feat(skill): add Qoder and Qoder CN install targets by
@AriaLEntropyin #677 - refactor(protocol): unify contracts, exhaustive tool policies, and peer compatibility by
@NianJiuZstin #389 - perf(cooperation): reduce sync and strict verification latency on heavy pages by
@NianJiuZstin #687 - fix(cooperation): calibrate native input timestamps across clock drift by
@NianJiuZstin #668 - feat(vom,cooperation): affordance-typed VOM v2, stealth injection stripper, and virtual-row guard by
@NianJiuZstin #689 - feat(v0.5-wave2): zero-ceremony lifecycle, caller-scope isolation, SKILL/sync slimming, and guarded CDP soft-detach by
@NianJiuZstin #688 - feat(wave3): cut 85% hot-path IPC/CDP polling, optimistic fill fast-path, single-UDS CLI, and <3ms Intent WAL by
@NianJiuZstin #696 - fix(navigation): wait for scheduled and in-flight navigations in wait-for-navigation by
@NianJiuZstin #704 - fix(navigation): complete back/forward waits on back/forward-cache restores by
@NianJiuZstin #705 - fix(extension): flush deferred background-tab focus in handleFill and flag altered sensitive fills by
@NianJiuZstin #706 - fix(wal): settle unpressed clicks and pre-write select/fill validation failures by
@NianJiuZstin #708 - fix(cli): resolve full VOM text when sync/open text waits encounter delta or uncached frames by
@NianJiuZstin #707 - fix(extension): preserve refs, dialogs, and active downloads across idle CDP soft-detach by
@NianJiuZstin #711 - fix(cooperation): keep tab management usable after borrowing an about:blank tab by
@NianJiuZstin #710 - fix(vom): harden stealth stripper for CSS Color 4, gradient text, HiDPI microboxes, and textstyle containers by
@NianJiuZstin #709 - feat(evals): upgrade release-test fixtures into high-fidelity adversarial arena by
@NianJiuZstin #712 - fix(cli): stop get-html --json --out from printing the HTML to stdout by
@NianJiuZstin #716 - fix(vom): exclude style/script text from label fallback by
@AriaLEntropyin #697 - fix(cli): coordinate recording session cleanup by
@NianJiuZstin #720 - fix(dsh): clarify BrowserSkill calls in PTC mode by
@NianJiuZstin #721 - fix(cooperation): send a text delta instead of the whole VOM after an in-place text change by
@columbia11in #722