fix(codebuilder-e2e): collect only modern VSIX, skip legacy dupe - W-23385030 - #7846
Draft
kylewalke wants to merge 131 commits into
Draft
fix(codebuilder-e2e): collect only modern VSIX, skip legacy dupe - W-23385030#7846kylewalke wants to merge 131 commits into
kylewalke wants to merge 131 commits into
Conversation
…flows - W-23195710 (#7716) * fix(ci): revert coreE2E background/wait parallelization - W-23195710 #7676 added `background: true` to the Playwright-install step and a `wait: playwright` step to parallelize the cache-miss leg. Although that syntax matches the GitHub workflow-syntax docs for background/wait steps, GitHub's parser rejects it for this repo: every push produced a 0s startup failure with zero jobs and no check-run, so Core E2E silently stopped appearing on PRs. Revert to the sequential form (remove `background:`, `id: playwright`, and the wait step) so the workflow parses and Core E2E shows on PRs again. The parallelization can be revisited once the background/wait step support is confirmed working in this repo. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(ci): revert publish background/wait parallelization - W-23195719 #7681 added `background: true` + a `wait: npm-install` step to publishVSCode.yml and publishOpenVSX.yml to overlap npm install with the release-artifact download. That syntax matches the GitHub workflow-syntax docs, but GitHub's parser rejects bare `wait:` steps for this repo (same failure as coreE2E: 0s startup failure, zero jobs, no check-run). No publish has exercised it yet — the last successful publish (v67.4.0) ran off a release branch that forked before #7681 merged to develop. The next release-triggered publish would pick up the broken syntax and fail at startup, blocking the release. Revert both files to sequential npm install (remove `background:`, `id: npm-install`, and the `wait:` steps). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…23355450 (#7708) * refactor(org): drop ConfigAggregatorProvider reload from updateConfigAndStateAggregators - W-23355450 * test(org): drop ConfigAggregatorProvider mock from orgUtil updateConfigAndStateAggregators suite - W-23355450 * refactor: apply review findings (stale error message, async no-op, test coverage) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…3313205 (#7714) * chore: plan for W-23313205 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * perf(apex-replay-debugger): resolve effect ESM to shrink bundle - W-23313205 * refactor: trim multi-sentence bullets in plan doc Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
…tion of effect - W-23313206 (#7715) * chore: plan for W-23313206 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * chore(apex-testing): record baseline node bundle metafile sizes - W-23313206 Baseline (effect resolves dist/cjs/*): - node dist/index.js: 4842726 bytes - fast-check bytesInOutput: 236679 (223 files) - effect inputs: 252 cjs, 0 esm - web dist/web/index.js: 5382007 bytes * perf(apex-testing): resolve effect ESM to tree-shake fast-check (node) - W-23313206 Spread effectEsmConditions into nodeBuild (after nodeConfig) so esbuild resolves effect's dist/esm/* (sideEffects:[]) and tree-shakes most fast-check. Node/desktop bundle only; browserBuild untouched. Output stays CJS. - fast-check bytesInOutput: 236679 -> 47542 (~79.9% drop) - node dist/index.js: 4842726 -> 3968180 bytes (~18.1% drop) - effect inputs: now 252 esm, 0 cjs - web dist/web/index.js: 5382007 (unchanged) - CJS output verified: no import.meta, no top-level ESM syntax * docs(apex-testing): esbuild effect-esm node verdict - W-23313206 Verdict ACHIEVED (node/desktop only; browserBuild untouched, output CJS): - node dist/index.js: 4,842,726 -> 3,968,180 B (-18.1%) - fast-check bytesInOutput: 236,679 -> 47,542 B (-79.9%, not eliminated) - effect inputs: 252 esm / 0 cjs (resolves dist/esm/*) - web dist/web/index.js: 5,382,007 B unchanged - 13/13 desktop Playwright specs green Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Spread effectEsmConditions into the apex node esbuild nodeBuild config so effect resolves its dist/esm/* tree, tree-shaking unused code and shrinking dist/index.js. Add scripts/bundling/effect.mjs to the vscode:bundle wireit files list for cache invalidation. Redo of #7717, which was accidentally merged to main instead of develop. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
) * chore: plan for W-23313209 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * perf(lightning): resolve effect ESM to shrink bundle - W-23313209 Apply effectEsmConditions override to the node main bundle so effect resolves dist/esm/* and the tree-shaker drops unused submodules (fast-check via Schema). Output stays CJS. dist/index.js: 1,807,557 -> 971,726 bytes (-46.2%) fast-check bytesInOutput: 235,284 -> 47,281 (-79.9%) vscode-uri re-resolves umd+esm (23,793) -> esm-only (11,460), net -12,333. acorn* / vscode-html-languageservice remain absent (auraServer-only). Emit dist/node-metafile.json for blast-radius auditing; exclude from VSIX via .vscodeignore and add scripts/bundling/effect.mjs to the vscode:bundle wireit files for cache invalidation. auraServer build untouched (no effect dep). All 4 aura desktop specs green locally (7 tests). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor: split Phase 2 package.json plan bullet into what/why/evidence Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Bumps [@salesforce/templates](https://github.com/forcedotcom/salesforcedx-templates) from 66.10.4 to 66.11.0. - [Release notes](https://github.com/forcedotcom/salesforcedx-templates/releases) - [Changelog](https://github.com/forcedotcom/salesforcedx-templates/blob/main/CHANGELOG.md) - [Commits](forcedotcom/salesforcedx-templates@66.10.4...66.11.0) --- updated-dependencies: - dependency-name: "@salesforce/templates" dependency-version: 66.11.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…tring sentinels - W-23173047 (#7706) * refactor(apex-testing): model ToolingTestClass id/namespacePrefix as Option Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(apex-testing): update discovery consumers to Option-based id/namespacePrefix Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * test(apex-testing): Option fixtures + flow-vs-apex + normalization coverage Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(apex-testing): graceful per-record decode + whitespace-only namespace normalization Decode test discovery records individually so a single malformed record degrades to a partial result (mirroring the 431 path) instead of aborting the entire discovery. Also trim whitespace-only id/namespacePrefix to none, restoring the prior .trim() normalization behavior. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(apex-testing): use Option.flatMapNullable via shared helper; tighten plan prose Extract resolvePackageInfoForClassId (Option.flatMapNullable) shared by orgTestItems and testController, replacing duplicated flatMap+fromNullable. Tighten plan doc prose to fragments per concise skill. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(apex-testing): drop unused export on ToolingTestClassWire type knip flags the type as an unused export; it is only referenced within schemas.ts (ToolingTestsPage.apexTestClasses), so it needs no export. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(apex-testing): drop remaining string-sentinel reconversions for namespacePrefix Option.getOrElse(..., () => '') at the QuickPick description boundary re-manufactured the wire "" sentinel that this PR's decode step was meant to eliminate; vscode's QuickPickItem.description is optional, so Option.getOrUndefined avoids it. buildClassIdToNamespace also collapsed back to a Map<string, string> sentinel one level out, feeding packageResolution.ts's untouched .trim()/!=='' checks. Both now carry Map<string, Option<string>> through to resolveFromInstalledSubscriberPackages. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor: pr feedback * refactor: use builtin empty string option parse --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…3397001 (#7728) Update @salesforce/source-deploy-retrieve dependency from ^12.32.5 to ^12.37.0 across multiple packages to add support for UiWidgetBundle object. Co-authored-by: mshanemc <shane.mclaughlin@salesforce.com>
* perf(soql): resolve effect ESM to shrink bundle - W-23313215 dist/index.js: 2,444,688 -> 1,681,756 bytes (-762,932, -31.2%). fast-check bytesInOutput: 235,898 -> 47,542 (-79.85%). Output stays CJS (format from nodeConfig; exports.activate/deactivate intact). server.js build excluded (no effect dep) -> byte-identical (747,774). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor: tighten plan doc wording per review Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * chore: plan for W-23313215 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor: cut repetition and trim prose in plan (review findings) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
* chore: plan for W-23313214 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * perf(services): resolve effect ESM to shrink bundle - W-23313214 Spread effectEsmConditions into nodeBuild so esbuild resolves effect dist/esm/* (sideEffects:[]) and tree-shakes unused submodules (fast-check via Schema). Output stays CJS; browserBuild untouched. node dist/index.js: 14,373,736 -> 13,271,750 bytes (-1,101,986, -7.67%) effect inputs: 269 cjs/0 esm -> 0 cjs/269 esm web dist/web/index.js: 14,124,889 bytes (unchanged) CJS verified: no import.meta, no top-level import/export; module.exports intact Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(services): add effect.mjs to wireit bundle files - W-23313214 Add ../../scripts/bundling/effect.mjs to files[] of vscode:bundle and vscode:bundle:local so a change to the effect ESM override helper invalidates the wireit cache and rebuilds the bundle (no stale dist). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor: apply concise review findings to plan doc Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * chore: plan for W-23313214 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * refactor: trim multi-sentence bullets in plan doc Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
* chore: plan for W-23313213 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * perf(org): resolve effect ESM to shrink bundle - W-23313213 Spread effectEsmConditions into org node esbuild so effect resolves to dist/esm/* and unused submodules tree-shake out. dist/index.js: 5,750,671 -> 5,060,350 bytes (-690,321, -12.0%) effect inputs (node-metafile): cjs 361 -> 0, esm 0 -> 361 Output stays CJS (no import.meta, no top-level ESM). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
* perf(lwc): resolve effect ESM to shrink bundle - W-23313210 * refactor: tighten plan prose per review findings Compress full-sentence Playwright rationale to fragments; cut repeated 'CI green is not a substitute for local run' restatements. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…Clean - W-23231100 (#7711) * refactor(org): collapse Effect->Promise->Effect round-trip in orgListClean - W-23231100 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * test(org): match orgListClean pure-Effect signatures - W-23231100 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(org): restore concurrency + error isolation in orgListClean, tighten Effect idioms - W-23231100 - findRemovableOrgs/displayRemainingOrgs: restore { concurrency: 'unbounded' } (refactor had silently downgraded parallel Promise.all fan-out to sequential) - displayRemainingOrgs: swallow ALL display failures (incl. FailedToCreateConfigAggregatorError), not just FailedToListAuthorizationsError, so a display error after a successful clean no longer surfaces as an unrelated command error; reuse the already-yielded channel binding - removeExpiredAndDeletedOrgs: replace hand-rolled Effect.reduce + O(n^2) array spread with Effect.partition; per-org failure now a tagged RemoveAuthError - determineConnectedStatusForNonScratchOrg: tagged OrgConnectionCheckError + catchTag (was ad-hoc object + catchAll); inline the status ternary - drop superfluous @ExportTaggedError on GetAuthFieldsError (knip sees it as used) - checkForSoonToBeExpiredOrgs: use ConnectionService.listAllAuthorizations accessor (clears StateAggregator) instead of raw AuthInfo.listAllAuthorizations - tests: seed ConnectionService stub for checkForSoonToBeExpiredOrgs Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * docs(org): tighten W-23231100 plan prose to fragments; state e2e option - W-23231100 - convert channel-dedup / channel-migration / getAuthFieldsFor / e2e-coverage prose to fragment bullets (concise skill) - DoD: record e2e option 2 (removal/display paths jest-only; desktop spec = no-op branch) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * test(org): widen R channel for leaked services in orgListClean tests - W-23231100 Migrated orgUtil helpers yield ChannelService/ConnectionService (and Alias/Config via getDefaultOrgConfiguration) off the services api, leaking them into the R channel. Seeded mock api satisfies them at runtime; widen R to ExtensionProviderService for the type-only provide, matching the orgDisplay test pattern. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…effect - W-23313212 (#7723) * chore: plan for W-23313212 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * perf(metadata): resolve effect ESM to shrink bundle - W-23313212 Spread effectEsmConditions into nodeBuild (after nodeConfig) so esbuild resolves effect dist/esm/* (sideEffects:[]) and tree-shakes unused submodules. Node/desktop bundle only; browserBuild untouched. Output CJS. - node dist/index.js: 2482792 -> 1752636 bytes (~29.4% drop) - effect inputs: now 251 esm, 0 cjs - web dist/web/index.js: 2457956 (unchanged) - CJS output verified: no import.meta, no top-level ESM syntax Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(metadata): add effect.mjs to vscode:bundle wireit files - W-23313212 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(metadata): add effect.mjs to vscode:bundle:local wireit files - W-23313212 Mirror the vscode:bundle fix so an edit to scripts/bundling/effect.mjs invalidates the local-bundle wireit cache too. esbuild.config.mjs imports effect.mjs unconditionally for both tasks; without this the :local target would serve a stale dist. Also tidy plans/W-23313212.md: run Phase 1 baseline from repo root via -w (no cd into package), bulletize the pre-PR e2e prose per concise skill, and note both wireit tasks in Phase 3. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
…-23348776 (#7731) * refactor(apex): drop redundant WorkspaceContext.initialize from activation - W-23348776 * refactor: apply medium/low review findings - concise: tighten NOTE/e2e-gate/COVERAGE-GAP bullets to fragment style - doc-maintenance: drop stale .WorkspaceContext from apex consumer table Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…runcation - W-23402143 (#7735) The numeric-sequencing gate batched all candidate epics into one SOQL query with a single LIMIT 200. When the combined result set exceeded 200 rows, some epics got zero rows back with no signal of truncation, so their unfinished siblings became invisible to the gate. This let W-23348771 (subject prefix "3") get claimed while W-23348768 ("2", same epic) was still New. Query epic-siblings per-epic instead, each with its own LIMIT 200.
Bumps [morgan](https://github.com/expressjs/morgan) from 1.10.1 to 1.11.0. - [Release notes](https://github.com/expressjs/morgan/releases) - [Changelog](https://github.com/expressjs/morgan/blob/master/HISTORY.md) - [Commits](expressjs/morgan@1.10.1...1.11.0) --- updated-dependencies: - dependency-name: morgan dependency-version: 1.11.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
… W-23313208 (#7719) * perf(core): resolve effect ESM to shrink bundle - W-23313208 * refactor: apply low-severity review findings - strip stray tool-output XML tags from plan file - drop redundant dist/node-metafile.json wireit output entry (covered by dist) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…085 (#7709) * chore: plan for W-23231085 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * refactor(org): read command labels from package.nls.json in runtime callers - W-23231085 * refactor(org): drop 14 duplicate command labels from i18n.ts - W-23231085 * refactor: apply low-severity review findings (skill docs) - vscode-window-messages: document command-title button-label carve-out - i18n-messages: refresh stale i18n.ts line-number citations Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(org): keep runtime command labels localized via nls.localize - W-23231085 Importing package.nls.json directly (English JSON) into runtime src/ stripped Japanese localization: VS Code only resolves manifest %key% from package.nls.<locale>.json, never exposes it to code. Runtime UI must use nls.localize (i18n.ts / i18n.ja.ts), the two-channel model in salesforcedx-vscode-apex-testing docs/ApexTestingMessageKeys.md. - Revert 3 runtime callers + orgList jest test to nls.localize - Restore the 8 runtime-used _text keys in i18n.ts (referenced from both package.json %key% and nls.localize — legitimately in both files) - Keep the 6 manifest-only keys removed from i18n.ts (no runtime caller) - package.nls.json / package.nls.ja.json unchanged (palette titles) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * docs: fix stale NLS guidance after localization revert - W-23231085 - vscode-window-messages skill: remove the "Exception" note that permitted importing package.nls.json for button labels (root cause of the unlocalized commit); button labels use nls.localize - W-23231085 plan: reflect actual outcome (6 keys net-removed, 8 kept in both files, runtime callers stay localized) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
…#7741) * chore: plan for W-23371026 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * chore(effect-ext-utils): enforce consistent-type-imports - W-23371026 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor: medium/low review findings Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
…7737) * chore: plan for W-23313216 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * docs(adr): visualforce extension build adopts shared effect-esm conditions - W-23313216 * perf(visualforce): resolve effect ESM to shrink bundle - W-23313216 * refactor: address medium/low review findings - W-23313216 - drop redundant external:['vscode'] from both esbuild builds (nodeConfig already sets it) - note LS conditions literal mirrors effectEsmConditions but stays out of shared-effect scope - trim plan Phase 1 bullet redundancy Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
…r-Layer - W-23369387 (#7740) * chore: plan for W-23369387 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * fix(observability): gate telemetry exporters per-export not per-Layer - W-23369387 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * test(observability): per-export telemetry gate + lazy construct honor toggle - W-23369387 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(observability): decouple gate wrapper + skip disabled-session enrichment - W-23369387 - GatedSpanExporter takes an injected isEnabled predicate (no spanUtils/ appInsights coupling, no o11yEndpoint param) - move isProductionTelemetryExportEnabled to appInsights (out of span-shape spanUtils); de-export now-internal isTelemetryExtensionConfigurationEnabled - SpanTransformProcessor.onStart skips per-span enrichment when gate disabled (was unconditional after the always-present processor change) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * docs(observability): numerals in plan per concise skill - W-23369387 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
…yService - W-23348768 (#7739) * chore: plan for W-23348768 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * refactor(apex): add fireSpan helper + runtime dispose for span export - W-23348768 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(apex): convert languageServer telemetry to spans - W-23348768 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(apex): convert languageUtils telemetry to spans - W-23348768 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(apex): drop core TelemetryService, span deactivation - W-23348768 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * test(apex): update jest for span-based telemetry - W-23348768 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * test(apex): e2e span telemetry spec - W-23348768 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * docs(apex): update external-consumers for dropped TelemetryService - W-23348768 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(apex): apply review findings for span telemetry - W-23348768 - extract fireErrorSpan sibling helper; use it for LSP_ERR catch block - type discoverFromLs failure as ApexTestDiscoveryError (no opaque unknown) - extract shared recordingTracer test helper; dedupe 3 jest mock factories - add error-path test for createServer LSP_ERR span - add dedicated disposeRuntime unit test (no-op / dispose+memo-clear / rebuild) - narrow sessionFile via requireFile helper, drop non-null assertions in e2e - fix misleading "no fork per event" comment; tighten verbose comment blocks - numerals in plan doc per concise skill Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
…s - W-23369813 (#7743) * chore: plan for W-23369813 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * chore(auto-build-wi): route doc-output phases through doc-format rules - W-23369813 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * feat(review-diff): flag over-altitude ADR/CONTEXT doc output - W-23369813 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * feat(review-plan): flag plans that pre-spec ADR/CONTEXT doc prose - W-23369813 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix: correct doc-altitude citation authority in review-plan prompt review-plan.js doc-altitude check cited ADR-FORMAT.md "When to offer" (the whether-to-write gates) as the altitude authority; altitude is governed by the Template ("1-3 sentences") / "Optional sections (only when earned)". Fix the citation instruction. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
…3358835 (#7744) * chore: plan for W-23358835 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * refactor(org,services): adopt Predicate.isError over instanceof Error idiom - W-23358835 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(apex,soql,lwc,lightning): adopt Predicate.isError over instanceof Error idiom - W-23358835 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(utils,metadata,core): adopt Predicate.isError over instanceof Error idiom - W-23358835 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor: complete Predicate.isError adoption in missed src hits - W-23358835 Covers lwc lwcTestController and apex-testing package (apexTestErrorMapper, orgApexClassProvider, testDiscovery, packageResolution) missed by the original diff. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor: address isError review nits - W-23358835 - lightning-lsp-common test mock: adopt isError - orgUtil: revert unrelated prettier reformatting, keep only isError swaps - plan: merge duplicated verification justification Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
…dling config - W-23313217 (#7745) * chore: plan for W-23313217 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * docs(adr): browser promotion criterion for effect ESM conditions - W-23313217 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(bundling): promote effect ESM node conditions to nodeConfig - W-23313217 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(bundling): promote effect ESM browser conditions to commonConfigBrowser - W-23313217 Per-package web e2e specs green for all 6 newly-conditioned browser builds (apex-log, apex-testing, lwc, metadata, services, soql). Deletes the now-unused effectEsmConditions opt-in constant and its wireit input references. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor: address review findings on effect ESM condition promotion Concise plan prose; document node LS/debug builds newly conditioned by fold and browser LS worker validation coverage in ADR 0021. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * chore: non-code cleanup --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…, migrate determineConnectedStatusForNonScratchOrg - W-23354940 (#7738) * chore: plan for W-23354940 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * feat(services): add optional username param to ConnectionService.getConnection - W-23354940 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(org): migrate determineConnectedStatusForNonScratchOrg to getConnection - W-23354940 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix: isolate stale scratch-org auth file per worker to fix parallel e2e race - W-23354940 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor: address medium/low review findings - W-23354940 - co-locate connection-status error mapping into one catchTags with an accurate comment (orgUtil) - replace setTimeout-race ref-update assertion with a deterministic spy (connectionService test) - document optional username param + ref-mutation skip (connection-service skill doc) - tighten plan prose to fragments (concise) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(e2e): stop dropping dev hub (isExpired 'unknown') from org table - W-23354940 processOrgForDisplay used a loose truthy `if (orgAuth.isExpired)`. A non-scratch org (e.g. the dev hub) has no expirationDate, so @salesforce/core reports isExpired: 'unknown' — a truthy string — dropping the hub row before determineConnectedStatusForNonScratchOrg could run. Match the picker's `=== true` guard so only definitely-expired orgs are skipped. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(e2e): move staleScratchOrgAuth helper to org ext (PR review) - W-23354940 The synthetic stale-scratch-org auth helper is only used by the org ext's orgListClean spec, so it belongs in the org package's test helpers rather than the shared playwright-vscode-ext, matching the per-package test/playwright/helpers convention. Dropped its three exports from the ext barrel; spec now imports from ../helpers. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
… requirements - W-23348838 (#7816) * chore: plan for W-23348838 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(apex): replace fileOrFolderExists with services FsService in requirements - W-23348838 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(apex): address review findings for requirements fileOrFolderExists refactor - add missing SalesforceVSCodeServicesApi cast so test:compile passes (TS2322) - rename fileOrFolderExistsEffect -> checkFileOrFolderExists (drop FooEffect suffix) - type runtime mock runPromise/getServicesApi instead of any - make FsService.fileOrFolderExists + getServicesApi jest.fns for per-test overrides - log warning on swallowed services-extension tags so outages are traceable - cover the false path and catchTags failure branch Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(apex): mock vscode.env.language in requirements.test.ts - W-23348838 effect-ext-utils reads vscode.env.language at import time; the test's vscode mock lacked env, crashing the suite once requirements.ts pulled in effect-ext-utils. --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
… W-23382880 (#7802) * refactor(services): route FsProvider read-only checks through shared runtime - W-23382880 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * test(services): cover FsProvider runtime-routed + fallback read-only paths - W-23382880 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(services): repair FsProvider read-only test compile + false coverage - W-23382880 - require('vscode') instead of static import so workspaceFolders assignment compiles (was TS2540, blocked whole package jest run) - spy isServicesRuntimeReady/getServicesRuntime and assert getServicesRuntime was called, so a mutant deleting the runtime-routed branch now fails - drop 'as never' cast; mock via the real getServicesRuntime return type Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(services): flatten read-only guard, rename Effect helper, tidy plan - W-23382880 - early-return the empty-readOnly bail; flat runtime-ready/fallback dispatch - rename isItReadOnlyEffect -> checkIsReadOnly (drop Effect suffix, avoid collision with the isItReadOnly wrapper) - compose getServicesRuntime into one flat pipe ending in Effect.runSync - trim redundant plan prose; sync Phase 2 to the spy-based test Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(e2e): back FsProvider read-only test with memfs to fix Windows paths - W-23382880 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Bumps [tar](https://github.com/isaacs/node-tar) to 7.5.20 and updates ancestor dependency [npm](https://github.com/npm/cli). These dependencies need to be updated together. Updates `tar` from 7.5.16 to 7.5.20 - [Release notes](https://github.com/isaacs/node-tar/releases) - [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md) - [Commits](isaacs/node-tar@v7.5.16...v7.5.20) Updates `npm` from 11.17.0 to 11.18.0 - [Release notes](https://github.com/npm/cli/releases) - [Changelog](https://github.com/npm/cli/blob/v11.18.0/CHANGELOG.md) - [Commits](npm/cli@v11.17.0...v11.18.0) --- updated-dependencies: - dependency-name: tar dependency-version: 7.5.20 dependency-type: indirect - dependency-name: npm dependency-version: 11.18.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…416944 (#7822) * chore: plan for W-23416944 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * feat(lint): steer instanceof Error to effect/Predicate isError - W-23416944 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor: address medium/low review findings - W-23416944 - concise plan doc (.claude/plans/W-23416944.md) - document instanceof-Error selector scope limitation Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
* chore: plan for W-23356230 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * chore(deps): bump ts-jest to 29.4.11 for TS6 peer range - W-23356230 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * chore(deps): bump typescript to 6.0.3 + ignoreDeprecations - W-23356230 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(build): ts6 tooling + rootDir conformance - W-23356230 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor: address review findings on wireit inputs + tsconfig - add scripts/tsconfig.json to check:package-lock wireit files array - remove no-op rootDir:'.' from lwc-language-server tsconfig Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * docs: tighten W-23356230 plan prose per concise findings Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(build): restore rootDir on lwc-language-server tsconfig - W-23356230 TS6011 fires on TS6.0.3 for the jest test suite even though tsc --noEmit was clean; the earlier refactor commit incorrectly dropped rootDir as a no-op. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…496 (#7818) * chore: plan for W-23354496 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * refactor(apex-testing): drop try/catch in index + testUtils - W-23354496 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(apex-testing): convert try blocks to Effect in test views - W-23354496 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(apex-testing): enable functional/no-try-statements - W-23354496 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(apex-testing): log + catchTags instead of blanket catchAll in retrieve - W-23354496 Replace the blanket Effect.catchAll in retrieveOrgOnlyClassFromUri with catchTags keyed to the inferred failure tags, each logging the discarded error before showFailedExecution (per plan Phase 2 + ADR 0004). Cancellation notification switched to Effect.sync (fire-and-forget). getTestClassName API regains its diagnostic via tapError/logDebug before orElseSucceed. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * test(apex-testing): cover cancel + failed-execution retrieve branches - W-23354496 Add jest cases for the UserCancellationError (canceled notification) and MetadataRetrieveError (showFailedExecution) branches of retrieveOrgOnlyClassFromUri, which had no coverage. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * docs(apex-testing): tighten plan wording to concise style - W-23354496 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(apex-testing): flatten nested runtime hop in getTestClassName API - W-23354496 Extract getTestClassNameEffect so the exported API runs the tree read once via runPromise instead of runPromise wrapping a sync runSync on the same ManagedRuntime. Drop the now-unused sync getTestClassName export. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(apex-testing): remove unused getTestClassName extension API Dead export with no in-repo or external consumers (verified across forcedotcom/salesforcecli orgs). Removes the exported API method, its activation-failure fallback, the ApexTestingVSCodeApi type, and the now-orphaned getTestClassNameEffect internal helper. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * refactor(apex-testing): let activation errors propagate The activate-level Effect.catchAll only existed to return a degraded fallback API after a failed activation; that API is now gone, so the catch merely swallowed errors and made failed activations look successful to VS Code. Drop it to match the apex-log/org/metadata pattern and surface activation failures. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * refactor(apex-testing): tidy retrieveOrgOnlyClass composition - getRetrievedFileUri returns Option<URI>; the retrieve pipe uses Effect.transposeMapOption to run showTextDocument+closeEditorTabByUri only on Some, removing the intermediate var + if-branch entirely - fold the non-fatal refresh and success notify into the retrieve pipe as terminal taps (side effects needing no downstream value) - replace dead catchAll+orElseSucceed with tapError+ignore on the refresh (orElseSucceed was unreachable after catchAll discharged the error channel to never) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
* chore: plan for W-23429452 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(services): resolve catchUnfailableEffect dead catches - W-23429452 * fix(lwc): typed tryPromise for lazy testSupport import - W-23429452 * chore(effect): enforce catchUnfailableEffect - W-23429452 * fix(services): use Effect.ignore for idempotent alias unset - W-23429452 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * docs(plan): trim repetition/verbose prose in W-23429452 plan Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Bare gh api call defaulted to page 1 (30 items), undercounting open alerts (showed 14 of 33). --paginate + jq -s add fixes it. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…iac, still consumes core (#7826) Agentforce Vibes Autocomplete (salesforce.agentforce-vibes-autocomplete) builds from branch afv-v3.0-iac, not main. That branch hard-depends on core (extensionDependencies + MIN core 60.13.0; CoreExtensionService throws if CommandEventDispatcher is absent). The prior "dropped core / all dead" note came from searching main only — GitHub code search skips non-default branches. - Move einstein-gpt to direct core API consumers with the members it uses - Warn that CommandEventDispatcher / sf.internal.sobjectrefresh.complete is a live contract - Add gh recipes for finding a repo's shipping branch and reading it - Bump verified date to 2026-07-21 Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…put channel - W-23348840 (#7821) * chore: plan for W-23348840 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * refactor(core): back channelService with services channel, dedupe output channel - W-23348840 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * test(core): e2e guard single 'Salesforce CLI' channel via metadataXmlSupport - W-23348840 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor: apply medium/low review findings - W-23348840 - dedupe output-channel option matching via shared helper (DRY) - bind getCoreChannelService() once per metadataXmlSupport method - setCoreChannel returns void (dead return value) - concise plan doc prose + numeral Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor(core)!: remove top-level channelService from public API - W-23348840 Consumers use services.ChannelService instead. getCoreChannelService() stays for internal metadataXmlSupport use. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
…ices - W-23429789 (#7830) Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…ist of classes in the current suite when the classes have namespaces - W-23531661 (#7831)
Bumps [@salesforce/source-deploy-retrieve](https://github.com/forcedotcom/source-deploy-retrieve) from 12.37.0 to 12.37.2. - [Release notes](https://github.com/forcedotcom/source-deploy-retrieve/releases) - [Changelog](https://github.com/forcedotcom/source-deploy-retrieve/blob/main/CHANGELOG.md) - [Commits](forcedotcom/source-deploy-retrieve@12.37.0...12.37.2) --- updated-dependencies: - dependency-name: "@salesforce/source-deploy-retrieve" dependency-version: 12.37.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [shx](https://github.com/shelljs/shx) from 0.3.4 to 0.4.0. - [Release notes](https://github.com/shelljs/shx/releases) - [Changelog](https://github.com/shelljs/shx/blob/main/CHANGELOG.md) - [Commits](shelljs/shx@v0.3.4...v0.4.0) --- updated-dependencies: - dependency-name: shx dependency-version: 0.4.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [svgo](https://github.com/svg/svgo) from 3.3.3 to 3.3.4. - [Release notes](https://github.com/svg/svgo/releases) - [Commits](svg/svgo@v3.3.3...v3.3.4) --- updated-dependencies: - dependency-name: svgo dependency-version: 3.3.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…vider - W-23446403 (#7835) * chore: plan for W-23446403 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * chore(core): remove dead findParentMetadataType from metadataHoverProvider - W-23446403 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
Bumps [linkify-it](https://github.com/markdown-it/linkify-it) from 5.0.1 to 5.0.2. - [Changelog](https://github.com/markdown-it/linkify-it/blob/master/CHANGELOG.md) - [Commits](markdown-it/linkify-it@5.0.1...5.0.2) --- updated-dependencies: - dependency-name: linkify-it dependency-version: 5.0.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…-23436145 (#7834) * chore: plan for W-23436145 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * docs(agent): shorten verbose new code comments in doc-maintenance - W-23436145 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * refactor: apply concise review findings - W-23436145 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
… helpers - W-23366115 (#7829) * chore: plan for W-23366115 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * refactor(e2e): extract continueDebugSession to shared debugHelpers Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> * refactor(e2e): export createAndOpenApexScript from playwright-vscode-ext Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> * fix(e2e): restore original maxContinues defaults, guard empty content, escape regex - Restore maxContinues=2 default in shared continueDebugSession (was 3); checkpoints spec passes 3 explicitly to preserve its original behavior. - Make `content` optional in createAndOpenApexScript; guard content-population block with `if (opts.content)` to skip redundant select-all/save on empty path. - Escape regex-special characters in opts.name before RegExp interpolation. - Add comment documenting intentional catch-swallow for session-end detection. - Condense plan file prose per concise-skill conventions. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> * fix: createAndOpenApexScript() always calls the same command --------- Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.2 to 3.1.4. - [Release notes](https://github.com/fastify/fast-uri/releases) - [Commits](fastify/fast-uri@v3.1.2...v3.1.4) --- updated-dependencies: - dependency-name: fast-uri dependency-version: 3.1.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore: plan for W-23429469 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(soql): replace try/catch in Effect.gen with catchAllCause - W-23429469 Route query/request failures (defects from Effect.promise) through catchAllCause + Cause.squash instead of generator try/catch. Both sites use a nested Effect.gen body piped to catchAllCause + Effect.ensuring so the channel is shown exactly once (on success or error) via ChannelService.showChannel. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * test(soql): cover executeDataQuery/executeQueryPlan error path - W-23429469 Drive both commands through query/request rejection and success; assert formatted error appended and channel shown exactly once. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * chore(effect): enforce tryCatchInEffectGen - W-23429469 Append tryCatchInEffectGen to enforcedRules ratchet (all sites fixed). Point effect-best-practices skill at the now-enforced LS rule; no duplicate prose. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(soql): show output panel concurrently on data query success - W-23429469 saveResultsToCSV awaits a showInformationMessage prompt that never resolves without user action, so gating channel.show() behind Effect.ensuring (which runs only after the gen body completes) left the Output panel closed on the success path — the SOQL Run Query e2e specs timed out waiting for OUTPUT_PANEL on all three OSes. Restore showChannel as a concurrent member of the success Effect.all; keep an explicit show after appendToChannel on the catchAllCause error path. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Bumps [@salesforce/templates](https://github.com/forcedotcom/salesforcedx-templates) from 66.11.1 to 66.13.0. - [Release notes](https://github.com/forcedotcom/salesforcedx-templates/releases) - [Changelog](https://github.com/forcedotcom/salesforcedx-templates/blob/main/CHANGELOG.md) - [Commits](forcedotcom/salesforcedx-templates@66.11.1...66.13.0) --- updated-dependencies: - dependency-name: "@salesforce/templates" dependency-version: 66.13.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
# Conflicts: # packages/playwright-vscode-ext/src/utils/nonCriticalErrorPatterns.ts
…23385030 The local build (npm run vscode:package) produces both a modern and a legacy VSIX for core/lwc/lightning/apex-debugger/apex-oas. The collection loop grabbed every *.vsix per package dir, so the swap unpacked two override dirs per extension and the verify gate failed with 'expected exactly 1 override dir, found 2'. Collect only each package's own-version (modern) VSIX.
…g display - W-23385030 Recent sf CLI versions redact accessToken in 'sf org display --json', returning a '[REDACTED] Use sf org auth show-access-token ...' placeholder instead of the real token. Both the local script and the CI workflow passed that placeholder as SF_ACCESS_TOKEN into the container, so the container's start-time org login failed (exit_code=1), no config was set, and the Config List spec saw 'No results found'. Source the token from 'sf org auth show-access-token --json' in both places. Verified locally: container auto-login succeeds, all container specs pass.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The local Code Builder e2e run (
npm run test:container:local, build-from-working-tree path) failed the extension version gate withexpected exactly 1 override dir, found 2.npm run vscode:packageproduces two VSIX forcore,lwc,lightning,apex-debugger, andapex-oas— a modern one (e.g.67.6.0) and a legacy one (e.g.67.0.0). The VSIX-collection loop grabbed every*.vsixper package dir, so the swap unpacked two override dirs per extension and the verify gate rejected the mixed versions.Fix
Collect only each package's own-version (modern) VSIX — read
name+versionfrom each package'spackage.jsonand match<name>-<version>.vsix, skipping the legacy dupe. Verified locally: 17 VSIX collected (was 22), version gate passes.Also updates the
playwright-e2eskill doc to describe the dedupe behavior.W-23385030