Skip to content
Salesforce Dictionary - Free Salesforce GlossarySalesforce Dictionary
Summer '26 overview
For Developers

Summer '26 for Developers

Apex user mode by default, LWC v67, Live Preview GA, and the Dev channel.

Summer '26 for Developers

Apex database operations run in user mode by default. SOQL queries no longer support WITH SECURITY_ENFORCED because the enforcement is built in. Lightning Web Components ship API v67.0 with Live Preview GA, State Managers GA, and a VS Code extension that now previews React components in beta. Sandboxes can opt into a Dev channel that previews pilot and beta features weeks before they hit the standard channel. And the most important Salesforce Functions URL you bookmarked five years ago is now a 404 because Salesforce Functions is no longer available for purchase or renewal.

Summer '26 is the developer release where Salesforce makes its security defaults match the model the platform has been recommending for a decade, ships the LWC tooling pro-code teams have been waiting for, and starts retiring the integration patterns from 2015. If you maintain Apex, LWC, or Salesforce APIs, this article is the migration list you need to start before sandbox preview ends.

Apex runs in user mode by default

The single most consequential default change in years lives in the Apex Developer Guide. Starting Summer '26, database operations in Apex run in user mode by default. Object-, field-, and record-level security settings of the running user are enforced on every SOQL query, DML operation, and aggregate. The WITH SECURITY_ENFORCED SOQL clause is no longer supported because the enforcement is now built in. If you want the old system-mode behavior, you have to opt in explicitly with the new as system clause.

// Summer '26: this runs in user mode automatically
List<Account> accs = [SELECT Id, Name FROM Account WHERE Industry = 'Tech'];

// Old behavior, now opt-in
List<Account> accs = [SELECT Id, Name FROM Account WHERE Industry = 'Tech' WITH SYSTEM_MODE];
update [SELECT Id FROM Lead WHERE Status='Open' as system];

For codebases that quietly relied on system-mode behavior to bypass permission checks (think of every shared utility class that returned data without checking what the running user could see), the upgrade will start raising INSUFFICIENT_ACCESS errors. The remediation is straightforward but tedious: review every SOQL and DML in each Apex class, decide whether it should run as user or system, and add the explicit clause where needed.

The same default applies to integration tests. Integration Apex tests can now make callouts to Agentforce and Data 360, so you can write end-to-end tests that exercise the full agent stack instead of mocking it.

A few related Apex changes ship in the same release:

  • Queueable and Future job execution gets a new elastic limit. Async Apex jobs are sized dynamically against your org's daily limit instead of failing on a fixed cap. The percent-of-async-Apex-used banner shows up in the Apex Jobs page when you near the licensed daily limit.
  • Multiline strings arrive as a language feature using triple single-quote delimiters. String interpolation lands as String.template. Both are quality-of-life additions that finally bring Apex closer to modern language conventions.
  • The Block Apex Anonymous Code Execution from Managed Packages release update is scheduled to enforce in Summer '27. After enforcement, managed packages cannot use UserInfo.getSessionId() to obtain a session ID and execute anonymous Apex. Audit any managed-package code that relies on this pattern now.
  • The TestCategory, TestName, and TestNamespace fields are added to the existing ApexTestResult object so you can filter test runs by category and namespace.

Lightning Web Components: API v67.0 and the GA upgrade train

LWC API v67.0 is the version to bump your <apiVersion> element to. Update one version at a time, fix the deprecation warnings you encounter, and continue until you're current. Three GA features in v67 are worth calling out directly.

Live Preview is generally available, replacing the Local Dev name. Single Component Live Preview lets you run a real-time browser preview of one LWC. Experience Sites Live Preview previews an Experience site. The Live Preview VS Code Extension previews a Lightning web component (GA) or React component (beta via Agentforce Vibes) inside VS Code or Code Builder. The Salesforce CLI now installs the Live Preview plug-in automatically.

State Managers for LWC reach GA. State management at the component layer has been the painful part of pro-code LWC for a long time. State Managers let you group and manage component state across components with a structured approach: data logic stays separate from presentation, complex applications can share data more easily, and the new lightning/stateManager* modules document the built-in state managers shipping in v67.

Group Details Elements with the `name` Attribute finally fixes the <details> element compiler warning. Add a matching name attribute to a set of <details> elements and only one expands at a time, the way the native HTML spec intended.

The performance side of v67 ships Hot Module Reloading improvements: faster code execution and less memory consumption during component development.

Lightning Web Security: new distortions and a data: URI block

Lightning Web Security (LWS) adds new distortions for many web APIs in Summer '26. ESLint rules matching the distortions ship in the LWC ESLint package so violations surface at build time, not at runtime.

The most consequential single change is the `HTMLAnchorElement.prototype.href` distortion. Setting <a href> to a data: URI is now blocked. data: URIs embed content directly inline, which creates an entire category of security risks (cross-site scripting, content sniffing, sandbox escapes). The replacement pattern is blob: URIs, which are bound to the same-origin policy and are auditable in a way data: URIs are not.

// Blocked under LWS in Summer '26
const textEncoded = `data:text/plain,${encodeURIComponent('text string')}`;
anchor.href = textEncoded;

// Safe pattern: create a Blob and use URL.createObjectURL
const blob = new Blob(['text string'], { type: 'text/plain' });
const blobUrl = URL.createObjectURL(blob);
anchor.href = blobUrl;
// ...later:
URL.revokeObjectURL(blobUrl);

New distortions also cover Element.prototype.getAttribute/getAttributeNS, Element.prototype.innerHTML getter, Element.prototype.outerHTML getter, HTMLBaseElement.prototype.href, HTMLFormElement.prototype.action, IndexedDB factory methods, MutationObserver.observe, Selection ranges, multiple Range prototype methods, SVGAnimatedString.baseVal, Window.name, and the Observable/Promise prototype methods (.then, .catch, .finally).

The Remove Non-Public Fields from Custom Object Data in Aura Action Responses release update enforces in Spring '27. Aura action responses currently include internal system fields on custom objects; after enforcement, those fields are stripped. If a Lightning component uses an internal field that is not part of the public Salesforce API, it will display missing data or hit a JavaScript error. Review affected components in a sandbox first.

Salesforce Release Manager (Beta) and the Dev channel

Salesforce Release Manager (Beta) is the developer-experience feature that changes how teams pilot Salesforce features. Sandboxes can opt into a Dev channel that exposes pilot, beta, limited-release, and developer-preview features weeks before they roll out to the standard channel. Production environments stay on the standard channel and continue to receive the major update every four months. The Dev channel is sandboxes-only by design.

When a sandbox is on the Dev channel, the org shows a DEV-branded Salesforce cloud logo so developers can tell at a glance which channel they're on.

The DEV-branded Salesforce cloud logo appears in orgs on the Dev channel
Sandboxes on the Dev channel show a DEV-branded Salesforce logo so developers can tell at a glance which channel they are previewing on. Salesforce Summer '26 Release Notes p.271

Two Dev channel features in Summer '26 are worth knowing about even if you don't opt in:

Load Large Lists Dynamically (Developer Preview) introduces lightning-dynamic-list-container and lightning-dynamic-list-item base components that virtualize large lists. They render only the rows currently visible in the user's window, dispatch a loadmore event when scrolling needs more rows, preserve focus across virtualization, and ship native screen-reader support. If you've ever rendered a 5,000-row table in LWC, this is the pattern to migrate to.

Improve Encapsulation in Base Components with Internal Method Changes moves several base components (lightning-progress-indicator, lightning-progress-ring, lightning-progress-step, lightning-spinner) to private internal methods. Use only the documented public methods from the Lightning Component Reference. The change doesn't break the public API; it does break any code that was reaching into the internals.

The strategic decision for development leads is whether to put one or two sandboxes on the Dev channel. Beta features can lack accessibility and documentation. The benefit is that your team builds intuition for features six to nine months before they hit production. For platforms with a long internal review cycle, that lead time is valuable.

Agentforce platform for developers

Building agents is increasingly a pro-code activity, and Summer '26 ships the developer surfaces that make it real.

Multi-Agent Orchestration for Agentforce (Beta) is the composition primitive. Connect specialized subagents under one orchestrator in Agent Builder via Connect Agent as Subagent, give each a custom description that governs delegation, and reference them with the @ symbol under Actions Available for Reasoning in Canvas view. The architectural pattern matters as much as the feature: agentic workflows compose specialized agents the same way modern microservice architectures compose specialized services.

Multi-Agent Orchestration: connect a subagent in Agent Builder
Multi-Agent Orchestration (Beta): connect specialized subagents to an orchestrator agent and customize each subagent's description. Salesforce Summer '26 Release Notes p.120

Easily Upgrade Agents from the Legacy Builder to the New Builder lets you upgrade in place. You pick the agent and version, and Salesforce creates a new version in the new builder with all subagents, actions, system messages, settings, data, and connections converted to Agent Script. Salesforce can also automatically optimize the agent for reliability and performance after the upgrade.

Manage Agentforce Data Libraries with ADL Connect API (Beta) lets developers programmatically create and manage Data Libraries via REST, automating the previously manual provisioning step. The full ADL Resource Reference lives in the Connect REST API Developer Guide.

Customize Managed Prompt Templates with Overrides finally fixes the package-immutability problem for Prompt Builder. Templates delivered through managed packages can be marked as overridable. Subscribers create their own version that becomes the active template for that org while the publisher's version remains available through package upgrades. Govern Prompt Response Languages adds automatic and manual language controls.

Lightning Types support custom data structures for Agentforce Mobile SDK responses. Build Mobile Experiences with Custom Lightning Types lets you define types that structure, validate, and display complex agent data in mobile apps. Assign Custom Lightning Types to the Agentforce Mobile SDK lets you create and manage these types through the Lightning Types Setup UI. The Mobile SDK now supports custom Lightning Types for iOS and Android.

Prepare for Claude Sonnet 4 Reroute Date: Claude Sonnet 4 requests are rerouted to Claude Sonnet 4.6 on May 26, 2026 because Sonnet 4 is in Legacy state on Amazon Bedrock. The AWS-Hosted Option for Agentforce moves to Anthropic Claude Haiku 4.5 starting the week of May 18, 2026. Test prompts and custom actions with the new models before then.

APIs, integrations, and packaging

API version 67.0 ships in Summer '26 with a meaningful list of changes:

  • Event and Task objects are added to User Interface API as generally available. The objects were added late in API 66.0; the v67 release note exists for visibility. GraphQL API announces event and task object GA the same way.
  • External Services support enums. Include enums in the OpenAPI specification when you create an external service. When you add the external service to a Flow action element, the enum appears as a picklist. In other Flow elements and in Apex, the enum appears as its base type (string or number).
  • Salesforce Connect Cross-Org Adapter supports named credentials. The SOAP login() call is being retired and OAuth 2.0 authentication and password authentication won't be supported in the future. Migrate any cross-org adapter external data sources to use named credentials now.
  • SOAP API `login()` Call in SOAP API Versions 31.0 Through 64.0 Is Being Retired in Summer '27. If your integrations call login() directly on old API versions, upgrade to OAuth-based authentication before the retirement.
  • Salesforce-Managed X (Formerly Twitter) Authentication Provider Retirement is enforced this release. Create a custom X app and update SSO configurations to avoid breakage.

The new Connect REST API entries to announce Translation Workbench export and import job resources let you script translation deployments, useful for orgs that maintain large translation catalogues.

The packaging story keeps maturing. Second-generation [managed packages](/terms/managed-package) remain the recommended path; unlocked packages are positioned for internal apps. AgentExchange Partners have a hard deadline: update security controls in Connected Apps and ECAs before May 11, 2026, and explore the new AgentExchange marketplace that unifies AppExchange, AgentExchange, and Slack Marketplace into one storefront.

SLDS, dark mode, and the SLDS MCP server

The Salesforce Lightning Design System (SLDS) ships three notable updates:

Salesforce Lightning Design System Component Blueprints Updates introduce a new lightning-combobox variant with button-like pill styling. Combobox containers and individual options can now include icons, which is finally enough flexibility to build a clean source-picker UI (the Salesforce/Slack selector visible across the platform uses this pattern).

Slack appears as a first-class source in the SLDS Combobox component
The new lightning-combobox icon variant: source-picker UI with the Slack icon as a first-class option, used across SLDS 2 surfaces. Salesforce Summer '26 Release Notes p.276

Get Faster Design Guidance with SLDS MCP Tools (Beta) ships SLDS-focused tools through the Salesforce DX MCP Server. Use them inside Claude Code or any MCP-compatible client to look up styling hook definitions, explore styling hook categories, retrieve blueprint specifications by component name, and build accessible brand-aligned Lightning components without context-switching to docs.

Use Dark Mode in More Editions and Features (Beta) brings SLDS 2 dark mode to Performance and Unlimited edition orgs. You can upload a dark-mode variant of your company logo. Dark mode reduces eye strain in low-light conditions and lays the foundation for richer SLDS 2 theming and customization.

Retirements and migrations

A handful of long-supported features are on the way out. Plan migrations now:

  • Salesforce Functions is no longer available for purchase or renewal. Existing Functions customers should review the retirement plan in the release notes and migrate workloads to Heroku, MuleSoft, or Apex callouts.
  • Salesforce-Managed X Authentication Provider is retired this release. Migrate to a custom X app.
  • OAuth 2.0 username-password flow for connected apps is being retired in Winter '27. Migrate integrations to the OAuth 2.0 web-server flow or the client-credentials flow.
  • Update Instanced URLs in API Traffic is postponed to Winter '27. Update API integrations to use the org's My Domain login URL instead of instanced URLs.
  • Lightning Sync retires in April 2027. Migrate to Einstein Activity Capture.
  • Salesforce to Salesforce is retired in Spring '27. Migrate to Partner Cloud, Data 360, MuleSoft Anypoint, or MuleSoft for Flow.

What this release means for developers

Summer '26 is the release where the Salesforce developer toolchain catches up to modern norms. User-mode-by-default Apex aligns the platform's permission story with what every modern framework does. Live Preview GA + State Managers GA + the VS Code extension finally close the local-dev experience gap for LWC. The Dev channel gives you a leading view of features that used to land six months earlier. The data-URI block in LWS pulls Salesforce's web security closer to mainstream front-end security defaults.

The Apex audit is the most important thing to start on now, not after GA. The sandbox checklist below covers the seven things to test first. For an architect view of the same changes, see the Architect article. For administrator-side changes, see Admins. For the curated decision list, see the Top 10.

What to test in your sandbox

  1. 1. Audit every SOQL and DML in your Apex codebase for user-mode safety

    Review each Apex class and decide whether its database operations should run in user mode (the new default) or system mode. Add the explicit `as system` clause to SOQL and DML statements that must bypass the running user's CRUD/FLS. Remove the deprecated `WITH SECURITY_ENFORCED` clause from SOQL. Run all Apex tests against a sandbox after the upgrade to surface INSUFFICIENT_ACCESS errors.

    Reference: apex, sandbox, transaction-security

  2. 2. Bump LWC component API version to 67.0 and run the new LWS ESLint rules

    Update the apiVersion element in each component's js-meta.xml to 67.0, one version at a time, fixing deprecation warnings between bumps. Install the latest LWC ESLint package so the new Lightning Web Security distortions surface as build-time errors. Pay special attention to any HTMLAnchorElement href assignments that use the data: URI scheme.

    Reference: lwc, lightning-design-system

  3. 3. Migrate `data:` URI usage to `blob:` URLs

    Search the codebase for `data:` URI assignments to anchor href or other href setters. Replace them with the Blob + URL.createObjectURL pattern, and call URL.revokeObjectURL when the temporary URL is no longer needed. Test under LWS in a sandbox before the change ships to production.

    Reference: lwc

  4. 4. Try Live Preview VS Code Extension and State Managers in a real project

    Install the Live Preview plug-in via the Salesforce CLI (auto-install in Summer '26) and run a Single Component Live Preview against a real LWC. Convert one piece of complex component state to a State Manager from the `lightning/stateManager*` module and verify the developer experience matches the documentation.

    Reference: lwc, scratch-org, sandbox

  5. 5. Opt one sandbox into the Dev channel via Salesforce Release Manager

    In Setup, go to Salesforce Release Manager Settings and select the Development (Dev) channel for one sandbox. Confirm the org shows the DEV-branded Salesforce cloud logo. Identify which beta features your team should pilot first: the Dynamic Lists Developer Preview, Internal Method changes in base components, or Multi-Agent Orchestration.

    Reference: sandbox

  6. 6. Plan Salesforce Connect cross-org adapter migration to named credentials

    Inventory every cross-org adapter external data source that uses SOAP login() authentication. Create external client apps in the provider org. Define external credentials in the subscriber org. Migrate each external data source to use a named credential before the SOAP login() call retires in Summer '27.

    Reference: salesforce-connect, named-credential, soap-api

  7. 7. Test Multi-Agent Orchestration: upgrade a legacy-builder agent and connect it as a subagent

    Pick one existing Agentforce agent built in the legacy Agent Builder. Use the Upgrade flow to convert it to the new Agent Builder and Agent Script. Stand up a second orchestrator agent in the same sandbox, and use Connect Agent as Subagent to link the upgraded agent. Test that the orchestrator correctly delegates between subagents in a single conversation.

    Reference: agentforce, prompt-builder

Related dictionary terms

Read overall highlights →See top 10 features →See Admins take →See Architects take →See Consultants take →