diff --git a/CHANGELOG.md b/CHANGELOG.md index a7d54f5..4669d4f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,24 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/). Starting from 0.2.0, CLI / Extension / DSH Plugin share the same version number. -## [Unreleased] +## [0.2.1] - 2026-09-09 + +### Changed +- DSH Plugin: clarified installation, configuration, profile restart, and upgrade instructions + +### Fixed +- CLI: reliable Windows self-updates, including executable replacement and daemon restart +- CLI: Windows named-pipe connection continuity and stale daemon process detection +- Windows installer: PowerShell 5.1 compatibility, path quoting, and staged executable replacement +- CLI / DSH Plugin: cancellation propagation and upload/download cleanup when the parent process exits +- Extension: tab ownership and session cleanup when agent tabs fail to open or borrowed tabs are returned or closed +- Extension: navigation recovery when other extensions restrict Chrome DevTools Protocol access +- Extension: background input filling, automatic append behavior, and verification of field values before reporting success +- Extension: match observed form state to the correct element after page changes +- Extension: UUID generation fallback for recording and overlays on insecure origins +- Browser locale matching for regional language variants +- DSH Plugin: observation state synchronization, thumbnail capture lifecycle, and stale preview cleanup +- DSH Plugin: removed the obsolete client runtime host dependency ## [0.2.0] - 2026-09-02 diff --git a/Cargo.lock b/Cargo.lock index d4ff61c..da7b17b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -134,7 +134,7 @@ dependencies = [ [[package]] name = "bsk" -version = "0.2.0" +version = "0.2.1" dependencies = [ "anyhow", "base64", @@ -169,7 +169,7 @@ dependencies = [ [[package]] name = "bsk-protocol" -version = "0.2.0" +version = "0.2.1" dependencies = [ "schemars", "semver", diff --git a/Cargo.toml b/Cargo.toml index 78ee9cd..a7e8b84 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ members = [ default-members = ["crates/bsk-cli"] [workspace.package] -version = "0.2.0" +version = "0.2.1" edition = "2024" rust-version = "1.85" license = "MIT" @@ -43,7 +43,7 @@ rand = "0.8" uuid = { version = "1", features = ["v4", "serde"] } # Workspace crates (version required for `cargo publish` of dependents) -bsk-protocol = { version = "0.2.0", path = "crates/bsk-protocol" } +bsk-protocol = { version = "0.2.1", path = "crates/bsk-protocol" } [profile.release] strip = "symbols" diff --git a/apps/extension/package.json b/apps/extension/package.json index fdd9d4d..20976c4 100644 --- a/apps/extension/package.json +++ b/apps/extension/package.json @@ -1,6 +1,6 @@ { "name": "@browser-skill/extension", - "version": "0.2.0", + "version": "0.2.1", "private": true, "type": "module", "scripts": { diff --git a/packages/dsh-plugin-browserskill/package.json b/packages/dsh-plugin-browserskill/package.json index 6ab53d4..f2da27b 100644 --- a/packages/dsh-plugin-browserskill/package.json +++ b/packages/dsh-plugin-browserskill/package.json @@ -1,7 +1,7 @@ { "name": "@wxg-prc-cpg/browser-skill-dsh-plugin", "description": "DeepSeek Harness tool plugin that exposes BrowserSkill browser automation (browser_* tools) to the model", - "version": "0.2.0", + "version": "0.2.1", "license": "MIT", "publishConfig": { "access": "public", diff --git a/scripts/release.mjs b/scripts/release.mjs index f7a6e95..6459524 100755 --- a/scripts/release.mjs +++ b/scripts/release.mjs @@ -174,16 +174,22 @@ function updateChangelog(version) { const today = new Date().toISOString().slice(0, 10); const escapedVer = version.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + const versionHeading = new RegExp(`^## \\[${escapedVer}\\](?:\\s|$)`, "m"); // First: fill in any date-placeholder line for this version (e.g. "## [0.2.0] - 2026-09-XX") const versionPlaceholder = new RegExp(`^## \\[${escapedVer}\\]\\s*-\\s*\\d{4}-\\d{2}-XX`, "m"); if (versionPlaceholder.test(content)) { content = content.replace(versionPlaceholder, `## [${version}] - ${today}`); - } else { - // Otherwise: insert a new section after [Unreleased] + } else if (!versionHeading.test(content)) { + // Preserve prepared release entries; new versions go before the release history. + const heading = `## [${version}] - ${today}`; const unreleased = /^## \[Unreleased\]/m; if (unreleased.test(content)) { - content = content.replace(unreleased, `## [Unreleased]\n\n## [${version}] - ${today}`); + content = content.replace(unreleased, `## [Unreleased]\n\n${heading}`); + } else if (/^## /m.test(content)) { + content = content.replace(/^## /m, `${heading}\n\n## `); + } else { + content = `${content.trimEnd()}\n\n${heading}\n`; } }