All notable changes to the SFMC DevTools VS Code extension are documented in GitHub Releases.
Publishing is triggered automatically via GitHub Actions when a new release is created.
command.failedtelemetry now optionally includes sanitizederrorName/errorCodewhenexecuteMcdevthrows (errorCategory: unknown). Successful{success:false}results still send onlycommandFailed. Never a raw message, stack, or path.
- Anonymous usage telemetry: the extension now sends a small amount of anonymous telemetry (activation, installed
mcdevversion, and mcdev-run command outcomes with durations) to PostHog (EU cloud) to gauge adoption and reliability. No personal data, file contents, credentials, or BU/tenant identifiers are collected. It follows VS Code's globaltelemetry.telemetryLevelsetting — set it tooffto opt out. The full event catalog ships intelemetry.json.
- Built-in Output-panel colorizer: DevTools now embeds its own log colorizer — an
mcdev-logTextMate grammar tuned tomcdev's log format — scoped to only the DevTools "mcdev" Output channel. Errors, warnings, and progress are distinguishable at a glance without any third-party extension. As a result, the previously-required Output Colorizer is no longer needed. - Auto-installed companion extensions: DevTools declares a minimal set of companion extensions that install alongside it, so
mcdevusers who do not install the separate SFMC extension packs still get a good editing experience:- Hard dependency (
extensionDependencies, installed automatically and cannot be removed without removing DevTools):- SFMC Language Service — so your code is readable and gets linted/formatted. VS Code has no built-in AMPscript/SSJS support, so the
.ssjs/.ampfiles DevTools retrieves would otherwise be uncolored plain text with no completions, hover docs, or diagnostics — and the ESLint/Prettier configsmcdevscaffolds would have nothing to hook into.
- SFMC Language Service — so your code is readable and gets linted/formatted. VS Code has no built-in AMPscript/SSJS support, so the
- Soft companions (
extensionPack, installed automatically but individually removable):- ESLint and Prettier — the
mcdevCLI scaffolds ESLint/Prettier configs into projects, so these are advisable to have installed. - SFMC Data Loader — companion
mcdevtooling for loading and manipulating Data Extension records alongside the metadata DevTools retrieves and deploys.
- ESLint and Prettier — the
- Hard dependency (
- This partially reverses the standalone-extension decision from 3.2.0 by design. EditorConfig is intentionally not included and remains available through the SFMC extension packs.
IBM.output-colorizeris no longer anextensionDependency: Output-panel coloring is now built into DevTools via the embeddedmcdev-loggrammar, so the third-party colorizer is no longer installed as a hard dependency.- Custom "recommended extensions" popup: the extension no longer shows its own modal prompting to install companion extensions, and the accompanying
sfmc-devtools-vscode.recommendExtensionssetting has been removed. Companion extensions are now offered through the SFMC extension packs and, per project, through VS Code's built-in Recommended Extensions prompt driven by themcdevboilerplate.vscode/extensions.json.
- The embedded
mcdev-loggrammar is adapted from IBM's vscode-log-output-colorizer (MIT) — see NOTICE.md.
- Bundled extension pack: the extension no longer auto-installs ESLint, EditorConfig, Prettier, SFMC Language Service, and SFMC Data Loader. It is now a standalone extension.
- README: added a "Recommended companion extensions" section pointing to the SFMC Extension Pack and SFMC Extension Pack Plus, and strongly recommending at least the SFMC Language Service extension.
- Cursor compatibility: lowered the required
engines.vscodefrom^1.109.0back to^1.101.0so the extension installs in Cursor (whose bundled VS Code base lags upstream). The1.109floor made the extension uninstallable in Cursor with an "is not compatible" error.
- Build (Template + Definition): the two Business Unit quick-picks now say source vs target so it is clear which selection maps to
--buFromand which to--buTo.
- Build (Template + Definition): the command now asks whether to clear the deploy folder before building and passes
--purgeor--no-purgeto mcdev so the CLI no longer waits indefinitely on an interactive prompt in the VS Code terminal.
- What's New: after an update, a notification offers to open in-editor release notes (parsed from this changelog). Command: SFMC DevTools: Show What's New. Full histories remain on GitHub Releases.
- Release notes: use SFMC DevTools: Show What's New in the Command Palette, or respond to the notification after an update, to open in-editor notes parsed from this changelog. For full details, see GitHub Releases.