Salesforce Dictionary - Free Salesforce GlossarySalesforce Dictionary
Spring '26 overview
For Developers

Spring '26

Spring '26 is a heavyweight release for developers. The story is vibe coding with Agentforce Vibes, a multi-framework runtime for React apps inside Salesforce, an Apex test-targeting flag that finally lets you skip irrelevant tests, and meaningful upgrades to LWC, agent actions, and the Apex platform. API version 66.0 ships with this release.

What's new for developers

  • Agentforce Vibes welcome page (GA Apr 15, 2026). Inside the Agentforce Vibes IDE and the Agentforce Vibes extension for VS Code, the new welcome page lets you start an agent project, a Lightning app, or a React app from a template or a natural-language prompt. Salesforce-hosted MCP servers and Salesforce Skills preload guardrails for metadata generation.
  • Salesforce Multi-Framework (Beta) — React apps in Salesforce. Build React apps with Vibes, deploy them to your org, and access them from the App Launcher on desktop or mobile. Use Data SDK + GraphQL to read/write record data. The Content Read-Only MCP server (Beta) lets the agent pull published brands and CMS images into your React app via natural-language prompts. React Live Preview ships as the renamed Local Dev experience and is GA for previewing a single LWC in the browser or in VS Code.
  • Apex picks up several big items.
  • `RunRelevantTests` (Beta) — a new Apex test level that analyses your deployment payload and runs only the tests that touch the changed code. Annotate test classes with @IsTest(critical=true) to force-run regardless, or @IsTest(testFor='ApexClass:Foo') to bind a test to specific components. Supported by sf project deploy start --test-level RunRelevantTests, the Metadata API deploy(), and the deployRequest REST resource.
  • Apex cursors and pagination cursors are GA. Cursor.fetch() counts against SOQL limits but lets queueable jobs handle batch-Apex-class workloads with variable batch sizes. The new PaginationCursor class drives multipage UIs, and @AuraEnabled methods now accept and return cursors. The 24-hour cap is 100 million new cursor rows.
  • Exposing Apex REST and `@AuraEnabled` controller methods as agent actions is GA. Annotate methods, generate the OpenAPI spec, deploy it, and manage exposed endpoints in API Catalog.
  • ConnectApi.RecordUi.getPicklistValuesByRecordType() returns all dependent picklist values per record type in one call — no more callouts to assemble them.
  • Blob.toPdf() now uses the Visualforce PDF rendering service (better fonts, multibyte support) under the Use Visualforce PDF Rendering Service Release Update.
  • Sharing-recalculation behavior is changing — there's a Release Update to walk through the impact and a code-update guide.
  • purgeOldAsyncJobs() has a new overload that takes a count cap so you can incrementally drain old async jobs instead of trying to delete everything at once.
  • Lightning components.
  • Complex expressions in LWC templates (real ternaries, member access, method calls).
  • Lightning Types lets you declare data structures that drive custom components and Agentforce-rendered UI consistently across the platform.
  • Base components for empty states and illustrations are in beta; the TypeScript rollout for all base components is complete.
  • Screen flows now support LWC local actions — invoke a component method from a screen flow without a server round-trip.
  • Error Console keeps non-fatal LWC errors from interrupting the user.
  • Lightning Out 2.0 improvements continue.
  • API version 66.0 lands. Notable: DataWeave supports nested SOQL in transformations, SOQL queries with WITH USER_MODE can run as the Automated Process User (66.0+), and Apex classes used as invocable-action parameters must expose a public/global no-arg constructor in 66.0+.
  • DevOps Center is GA — full ALM workflow inside Salesforce.
  • Test Discovery API adds a category query parameter so you can filter for Apex-only or flow-only tests in large suites.

What's deprecated

  • Salesforce Functions is no longer available for purchase or renewal — read the retirement plan and migrate workloads to Heroku, External Services, or Apex callouts.
  • Connected Apps are restricted: creation is disabled by default in new orgs; SAML connected apps must migrate to External Client Apps.
  • AppExchange Connected App and ECA solutions must follow new security requirements (review the partner-security release notes if you publish a managed package).
  • Visualforce Release Update continuation — there's an ongoing release update; check the Visualforce section.

What's still in beta

  • Salesforce Multi-Framework for React (sandbox/scratch only, English default).
  • Content Read-Only MCP Server, Metadata Experts MCP Server.
  • `RunRelevantTests` test level.
  • LWC base components for empty states / illustrations.
  • Agentforce Builder (the new text-editor-inspired agent IDE).
  • Validate and Optimize React Apps for Production (developer preview) — runs validators for code quality, security, and accessibility and emits a readiness score.

Want a single bullet to take to your tech lead? "Spring '26: API 66.0, Apex cursors GA, Vibes coding adds React app support inside Salesforce, RunRelevantTests beta — and Salesforce Functions is dead, plan a migration."

What to test in your sandbox

  1. 1. Try RunRelevantTests on a real deployment

    In a Developer or scratch org, deploy a small Apex change with `sf project deploy start --test-level RunRelevantTests`. Then deploy the same change with `RunLocalTests` and compare run times. Annotate one critical test with `@IsTest(critical=true)` to confirm it runs on every deploy regardless of payload.

    Reference: salesforce-dx, apex-test-execution, apex

  2. 2. Migrate one batch Apex job to a queueable cursor

    Pick a non-critical Database.Batchable class and rewrite it using `Database.getCursor()` plus a queueable chain. Test backwards/forwards traversal and variable batch sizes. Compare governor consumption — cursors typically use less batch overhead. The 24-hour cap is 100 million new cursor rows.

    Reference: batch-apex, apex, soql-salesforce-object-query-language

  3. 3. Build a React app with Salesforce Multi-Framework (Beta)

    In a sandbox or scratch org with English as default, enable React Development with Salesforce Multi-Framework (Beta) from Setup. Open Agentforce Vibes IDE, run *Show Welcome Page*, pick a React template, and deploy. Confirm the app appears in the App Launcher and that GraphQL reads return the records you expect.

    Reference: agentforce-vibes-extension, agentforce-vibes-ide, sandbox

  4. 4. Expose an Apex method as an agent action

    Annotate an `@AuraEnabled(callable=true)` method, generate an OpenAPI spec via the Salesforce CLI, and deploy it. In Agentforce Studio → Agents → Asset library, configure the method as an action and preview it with mock data. Verify the method shows up in API Catalog and is invokable from a topic.

    Reference: agent-action, agentforce-studio, apex-controller, api-catalog

  5. 5. Adopt Lightning Types for one custom component

    Pick an LWC that returns ad-hoc data shapes. Define the shape as a Lightning Type, retype the component's public properties, and confirm the Agentforce response renderer can use the same Type for consistent UI. Validate the build with `sf lightning lwc test`.

    Reference: lightning-types, lwc, lightning-components

  6. 6. Plan the Salesforce Functions exit

    Inventory every Salesforce Functions deployment. For each one, decide the migration target — Heroku, External Services, Apex callouts to a serverless platform, or MuleSoft. Estimate effort and add to your roadmap. Functions is no longer available for purchase or renewal.

    Reference: salesforce-functions, mulesoft-integration, apex

  7. 7. Test the Apex sharing-recalculation Release Update

    Activate *Update Apex Code and Flows for Changed Sharing Recalculation Behavior* in a sandbox. Run your full test suite and look for sharing-rule failures or trigger-context anomalies. The release-update help page has a guided code review — work through it before enabling in production.

    Reference: apex-managed-sharing, sharing-rule, apex-triggers

  8. 8. Validate the no-arg constructor change in API 66.0

    For any Apex class used as an invocable action parameter, confirm there is a public (or global, for packaged) no-arg constructor. In 66.0+, the runtime enforces this. Use `RunLocalTests` against a sandbox set to API 66.0 and watch for `System.NoSuchMethodException`.

    Reference: apex-classes, api-version, salesforce-api-version

Related dictionary terms

See Admins take →See Architects take →See Consultants take →