diff --git a/.changeset/RELEASE b/.changeset/RELEASE index b084c31d5..6c51c1f78 100644 --- a/.changeset/RELEASE +++ b/.changeset/RELEASE @@ -1 +1 @@ -Fri Jul 31 14:50:35 UTC 2026 +Wed Aug 12 20:55:21 UTC 2026 diff --git a/.changeset/add-idempotent-import-sets.md b/.changeset/add-idempotent-import-sets.md deleted file mode 100644 index 1025851bc..000000000 --- a/.changeset/add-idempotent-import-sets.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@salesforce/b2c-cli': minor -'@salesforce/b2c-tooling-sdk': minor -'@salesforce/b2c-dx-docs': patch -'@salesforce/b2c-agent-plugins': patch ---- - -Added ordered, idempotent site archive import sets with verified WebDAV receipts, retry-until-receipted behavior, and serialized concurrent runners. diff --git a/.changeset/agent-plugins-standard-manifests.md b/.changeset/agent-plugins-standard-manifests.md deleted file mode 100644 index 178e1f089..000000000 --- a/.changeset/agent-plugins-standard-manifests.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@salesforce/b2c-agent-plugins': minor ---- - -Package the plugins to the open Agent Plugins standard (agent-plugins.org v1.0.0). Each plugin now has a root `plugin.json` manifest with its Codex display metadata under `extensions."com.openai"`, and the MCP server plugin ships a standard `mcp.json`. This lets Codex, Cursor, GitHub Copilot, VS Code, and Kiro consume the plugins directly; Claude Code continues to install from its marketplace as before. The legacy `.codex-plugin/plugin.json` manifests are retained during the transition so existing Codex users on older CLI versions are unaffected. diff --git a/.changeset/cli-inspect-mask-jwt-passphrase.md b/.changeset/cli-inspect-mask-jwt-passphrase.md deleted file mode 100644 index f2eb22201..000000000 --- a/.changeset/cli-inspect-mask-jwt-passphrase.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@salesforce/b2c-cli': patch ---- - -`b2c setup inspect` now redacts the JWT private key passphrase (`jwtPassphrase`) by default, matching the other secret fields. Use `--unmask` to show it. diff --git a/.changeset/corpus-update-26-8.md b/.changeset/corpus-update-26-8.md deleted file mode 100644 index 26b32151c..000000000 --- a/.changeset/corpus-update-26-8.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -'@salesforce/b2c-tooling-sdk': patch ---- - -Refresh the bundled documentation corpora to the 26.8 release so `b2c docs -search`/`docs read` and the MCP `docs_*` tools surface the latest content: - -- Script API reference and XSD schemas updated to DWAPP 26.8 (adds the - `dw.commerceapps` package, connection-health hooks, and `ShippingHooks`). -- Developer Center guides refreshed (adds newly published guides such as SCAPI - CDN caching, guest order access codes, and several Storefront Next topics). - -Each corpus index now records where it came from so maintainers can spot the -delta before a refresh: git-sourced prose corpora store the upstream commit -(`source` block) and DWAPP-sourced corpora store the platform release -(`platformDocVersion`, e.g. "DWAPP 26.8"). diff --git a/.changeset/document-data-migrations-plugin.md b/.changeset/document-data-migrations-plugin.md deleted file mode 100644 index ab5a127cb..000000000 --- a/.changeset/document-data-migrations-plugin.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@salesforce/b2c-dx-docs': patch ---- - -Added the data migrations plugin to the third-party plugins guide so users can discover idempotent, version-controlled IMPEX and scripted deployments. diff --git a/.changeset/fix-skills-cross-pack-links.md b/.changeset/fix-skills-cross-pack-links.md deleted file mode 100644 index c6d4b611e..000000000 --- a/.changeset/fix-skills-cross-pack-links.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@salesforce/b2c-agent-plugins': patch ---- - -Fix six cross-pack skill links in `b2c-scapi-admin` and `b2c-scapi-shopper` that were one directory level short and resolved to paths that do not exist. diff --git a/.changeset/mcp-config-inspect-project-directory.md b/.changeset/mcp-config-inspect-project-directory.md deleted file mode 100644 index ac16db7e2..000000000 --- a/.changeset/mcp-config-inspect-project-directory.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@salesforce/b2c-dx-mcp': minor -'@salesforce/b2c-tooling-sdk': minor ---- - -Add a `config_inspect` MCP tool that reports the resolved configuration (instance, auth, SCAPI/MRT settings) with the source of each value and the effective project directory — secrets are redacted by default. Filesystem tools now resolve the project directory with explicit precedence (per-call argument, then `--project-directory`/`SFCC_PROJECT_DIRECTORY`, then the process working directory) and echo the resolved directory back in their output, so agents can override it per call and see which directory was used across MCP clients that spawn the server from inconsistent working directories. diff --git a/.changeset/ods-1-to-n-cloning.md b/.changeset/ods-1-to-n-cloning.md deleted file mode 100644 index 4ca5e8498..000000000 --- a/.changeset/ods-1-to-n-cloning.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -'@salesforce/b2c-cli': minor -'@salesforce/b2c-tooling-sdk': minor -'b2c-vs-extension': minor ---- - -Add support for creating multiple sandbox clones from a single source in one request (1 to many cloning). - -- `b2c sandbox clone create` now accepts `--target-count <1-5>` to create a batch of clones sharing the same source, TTL, profile, and notification emails. `--wait` polls every clone in the batch until each reaches a terminal state. -- `b2c sandbox clone list` supports `--batch-id` to filter clones belonging to a specific batch. -- `b2c sandbox clone get` and the VS Code extension's clone details view now show the batch ID and sibling clone IDs when a clone was created as part of a batch. -- The VS Code extension's "Clone Sandbox" command prompts for the number of clones to create and reports aggregate progress across the batch. diff --git a/.changeset/pkce-public-client.md b/.changeset/pkce-public-client.md deleted file mode 100644 index 0cfcfd9bd..000000000 --- a/.changeset/pkce-public-client.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -'@salesforce/b2c-tooling-sdk': minor -'@salesforce/b2c-cli': minor -'b2c-vs-extension': patch ---- - -Add Authorization Code + PKCE support for browser-based OAuth (public clients) and make it the default for the `user` auth method, replacing the legacy `implicit` flow in the default chain. The default auth-method order is now `client-credentials`, `jwt`, `user`. The implicit flow is still selectable via `--auth-methods implicit` (or in dw.json) for backwards compatibility but emits a deprecation warning — OAuth 2.1 deprecates implicit for public clients. - -`b2c auth login` now uses Authorization Code + PKCE by default and persists a refresh token alongside the access token, so subsequent commands silently refresh without re-opening the browser. The new `--auth-methods` flag on `b2c auth login` lets you opt back into the legacy implicit flow (`--auth-methods implicit`). The POC `b2c auth pkce` command has been removed; use `b2c auth login` instead. - -dw.json gains a `"user-auth": true` shorthand for `"auth-methods": ["user"]`. It is mutually exclusive with `"auth-methods"` — setting both is rejected during config mapping. - -To smooth the migration, the `user` flow includes a transitional safety net: if the configured Account Manager client is not a PKCE-capable public client, it automatically falls back to the implicit flow for that client and logs a deprecation warning recommending you create a new public (PKCE) client and use it. (An AM client's type cannot be changed after creation, so a legacy implicit-only client must be replaced, not converted.) Set `SFCC_DISABLE_PKCE_FALLBACK=1` to disable the fallback and surface PKCE failures directly. This fallback is temporary and will be removed once public clients have migrated. - -Persisted browser-auth sessions (which now hold long-lived PKCE refresh tokens) are written `0o600` in a `0o700` directory, so they are no longer world-readable. - -The VS Code extension persists PKCE refresh tokens via OS-keychain-backed `SecretStorage` (with a sync-snapshot/async-write-through cache), keeping behavior compatible with the unified `AuthSessionBackend` used by the CLI. diff --git a/.changeset/sandbox-palette-lifecycle.md b/.changeset/sandbox-palette-lifecycle.md deleted file mode 100644 index c16821e65..000000000 --- a/.changeset/sandbox-palette-lifecycle.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'b2c-vs-extension': minor ---- - -Start, stop, and restart the active sandbox from the Command Palette (Realm Explorer context menus still target the selected sandbox) diff --git a/.changeset/update-script-api-types-26-9.md b/.changeset/update-script-api-types-26-9.md deleted file mode 100644 index 58d3a7b7d..000000000 --- a/.changeset/update-script-api-types-26-9.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@salesforce/b2c-cli': patch -'b2c-vs-extension': patch -'@salesforce/b2c-dx-docs': patch ---- - -Update the embedded B2C Commerce Script API TypeScript definitions from version 26.7 to 26.9 so IDE IntelliSense reflects the latest platform APIs. diff --git a/.changeset/warn-non-salesforce-cap-install.md b/.changeset/warn-non-salesforce-cap-install.md deleted file mode 100644 index cf14016d5..000000000 --- a/.changeset/warn-non-salesforce-cap-install.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@salesforce/b2c-cli': patch -'@salesforce/b2c-tooling-sdk': patch ---- - -`cap:install` now warns and prompts for confirmation before installing a Commerce App from a non-Salesforce provider. Use `--force` to skip the prompt (e.g. in CI or scripted installs); the prompt is also skipped automatically in `--json` mode. diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 2c1a9d06c..1e4220039 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -17,7 +17,7 @@ "source": "./skills/b2c-cli", "category": "productivity", "strict": false, - "version": "1.7.0" + "version": "1.8.0" }, { "name": "b2c", @@ -29,7 +29,7 @@ "source": "./skills/b2c", "category": "productivity", "strict": false, - "version": "1.7.0" + "version": "1.8.0" }, { "name": "b2c-dx-mcp", @@ -41,7 +41,7 @@ "source": "./plugins/b2c-dx-mcp", "category": "productivity", "strict": false, - "version": "1.9.3" + "version": "1.10.0" }, { "name": "storefront-next", @@ -53,7 +53,7 @@ "source": "./skills/storefront-next", "category": "productivity", "strict": false, - "version": "1.7.0" + "version": "1.8.0" }, { "name": "storefront-next-figma", diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 6c6f46d39..b12444761 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,15 @@ # @salesforce/b2c-dx-docs +## 0.3.18 + +### Patch Changes + +- [#615](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/615) [`1f553b3`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/1f553b3e26c57909ce654b61e25f4db537111312) - Added ordered, idempotent site archive import sets with verified WebDAV receipts, retry-until-receipted behavior, and serialized concurrent runners. (Thanks [@clavery](https://github.com/clavery)!) + +- [#615](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/615) [`1f553b3`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/1f553b3e26c57909ce654b61e25f4db537111312) - Added the data migrations plugin to the third-party plugins guide so users can discover idempotent, version-controlled IMPEX and scripted deployments. (Thanks [@clavery](https://github.com/clavery)!) + +- [#618](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/618) [`abec39f`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/abec39fbc4843b00c426c6fc2ac26492e67df11d) - Update the embedded B2C Commerce Script API TypeScript definitions from version 26.7 to 26.9 so IDE IntelliSense reflects the latest platform APIs. (Thanks [@clavery](https://github.com/clavery)!) + ## 0.3.17 ### Patch Changes diff --git a/docs/package.json b/docs/package.json index 1b6608335..ff6a42df9 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "@salesforce/b2c-dx-docs", - "version": "0.3.17", + "version": "0.3.18", "private": true, "description": "Documentation for B2C Developer Tooling", "scripts": { diff --git a/packages/b2c-cli/CHANGELOG.md b/packages/b2c-cli/CHANGELOG.md index 9a0f700f5..1742d4954 100644 --- a/packages/b2c-cli/CHANGELOG.md +++ b/packages/b2c-cli/CHANGELOG.md @@ -1,5 +1,40 @@ # @salesforce/b2c-cli +## 1.22.0 + +### Minor Changes + +- [#615](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/615) [`1f553b3`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/1f553b3e26c57909ce654b61e25f4db537111312) - Added ordered, idempotent site archive import sets with verified WebDAV receipts, retry-until-receipted behavior, and serialized concurrent runners. (Thanks [@clavery](https://github.com/clavery)!) + +- [#611](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/611) [`62db97f`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/62db97fefb40e56c12f41d54803db7315ec8c33a) - Add support for creating multiple sandbox clones from a single source in one request (1 to many cloning). (Thanks [@charithaT07](https://github.com/charithaT07)!) + - `b2c sandbox clone create` now accepts `--target-count <1-5>` to create a batch of clones sharing the same source, TTL, profile, and notification emails. `--wait` polls every clone in the batch until each reaches a terminal state. + - `b2c sandbox clone list` supports `--batch-id` to filter clones belonging to a specific batch. + - `b2c sandbox clone get` and the VS Code extension's clone details view now show the batch ID and sibling clone IDs when a clone was created as part of a batch. + - The VS Code extension's "Clone Sandbox" command prompts for the number of clones to create and reports aggregate progress across the batch. + +- [#574](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/574) [`8d096d0`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/8d096d01a2f70eb979f1b6b246fd196b77f2acd0) - Add Authorization Code + PKCE support for browser-based OAuth (public clients) and make it the default for the `user` auth method, replacing the legacy `implicit` flow in the default chain. The default auth-method order is now `client-credentials`, `jwt`, `user`. The implicit flow is still selectable via `--auth-methods implicit` (or in dw.json) for backwards compatibility but emits a deprecation warning — OAuth 2.1 deprecates implicit for public clients. (Thanks [@clavery](https://github.com/clavery)!) + + `b2c auth login` now uses Authorization Code + PKCE by default and persists a refresh token alongside the access token, so subsequent commands silently refresh without re-opening the browser. The new `--auth-methods` flag on `b2c auth login` lets you opt back into the legacy implicit flow (`--auth-methods implicit`). The POC `b2c auth pkce` command has been removed; use `b2c auth login` instead. + + dw.json gains a `"user-auth": true` shorthand for `"auth-methods": ["user"]`. It is mutually exclusive with `"auth-methods"` — setting both is rejected during config mapping. + + To smooth the migration, the `user` flow includes a transitional safety net: if the configured Account Manager client is not a PKCE-capable public client, it automatically falls back to the implicit flow for that client and logs a deprecation warning recommending you create a new public (PKCE) client and use it. (An AM client's type cannot be changed after creation, so a legacy implicit-only client must be replaced, not converted.) Set `SFCC_DISABLE_PKCE_FALLBACK=1` to disable the fallback and surface PKCE failures directly. This fallback is temporary and will be removed once public clients have migrated. + + Persisted browser-auth sessions (which now hold long-lived PKCE refresh tokens) are written `0o600` in a `0o700` directory, so they are no longer world-readable. + + The VS Code extension persists PKCE refresh tokens via OS-keychain-backed `SecretStorage` (with a sync-snapshot/async-write-through cache), keeping behavior compatible with the unified `AuthSessionBackend` used by the CLI. + +### Patch Changes + +- [#613](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/613) [`c0ec3f6`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/c0ec3f6202ca8ee69676ae2361e8b276cd69385c) - `b2c setup inspect` now redacts the JWT private key passphrase (`jwtPassphrase`) by default, matching the other secret fields. Use `--unmask` to show it. (Thanks [@clavery](https://github.com/clavery)!) + +- [#618](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/618) [`abec39f`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/abec39fbc4843b00c426c6fc2ac26492e67df11d) - Update the embedded B2C Commerce Script API TypeScript definitions from version 26.7 to 26.9 so IDE IntelliSense reflects the latest platform APIs. (Thanks [@clavery](https://github.com/clavery)!) + +- [#604](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/604) [`2de9046`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2de904636dad1b1f23a80da8b640dc8acd6e97f3) - `cap:install` now warns and prompts for confirmation before installing a Commerce App from a non-Salesforce provider. Use `--force` to skip the prompt (e.g. in CI or scripted installs); the prompt is also skipped automatically in `--json` mode. (Thanks [@jbisaSF](https://github.com/jbisaSF)!) + +- Updated dependencies [[`1f553b3`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/1f553b3e26c57909ce654b61e25f4db537111312), [`d5551f3`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/d5551f351836f12d2c167459441093671bcad9bc), [`c0ec3f6`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/c0ec3f6202ca8ee69676ae2361e8b276cd69385c), [`62db97f`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/62db97fefb40e56c12f41d54803db7315ec8c33a), [`8d096d0`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/8d096d01a2f70eb979f1b6b246fd196b77f2acd0), [`2de9046`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2de904636dad1b1f23a80da8b640dc8acd6e97f3)]: + - @salesforce/b2c-tooling-sdk@1.22.0 + ## 1.21.4 ### Patch Changes diff --git a/packages/b2c-cli/package.json b/packages/b2c-cli/package.json index 26f50010c..1619a3aff 100644 --- a/packages/b2c-cli/package.json +++ b/packages/b2c-cli/package.json @@ -1,7 +1,7 @@ { "name": "@salesforce/b2c-cli", "description": "A Salesforce B2C Commerce CLI", - "version": "1.21.4", + "version": "1.22.0", "author": "Charles Lavery", "bin": { "b2c": "./bin/run.js" diff --git a/packages/b2c-dx-mcp/CHANGELOG.md b/packages/b2c-dx-mcp/CHANGELOG.md index 030045994..514328560 100644 --- a/packages/b2c-dx-mcp/CHANGELOG.md +++ b/packages/b2c-dx-mcp/CHANGELOG.md @@ -1,5 +1,16 @@ # @salesforce/b2c-dx-mcp +## 1.10.0 + +### Minor Changes + +- [#613](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/613) [`c0ec3f6`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/c0ec3f6202ca8ee69676ae2361e8b276cd69385c) - Add a `config_inspect` MCP tool that reports the resolved configuration (instance, auth, SCAPI/MRT settings) with the source of each value and the effective project directory — secrets are redacted by default. Filesystem tools now resolve the project directory with explicit precedence (per-call argument, then `--project-directory`/`SFCC_PROJECT_DIRECTORY`, then the process working directory) and echo the resolved directory back in their output, so agents can override it per call and see which directory was used across MCP clients that spawn the server from inconsistent working directories. (Thanks [@clavery](https://github.com/clavery)!) + +### Patch Changes + +- Updated dependencies [[`1f553b3`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/1f553b3e26c57909ce654b61e25f4db537111312), [`d5551f3`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/d5551f351836f12d2c167459441093671bcad9bc), [`c0ec3f6`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/c0ec3f6202ca8ee69676ae2361e8b276cd69385c), [`62db97f`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/62db97fefb40e56c12f41d54803db7315ec8c33a), [`8d096d0`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/8d096d01a2f70eb979f1b6b246fd196b77f2acd0), [`2de9046`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2de904636dad1b1f23a80da8b640dc8acd6e97f3)]: + - @salesforce/b2c-tooling-sdk@1.22.0 + ## 1.9.3 ### Patch Changes diff --git a/packages/b2c-dx-mcp/package.json b/packages/b2c-dx-mcp/package.json index ca969a3a7..66cce86a5 100644 --- a/packages/b2c-dx-mcp/package.json +++ b/packages/b2c-dx-mcp/package.json @@ -1,7 +1,7 @@ { "name": "@salesforce/b2c-dx-mcp", "description": "MCP server for B2C Commerce developer experience tools", - "version": "1.9.3", + "version": "1.10.0", "author": "Salesforce", "license": "Apache-2.0", "repository": "SalesforceCommerceCloud/b2c-developer-tooling", diff --git a/packages/b2c-tooling-sdk/CHANGELOG.md b/packages/b2c-tooling-sdk/CHANGELOG.md index d8c85b127..7eab931be 100644 --- a/packages/b2c-tooling-sdk/CHANGELOG.md +++ b/packages/b2c-tooling-sdk/CHANGELOG.md @@ -1,5 +1,47 @@ # @salesforce/b2c-tooling-sdk +## 1.22.0 + +### Minor Changes + +- [#615](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/615) [`1f553b3`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/1f553b3e26c57909ce654b61e25f4db537111312) - Added ordered, idempotent site archive import sets with verified WebDAV receipts, retry-until-receipted behavior, and serialized concurrent runners. (Thanks [@clavery](https://github.com/clavery)!) + +- [#613](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/613) [`c0ec3f6`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/c0ec3f6202ca8ee69676ae2361e8b276cd69385c) - Add a `config_inspect` MCP tool that reports the resolved configuration (instance, auth, SCAPI/MRT settings) with the source of each value and the effective project directory — secrets are redacted by default. Filesystem tools now resolve the project directory with explicit precedence (per-call argument, then `--project-directory`/`SFCC_PROJECT_DIRECTORY`, then the process working directory) and echo the resolved directory back in their output, so agents can override it per call and see which directory was used across MCP clients that spawn the server from inconsistent working directories. (Thanks [@clavery](https://github.com/clavery)!) + +- [#611](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/611) [`62db97f`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/62db97fefb40e56c12f41d54803db7315ec8c33a) - Add support for creating multiple sandbox clones from a single source in one request (1 to many cloning). (Thanks [@charithaT07](https://github.com/charithaT07)!) + - `b2c sandbox clone create` now accepts `--target-count <1-5>` to create a batch of clones sharing the same source, TTL, profile, and notification emails. `--wait` polls every clone in the batch until each reaches a terminal state. + - `b2c sandbox clone list` supports `--batch-id` to filter clones belonging to a specific batch. + - `b2c sandbox clone get` and the VS Code extension's clone details view now show the batch ID and sibling clone IDs when a clone was created as part of a batch. + - The VS Code extension's "Clone Sandbox" command prompts for the number of clones to create and reports aggregate progress across the batch. + +- [#574](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/574) [`8d096d0`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/8d096d01a2f70eb979f1b6b246fd196b77f2acd0) - Add Authorization Code + PKCE support for browser-based OAuth (public clients) and make it the default for the `user` auth method, replacing the legacy `implicit` flow in the default chain. The default auth-method order is now `client-credentials`, `jwt`, `user`. The implicit flow is still selectable via `--auth-methods implicit` (or in dw.json) for backwards compatibility but emits a deprecation warning — OAuth 2.1 deprecates implicit for public clients. (Thanks [@clavery](https://github.com/clavery)!) + + `b2c auth login` now uses Authorization Code + PKCE by default and persists a refresh token alongside the access token, so subsequent commands silently refresh without re-opening the browser. The new `--auth-methods` flag on `b2c auth login` lets you opt back into the legacy implicit flow (`--auth-methods implicit`). The POC `b2c auth pkce` command has been removed; use `b2c auth login` instead. + + dw.json gains a `"user-auth": true` shorthand for `"auth-methods": ["user"]`. It is mutually exclusive with `"auth-methods"` — setting both is rejected during config mapping. + + To smooth the migration, the `user` flow includes a transitional safety net: if the configured Account Manager client is not a PKCE-capable public client, it automatically falls back to the implicit flow for that client and logs a deprecation warning recommending you create a new public (PKCE) client and use it. (An AM client's type cannot be changed after creation, so a legacy implicit-only client must be replaced, not converted.) Set `SFCC_DISABLE_PKCE_FALLBACK=1` to disable the fallback and surface PKCE failures directly. This fallback is temporary and will be removed once public clients have migrated. + + Persisted browser-auth sessions (which now hold long-lived PKCE refresh tokens) are written `0o600` in a `0o700` directory, so they are no longer world-readable. + + The VS Code extension persists PKCE refresh tokens via OS-keychain-backed `SecretStorage` (with a sync-snapshot/async-write-through cache), keeping behavior compatible with the unified `AuthSessionBackend` used by the CLI. + +### Patch Changes + +- [#605](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/605) [`d5551f3`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/d5551f351836f12d2c167459441093671bcad9bc) - Refresh the bundled documentation corpora to the 26.8 release so `b2c docs (Thanks [@clavery](https://github.com/clavery)!) +search`/`docs read` and the MCP `docs_*` tools surface the latest content: + - Script API reference and XSD schemas updated to DWAPP 26.8 (adds the + `dw.commerceapps` package, connection-health hooks, and `ShippingHooks`). + - Developer Center guides refreshed (adds newly published guides such as SCAPI + CDN caching, guest order access codes, and several Storefront Next topics). + + Each corpus index now records where it came from so maintainers can spot the + delta before a refresh: git-sourced prose corpora store the upstream commit + (`source` block) and DWAPP-sourced corpora store the platform release + (`platformDocVersion`, e.g. "DWAPP 26.8"). + +- [#604](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/604) [`2de9046`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2de904636dad1b1f23a80da8b640dc8acd6e97f3) - `cap:install` now warns and prompts for confirmation before installing a Commerce App from a non-Salesforce provider. Use `--force` to skip the prompt (e.g. in CI or scripted installs); the prompt is also skipped automatically in `--json` mode. (Thanks [@jbisaSF](https://github.com/jbisaSF)!) + ## 1.21.3 ### Patch Changes diff --git a/packages/b2c-tooling-sdk/package.json b/packages/b2c-tooling-sdk/package.json index 8d33eec67..0967c1885 100644 --- a/packages/b2c-tooling-sdk/package.json +++ b/packages/b2c-tooling-sdk/package.json @@ -1,7 +1,7 @@ { "name": "@salesforce/b2c-tooling-sdk", "description": "Core tooling library for Salesforce B2C Commerce CLI", - "version": "1.21.3", + "version": "1.22.0", "author": "Charles Lavery", "license": "Apache-2.0", "repository": "SalesforceCommerceCloud/b2c-developer-tooling", diff --git a/packages/b2c-vs-extension/CHANGELOG.md b/packages/b2c-vs-extension/CHANGELOG.md index 2cd9e65a7..209135ef9 100644 --- a/packages/b2c-vs-extension/CHANGELOG.md +++ b/packages/b2c-vs-extension/CHANGELOG.md @@ -1,5 +1,36 @@ # Change Log +## 1.1.0 + +### Minor Changes + +- [#611](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/611) [`62db97f`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/62db97fefb40e56c12f41d54803db7315ec8c33a) - Add support for creating multiple sandbox clones from a single source in one request (1 to many cloning). (Thanks [@charithaT07](https://github.com/charithaT07)!) + - `b2c sandbox clone create` now accepts `--target-count <1-5>` to create a batch of clones sharing the same source, TTL, profile, and notification emails. `--wait` polls every clone in the batch until each reaches a terminal state. + - `b2c sandbox clone list` supports `--batch-id` to filter clones belonging to a specific batch. + - `b2c sandbox clone get` and the VS Code extension's clone details view now show the batch ID and sibling clone IDs when a clone was created as part of a batch. + - The VS Code extension's "Clone Sandbox" command prompts for the number of clones to create and reports aggregate progress across the batch. + +- [#617](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/617) [`bee72c2`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/bee72c26e3427f177bee6a28374821164eb9cdbb) - Start, stop, and restart the active sandbox from the Command Palette (Realm Explorer context menus still target the selected sandbox) (Thanks [@clstopher](https://github.com/clstopher)!) + +### Patch Changes + +- [#574](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/574) [`8d096d0`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/8d096d01a2f70eb979f1b6b246fd196b77f2acd0) - Add Authorization Code + PKCE support for browser-based OAuth (public clients) and make it the default for the `user` auth method, replacing the legacy `implicit` flow in the default chain. The default auth-method order is now `client-credentials`, `jwt`, `user`. The implicit flow is still selectable via `--auth-methods implicit` (or in dw.json) for backwards compatibility but emits a deprecation warning — OAuth 2.1 deprecates implicit for public clients. (Thanks [@clavery](https://github.com/clavery)!) + + `b2c auth login` now uses Authorization Code + PKCE by default and persists a refresh token alongside the access token, so subsequent commands silently refresh without re-opening the browser. The new `--auth-methods` flag on `b2c auth login` lets you opt back into the legacy implicit flow (`--auth-methods implicit`). The POC `b2c auth pkce` command has been removed; use `b2c auth login` instead. + + dw.json gains a `"user-auth": true` shorthand for `"auth-methods": ["user"]`. It is mutually exclusive with `"auth-methods"` — setting both is rejected during config mapping. + + To smooth the migration, the `user` flow includes a transitional safety net: if the configured Account Manager client is not a PKCE-capable public client, it automatically falls back to the implicit flow for that client and logs a deprecation warning recommending you create a new public (PKCE) client and use it. (An AM client's type cannot be changed after creation, so a legacy implicit-only client must be replaced, not converted.) Set `SFCC_DISABLE_PKCE_FALLBACK=1` to disable the fallback and surface PKCE failures directly. This fallback is temporary and will be removed once public clients have migrated. + + Persisted browser-auth sessions (which now hold long-lived PKCE refresh tokens) are written `0o600` in a `0o700` directory, so they are no longer world-readable. + + The VS Code extension persists PKCE refresh tokens via OS-keychain-backed `SecretStorage` (with a sync-snapshot/async-write-through cache), keeping behavior compatible with the unified `AuthSessionBackend` used by the CLI. + +- [#618](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/618) [`abec39f`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/abec39fbc4843b00c426c6fc2ac26492e67df11d) - Update the embedded B2C Commerce Script API TypeScript definitions from version 26.7 to 26.9 so IDE IntelliSense reflects the latest platform APIs. (Thanks [@clavery](https://github.com/clavery)!) + +- Updated dependencies [[`1f553b3`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/1f553b3e26c57909ce654b61e25f4db537111312), [`d5551f3`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/d5551f351836f12d2c167459441093671bcad9bc), [`c0ec3f6`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/c0ec3f6202ca8ee69676ae2361e8b276cd69385c), [`62db97f`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/62db97fefb40e56c12f41d54803db7315ec8c33a), [`8d096d0`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/8d096d01a2f70eb979f1b6b246fd196b77f2acd0), [`2de9046`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/2de904636dad1b1f23a80da8b640dc8acd6e97f3)]: + - @salesforce/b2c-tooling-sdk@1.22.0 + ## 1.0.6 ### Patch Changes diff --git a/packages/b2c-vs-extension/package.json b/packages/b2c-vs-extension/package.json index 8ddef7d47..09a8df0cd 100644 --- a/packages/b2c-vs-extension/package.json +++ b/packages/b2c-vs-extension/package.json @@ -2,7 +2,7 @@ "name": "b2c-vs-extension", "displayName": "Salesforce B2C Commerce", "description": "Tools for developing on Salesforce B2C Commerce, including cartridge deployment, script debugging and IntelliSense, and sandbox management.", - "version": "1.0.6", + "version": "1.1.0", "publisher": "Salesforce", "icon": "media/icon.png", "license": "Apache-2.0", diff --git a/plugins/b2c-dx-mcp/.codex-plugin/plugin.json b/plugins/b2c-dx-mcp/.codex-plugin/plugin.json index 15df982d5..6d3029785 100644 --- a/plugins/b2c-dx-mcp/.codex-plugin/plugin.json +++ b/plugins/b2c-dx-mcp/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "b2c-dx-mcp", - "version": "1.9.3", + "version": "1.10.0", "description": "MCP server for AI-assisted Salesforce B2C Commerce development.", "author": { "name": "Salesforce", diff --git a/plugins/b2c-dx-mcp/.mcp.json b/plugins/b2c-dx-mcp/.mcp.json index d1cfcc273..40e3fbf6b 100644 --- a/plugins/b2c-dx-mcp/.mcp.json +++ b/plugins/b2c-dx-mcp/.mcp.json @@ -4,7 +4,7 @@ "command": "npx", "args": [ "-y", - "@salesforce/b2c-dx-mcp@1.9.3", + "@salesforce/b2c-dx-mcp@1.10.0", "--allow-non-ga-tools" ] } diff --git a/plugins/b2c-dx-mcp/mcp.json b/plugins/b2c-dx-mcp/mcp.json index a32f5969d..18f7c1221 100644 --- a/plugins/b2c-dx-mcp/mcp.json +++ b/plugins/b2c-dx-mcp/mcp.json @@ -6,7 +6,7 @@ "command": "npx", "args": [ "-y", - "@salesforce/b2c-dx-mcp@1.9.2", + "@salesforce/b2c-dx-mcp@1.10.0", "--allow-non-ga-tools" ] } diff --git a/plugins/b2c-dx-mcp/plugin.json b/plugins/b2c-dx-mcp/plugin.json index 41981cace..80e95c2cc 100644 --- a/plugins/b2c-dx-mcp/plugin.json +++ b/plugins/b2c-dx-mcp/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "b2c-dx-mcp", - "version": "1.9.2", + "version": "1.10.0", "description": "MCP server for AI-assisted Salesforce B2C Commerce development with project-aware tooling for common workflows.", "author": { "name": "Salesforce" diff --git a/skills/CHANGELOG.md b/skills/CHANGELOG.md index 54c590048..a7e8f46ac 100644 --- a/skills/CHANGELOG.md +++ b/skills/CHANGELOG.md @@ -1,5 +1,17 @@ # @salesforce/b2c-agent-plugins +## 1.8.0 + +### Minor Changes + +- [#613](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/613) [`c0ec3f6`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/c0ec3f6202ca8ee69676ae2361e8b276cd69385c) - Package the plugins to the open Agent Plugins standard (agent-plugins.org v1.0.0). Each plugin now has a root `plugin.json` manifest with its Codex display metadata under `extensions."com.openai"`, and the MCP server plugin ships a standard `mcp.json`. This lets Codex, Cursor, GitHub Copilot, VS Code, and Kiro consume the plugins directly; Claude Code continues to install from its marketplace as before. The legacy `.codex-plugin/plugin.json` manifests are retained during the transition so existing Codex users on older CLI versions are unaffected. (Thanks [@clavery](https://github.com/clavery)!) + +### Patch Changes + +- [#615](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/615) [`1f553b3`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/1f553b3e26c57909ce654b61e25f4db537111312) - Added ordered, idempotent site archive import sets with verified WebDAV receipts, retry-until-receipted behavior, and serialized concurrent runners. (Thanks [@clavery](https://github.com/clavery)!) + +- [#609](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/pull/609) [`af06784`](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/commit/af0678464059c66748ab9bd20075dab5c5707842) - Fix six cross-pack skill links in `b2c-scapi-admin` and `b2c-scapi-shopper` that were one directory level short and resolved to paths that do not exist. (Thanks [@dkatashev](https://github.com/dkatashev)!) + ## 1.7.0 ### Minor Changes diff --git a/skills/b2c-cli/.codex-plugin/plugin.json b/skills/b2c-cli/.codex-plugin/plugin.json index 6700666ac..8961dceba 100644 --- a/skills/b2c-cli/.codex-plugin/plugin.json +++ b/skills/b2c-cli/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "b2c-cli", - "version": "1.7.0", + "version": "1.8.0", "description": "B2C CLI Skills for Salesforce Commerce Cloud development.", "author": { "name": "Salesforce" diff --git a/skills/b2c-cli/plugin.json b/skills/b2c-cli/plugin.json index 7e9550388..d3d98330e 100644 --- a/skills/b2c-cli/plugin.json +++ b/skills/b2c-cli/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "b2c-cli", - "version": "1.6.2", + "version": "1.8.0", "description": "B2C CLI Skills for Salesforce Commerce Cloud development.", "author": { "name": "Salesforce" diff --git a/skills/b2c/.codex-plugin/plugin.json b/skills/b2c/.codex-plugin/plugin.json index eeb013578..3aa867206 100644 --- a/skills/b2c/.codex-plugin/plugin.json +++ b/skills/b2c/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "b2c", - "version": "1.7.0", + "version": "1.8.0", "description": "B2C Commerce development skills including Custom API development guides.", "author": { "name": "Salesforce" diff --git a/skills/b2c/plugin.json b/skills/b2c/plugin.json index 1b47ff65b..b4d8c3713 100644 --- a/skills/b2c/plugin.json +++ b/skills/b2c/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "b2c", - "version": "1.6.2", + "version": "1.8.0", "description": "B2C Commerce development skills including Custom API development guides.", "author": { "name": "Salesforce" diff --git a/skills/package.json b/skills/package.json index 6747e0b63..e9b26d2ef 100644 --- a/skills/package.json +++ b/skills/package.json @@ -1,6 +1,6 @@ { "name": "@salesforce/b2c-agent-plugins", - "version": "1.7.0", + "version": "1.8.0", "description": "B2C Commerce agent skills plugins (b2c-cli, b2c). Private — distributed via GitHub release zips.", "private": true } diff --git a/skills/storefront-next/.codex-plugin/plugin.json b/skills/storefront-next/.codex-plugin/plugin.json index 255ecd5a4..8da0aeab4 100644 --- a/skills/storefront-next/.codex-plugin/plugin.json +++ b/skills/storefront-next/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "storefront-next", - "version": "1.7.0", + "version": "1.8.0", "description": "Storefront Next development skills for building React 19 storefronts on Salesforce B2C Commerce.", "author": { "name": "Salesforce" diff --git a/skills/storefront-next/plugin.json b/skills/storefront-next/plugin.json index da4f8e8d1..fad8baf4b 100644 --- a/skills/storefront-next/plugin.json +++ b/skills/storefront-next/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "storefront-next", - "version": "1.6.2", + "version": "1.8.0", "description": "Storefront Next development skills for building React 19 storefronts on Salesforce B2C Commerce.", "author": { "name": "Salesforce"