Skip to content

bsk CLI 0.5.0

Latest

Choose a tag to compare

@iuyo5678 iuyo5678 released this 12 Nov 16:20
361da1d

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, and bsk close manage 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 plan runs a sequence of decided actions and stops on the first incomplete step. bsk recipe saves 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 read samples 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 sync to inspect current state and bsk ledger status to 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_code in PTC mode.

Fixed

  • Text waits in bsk open and bsk sync evaluate 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

  1. Finish active browser tasks and run bsk update --yes. If a supervisor manages your daemon, restart it through the supervisor.
  2. Install extension 0.5.0 and update the DSH plugin to 0.5.0 if you use it.
  3. Reload your browser-skill instructions. Restart your MCP client or DSH profile if it still uses the previous version.
  4. Check the connection with bsk --version, bsk status, and bsk doctor.

What's changed

  • feat(cli): run decided actions together with bsk plan by @NianJiuZst in #615
  • fix: add constrained DOM reads for changing pages by @NianJiuZst in #616
  • fix(extension): minimize control panel without blocking page clicks by @NianJiuZst in #617
  • feat(cli): replay verified flows with bsk recipe by @NianJiuZst in #618
  • docs(evals): add optional contributor end-to-end testing skill by @NianJiuZst in #619
  • feat: add optional local pairing with recovery and revocation by @NianJiuZst in #620
  • fix(record): capture native select changes in shadow roots by @NianJiuZst in #635
  • fix(fill): accept equivalent end-of-editor caret positions by @columbia11 in #640
  • fix(extension): give punctuation keys a physical code and key code by @PerryLink in #637
  • fix(record): keep clicks on controls in non-editable editor regions by @NianJiuZst in #634
  • fix(extract): keep content visible when CSS overrides hidden by @kesmeey in #610
  • fix: apply CSS case transforms during extraction (#597) by @kesmeey in #613
  • fix(extension): preserve upload handler failure receipts across debugger detach by @NianJiuZst in #654
  • feat: formalize recipe CLI and complete plan/recipe integration by @NianJiuZst in #656
  • fix(cooperation): preserve evidence checks during preparation, retry settling syncs by @NianJiuZst in #655
  • fix(record): preserve form button clicks by @tlysanhuo in #602
  • fix(record): keep clicks on controls that share a form with a search field by @columbia11 in #658
  • fix(record): keep clicks on controls with long names by @columbia11 in #662
  • fix(extension): detach remaining CDP sessions when Agent Window closes by @NianJiuZst in #659
  • fix(cooperation): release blurred edits and auto-resume idle tabs on new task sync by @NianJiuZst in #660
  • feat(evals): expand release test with plan/recipe/read, video/forum sites, and benchmark metrics by @NianJiuZst in #664
  • fix(fill): notify each final value once by @AriaLEntropy in #663
  • fix(evals): isolate recipe fixtures and correct release benchmark accounting by @NianJiuZst in #671
  • fix(cooperation): tolerate proven hidden unresponsive frames (#614) by @NianJiuZst in #672
  • fix: attribute file transfers and report local validation errors by @NianJiuZst in #673
  • fix(record): keep step refs after scrolling and clicks inside controls by @columbia11 in #679
  • test: fix main CI (hidden-frame timing flake, stale download exit code) by @NianJiuZst in #680
  • feat(extension): keep connection settings open and fold pairing advice behind an icon by @columbia11 in #682
  • feat(evaluate): support scoped and unverified scripts by @NianJiuZst in #683
  • feat(skill): add Qoder and Qoder CN install targets by @AriaLEntropy in #677
  • refactor(protocol): unify contracts, exhaustive tool policies, and peer compatibility by @NianJiuZst in #389
  • perf(cooperation): reduce sync and strict verification latency on heavy pages by @NianJiuZst in #687
  • fix(cooperation): calibrate native input timestamps across clock drift by @NianJiuZst in #668
  • feat(vom,cooperation): affordance-typed VOM v2, stealth injection stripper, and virtual-row guard by @NianJiuZst in #689
  • feat(v0.5-wave2): zero-ceremony lifecycle, caller-scope isolation, SKILL/sync slimming, and guarded CDP soft-detach by @NianJiuZst in #688
  • feat(wave3): cut 85% hot-path IPC/CDP polling, optimistic fill fast-path, single-UDS CLI, and <3ms Intent WAL by @NianJiuZst in #696
  • fix(navigation): wait for scheduled and in-flight navigations in wait-for-navigation by @NianJiuZst in #704
  • fix(navigation): complete back/forward waits on back/forward-cache restores by @NianJiuZst in #705
  • fix(extension): flush deferred background-tab focus in handleFill and flag altered sensitive fills by @NianJiuZst in #706
  • fix(wal): settle unpressed clicks and pre-write select/fill validation failures by @NianJiuZst in #708
  • fix(cli): resolve full VOM text when sync/open text waits encounter delta or uncached frames by @NianJiuZst in #707
  • fix(extension): preserve refs, dialogs, and active downloads across idle CDP soft-detach by @NianJiuZst in #711
  • fix(cooperation): keep tab management usable after borrowing an about:blank tab by @NianJiuZst in #710
  • fix(vom): harden stealth stripper for CSS Color 4, gradient text, HiDPI microboxes, and textstyle containers by @NianJiuZst in #709
  • feat(evals): upgrade release-test fixtures into high-fidelity adversarial arena by @NianJiuZst in #712
  • fix(cli): stop get-html --json --out from printing the HTML to stdout by @NianJiuZst in #716
  • fix(vom): exclude style/script text from label fallback by @AriaLEntropy in #697
  • fix(cli): coordinate recording session cleanup by @NianJiuZst in #720
  • fix(dsh): clarify BrowserSkill calls in PTC mode by @NianJiuZst in #721
  • fix(cooperation): send a text delta instead of the whole VOM after an in-place text change by @columbia11 in #722

Full changelog