Skip to content

compatibility

What Glade runs locally ​

Capabilities

Use this page to see what Glade runs locally, what runs with named limits, and what still requires Salesforce or a plugin.

Selected APIs

Explore capability notes

Behavior and limits for selected Apex APIs. Use the coverage guides for the broader runtime, standard library and object model.

Runs locally describes a local implementation, including deterministic models. Runs locally with limits covers partial or stub rows. Requires Salesforce identifies unsupported rows. None of these labels alone establishes Salesforce parity.

Page 1 of 12.

  • AccessLevel.withPermissionSetId(String)Runs locally
    Execution classification
    supported
    Modeled behavior and limits
    Creates a local permission-set-scoped user-mode token used by supported SOQL and DML permission checks.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • Answers.findSimilar(Question)Runs locally
    Execution classification
    supported
    Modeled behavior and limits
    Local execution returns a deterministic empty List<Id>; this harness does not implement the hosted similarity-search service.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • ApexPages.MessageRuns locally
    Execution classification
    supported
    Modeled behavior and limits
    Constructor, getters, add/get/has message state, and Visualforce action reset behavior are modeled.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • ApexPages.addMessageRuns locally
    Execution classification
    supported
    Modeled behavior and limits
    Stores page messages on the VM instance.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • ApexPages.addMessage(ApexPages.Message)Runs locally
    Execution classification
    supported
    Modeled behavior and limits
    Stores page messages on the VM instance.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • ApexPages.addMessages(Exception)Runs locally
    Execution classification
    supported
    Modeled behavior and limits
    Converts supported exception values into VM-local page messages.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • ApexPages.addMessages(Object)Runs locally
    Execution classification
    supported
    Modeled behavior and limits
    Converts supported exception and message values into VM-local page messages.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • ApexPages.currentPageRuns locally
    Execution classification
    supported
    Modeled behavior and limits
    Returns a deterministic local PageReference.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • ApexPages.currentPage()Runs locally
    Execution classification
    supported
    Modeled behavior and limits
    Returns the VM-local PageReference.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • ApexPages.getMessagesRuns locally
    Execution classification
    supported
    Modeled behavior and limits
    Returns VM-local page messages.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • ApexPages.getMessages()Runs locally
    Execution classification
    supported
    Modeled behavior and limits
    Returns VM-local page messages.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • ApexPages.hasMessagesRuns locally
    Execution classification
    supported
    Modeled behavior and limits
    Checks VM-local page messages.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • ApexPages.hasMessages()Runs locally
    Execution classification
    supported
    Modeled behavior and limits
    Checks VM-local page messages.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • ApexPages.hasMessages(ApexPages.Severity)Runs locally
    Execution classification
    supported
    Modeled behavior and limits
    Checks VM-local page messages by severity.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • Visualforce full rendering lifecycleRequires Salesforce
    Execution classification
    unsupported
    Modeled behavior and limits
    Full Visualforce rendering lifecycle requires the hosted renderer and is fenced by PageReference rendering diagnostics locally.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • Approval.process hosted approval engine routingRequires Salesforce
    Execution classification
    unsupported
    Modeled behavior and limits
    Hosted criteria evaluation, queue/group approver routing, and live approval service routing require Salesforce approval services.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • Approval.process(Approval.ProcessRequest)Runs locally
    Execution classification
    supported
    Modeled behavior and limits
    Runs a seeded local ProcessDefinition, ProcessNode, ProcessInstance, and ProcessInstanceWorkitem engine for submit, approve, and reject request shapes.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • Approval.process(Approval.ProcessRequest, Boolean)Runs locally
    Execution classification
    supported
    Modeled behavior and limits
    Runs the seeded local approval engine with allOrNone error shaping for submit, approve, and reject request shapes.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • Approval.process(List<Approval.ProcessRequest>)Runs locally
    Execution classification
    supported
    Modeled behavior and limits
    Runs ordered local submit and workitem request lists and rolls back earlier successful local approval records when the default allOrNone path fails later in the list.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • Approval.process(List<Approval.ProcessRequest>, Boolean)Runs locally
    Execution classification
    supported
    Modeled behavior and limits
    Runs ordered local submit and workitem request lists, returning per-request errors when allOrNone is false and rolling back the local list transaction when allOrNone is true.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • Assert.areEqualRuns locally
    Execution classification
    supported
    Modeled behavior and limits
    Routes through local assertion failures with optional message text.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • Assert.areNotEqualRuns locally
    Execution classification
    supported
    Modeled behavior and limits
    Routes through local assertion failures with optional message text.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • Assert.failRuns locally
    Execution classification
    supported
    Modeled behavior and limits
    Raises local System.AssertException with optional message text.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • Assert.isFalseRuns locally
    Execution classification
    supported
    Modeled behavior and limits
    Routes through local assertion failures with optional message text.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.
  • Assert.isNotNullRuns locally
    Execution classification
    supported
    Modeled behavior and limits
    Routes through local assertion failures with optional message text.
    Evidence
    Checked source: docs/STDLIB_COVERAGE.md. This row does not attach a live Salesforce parity receipt.

Notes come from docs/STDLIB_COVERAGE.md. Follow the source reports below for regression-test links and evidence scope.

Start here when deciding whether Glade can run a project, a test class, or a local Salesforce API flow. Checked Apex/runtime reports carry the method-level detail. The LWC summary below links to the local shell guide and support table when you need route and module detail.

Stable download: Glade v0.2.15. The searchable capability notes describe selected behaviors in the checked source ledger. The download version does not certify these notes or inherit the historical runtime/parity evidence below.

The generated capability catalog is incomplete: its Flow limits and Platform Cache entries summarize selected behavior. Check the Apex support reference and automation guide as well; an absent entry is not a support claim.

Before you adopt Glade ​

  • Your local loop uses supported Apex parse, check, test, SOQL, DML, trigger, and SObject paths.
  • Your test suite can mock callouts and live side effects.
  • Your project can tolerate explicit unsupported diagnostics for Salesforce-hosted services.
  • You will keep a Salesforce validation gate for features Glade does not model.
  • You will use first-party plugins for capability reports and advisory scans instead of expecting those scanners in base glade --help.

The v0.3.0 support window is Apex 62.0-68.0, LWC and Visualforce 59.0-68.0. Apex source API below 62.0 is unsupported, even when the loader preserves the version. Execute Anonymous accepts source API 65.0, 66.0, 67.0, and 68.0. Explicit LWC bundle versions must be whole versions from 59.0 through 68.0; unversioned bundles use compiler default 68.0. Local HTTP endpoints separately support 60.0, 65.0, 66.0, 67.0, and 68.0 (default 65.0). DataWeave, ConnectApi, and Slack are excluded and unsupported. Do not change project metadata merely to avoid a version error. See the quickstart version box and v0.3.0 known issues.

Status key ​

Runs locally
Runs locally with limits
Requires Salesforce
Not measured

Execution, modeled behavior, and evidence answer different questions. A supported row can execute a deterministic local model without reproducing a hosted service. partial and stub remain separate raw statuses in the lookup; unknown means not measured.

For example, Answers.findSimilar returns a deterministic empty list locally. That is local execution, not hosted similarity search. Read the behavior note and source evidence before using a status in an adoption decision.

GLADERUNTIME001 marks a body that the Apex parser accepts but the local VM cannot lower. That body is compile-ready for glade check, but it receives no runtime-support credit and local test execution reports UnsupportedFeature.

Release evidence and scope ​

Release / sourceEvidenceDenominator and boundaryReceipt
v0.2.15 — 82b8495972715a27aec8f864bc4ab39e7fa03974Historical distribution evidence; clean embedded VCS metadata; exact Required CI and Salesforce correctness authority475/475 required checks; per-archive checksums, 128–129-component SBOMs, and attestations; not blanket parityRelease assets
v0.2.14 — b974901a3e0ad48d6c517cff894601fa5e242000Historical distribution; exact Required CI and Salesforce correctness authority for the product/Tools pairPer-archive checksums, 128–129-component SBOMs, and attestations; not blanket parity or a new corpus resultRelease assets
v0.2.13 — 04c55539045d782ce56e2e5d92d4fb637ba03741Published distributionPer-archive checksums and attestations; not a new corpus/parity resultRelease assets
v0.2.12 — 3a454dee3cb35c604cb1bf25e6a8972b63dd7c81Tagged local/corpus and Salesforce checks12,315 and 782 private tests; 86 public projects; 475 Salesforce checks, with their distinct accountingTagged validation
v0.2.11Frozen surface snapshot184 required surfaces; overlapping compile/test/runtime/non-parity sets described belowBound source pair and receipts

The v0.2.15 Salesforce gate covers 410 compiler checks, 53 runtime checks, and 12 lifecycle checks. Its exact product/Tools pair is bound in the published Salesforce authority.

No blanket runtime/parity certification is implied by this table. The linked receipts carry exact product/Tools inputs where applicable; never combine results from different candidates. For the v0.2.12 release-note link that omitted docs/, use the tagged-validation link above. Historical receipts remain unchanged.

Published v0.2.11 surface snapshot ​

The following counts are the published v0.2.11 surface snapshot from a frozen two-repository private corpus. Public artifacts identify the repositories only as private-corpus-001 and private-corpus-002.

  • 321 observed usage keys reconciled with zero unknown usage.
  • 184 required surfaces were derived from sealed authoritative inputs.
  • 178 compile-ready and test-ready surfaces have required local proof.
  • 54 runtime-parity-ready surfaces have fresh Salesforce proof.
  • 107 explicit zero-credit non-parity outcomes remain visible.
  • Six hosted-deferred surfaces remain outside compile, test, and runtime-parity readiness in this snapshot.

These outcomes overlap and are not a claim of blanket Salesforce parity. Open the self-contained assurance explorer to filter by namespace, repository, disposition, evidence, exclusion, or text. The exact candidate, receipt hashes, replay result, and interpretation rules are recorded in the release assurance note.

Tagged v0.2.12 product validation ​

The tagged v0.2.12 product commit 3a454dee3cb35c604cb1bf25e6a8972b63dd7c81 (binary SHA-256 9bd1d8efbeb53af707ec5df649103f3f462fc800410922ce54f3b89a67c5bf83) was checked separately from the published v0.2.11 surface snapshot.

  • private-corpus-001: check exit 0/0 diagnostics; tests 12,315/12,315 with 0 failed/compile/runtime/unsupported.
  • private-corpus-002: check exit 0/0 diagnostics; tests 782/782 with 0 failed/compile/runtime/unsupported.
  • Public corpus: 86 projects, 40 expected/40 observed diagnostics, zero missing/unexpected/unclassified, and an exact identity multiset match. Public diagnostics are the known baseline, not passes.
  • Salesforce tagged-release validation: 475/475 pass, zero fail/inconclusive, and cleanup PASS.

This final tagged validation is bounded to its exact receipts and does not claim blanket Salesforce parity.

Runs locally ​

These areas are the main local development contract.

AreaWhat to expect
Apex parsing and project indexingLarge Salesforce DX projects, nested types, namespace tokens, stable parse diagnostics, and case-insensitive rejection of all 121 Salesforce reserved words in non-method source identifier contexts. See Apex language compatibility.
Project configuration and package contractsglade.yml and Salesforce DX discovery cover package dirs, default namespace, namespace remaps, source-backed managed package dependencies, captured package artifacts, package shims, org features, storage, and local limits.
Semantic checksChecked annotation, declaration, type, inheritance, trigger, statement, SOQL/SOSL, API-version, local, assignment, overload, and return-path rules, with token ranges for the supported VM subset.
Local Apex tests@isTest, @TestSetup, isolated org state, static reset, governor windows, async drain, stack frames, JSON, and JUnit output.
SOQL, DML, triggers, and SObjectsStatic and dynamic SOQL, DML statements, Database.* result objects, trigger context, schema-backed SObjects, and local SQLite-backed storage.
Local API serverSalesforce-style REST discovery, SObject CRUD, query/queryAll, limits and record counts, userinfo stubs, Tooling executeAnonymous, local Tooling source/schema metadata queries, Composite sObject insert, Composite Batch, Tree, and Graph local requests, Bulk API v2 simple query jobs, layout/default-value metadata, metadata job status, reset endpoints, and optional SQLite persistence.
Editor and debug toolsLSP diagnostics, symbols, hover, completion, rename, semantic tokens, DAP stepping, watch mode, and trace/profile reports.

Runs locally with limits ​

These areas cover useful local test paths. They are not exact Salesforce service behavior.

AreaCurrent limit
Core standard libraryCommon System, String, date/time, math, assertions, labels, URLs, user info, and collection paths are covered. Method-level details live in the standard-library report.
Schema and describe APIsLocal describe supports checked object, field, record type, child relationship, data category metadata, and generated standard-object metadata. Hosted full-org metadata services remain outside the local model.
JSON, regex, encoding, and cryptoSerialization, parsing, regex, base64, hex, URL encoding, and digest rows are supported for the checked local contract.
HTTP, SOAP, and callout mocksRequest and response mock paths work for tests. Glade does not perform live outbound service calls.
MessagingLocal message and result objects, template rendering, attachment retrieval, send options, and invocation counts are covered. Glade does not deliver email, push, or other live messages.
Visualforce controller and page renderingPreview feature. PageReference, messages, current page, controller helpers, local /apex/<PageName> routes, common standard components, page lifecycle paths, signed view state with CSRF checks, transient field omission, static resources, uploads, remoting envelopes, Lightning Out/LWC dependency diagnostics, AJAX refresh paths, and local PDF fallback output are modeled for local development. Salesforce chrome, every component edge, exact lifecycle timing, Apex PageReference.getContent* output, and byte-for-byte PDF output remain outside the local contract.
Local LWC workbench and routesPreview feature. / and /lwc open the Workbench Console with Component Lab and Page Workbench, /lwc/builder opens the page composer, and preview routes cover components, record/app/home pages, tabs, actions, utility bars, Flow screens/actions, configured community pages, and direct community components.
Local LWC data and servicesPreview feature with local-data limits. Apex wire, selected LDS/UI API shims, local record mutations, schema/label/resource/user/community modules, bounded managed-content reads, navigation, LMS, toast/resource loading, lightning/refresh, Flow events, console and utility local models, practical base-component shims, and packaged SLDS 2 and classic SLDS assets run through local models. Experience Builder mutations and learning-platform APIs reject explicitly and remain hosted-only. See Local LWC Shell and docs/LWC_SUPPORT.md.
Visualforce Lightning Out for LWCsPreview feature with limits. Visualforce-backed tab redirects and /apex/<PageName> Lightning Out hosts use the shared local LWC runtime. Hosted Lightning Out lifecycle timing and exact Salesforce chrome remain Salesforce checks.
Search and SOSL helpersLocal deterministic Search and SOSL rows are supported. Hosted ranking, analyzers, synonyms, and external indexes are not modeled.
Test helpersTracked Test.* local helper rows are supported. Hosted service accounting, packaged-resource expansion, and live External Service execution remain explicit gaps.
Local test harness and request contextRequest/UIRequest context, install/uninstall hooks, sandbox post-copy helpers, scheduled Apex, QuickAction DTOs, BusinessHours calendars and holidays, seeded approval routing, and TrailblazerIdentity helper calls have deterministic local models. Live hosted engines are not contacted.

Requires Salesforce ​

Check this list before relying on Glade for a project.

AreaWhy it is outside the current local contract
Live Salesforce auth and sessionsThe local server exposes local stubs. It does not implement real Salesforce OAuth, session validation, or org identity services.
Live service APIsAnswers zone search, password reset output, live identity/admin mutation, and hosted process/service engines require Salesforce-hosted data or execution.
Exact hosted Visualforce behaviorGlade serves local Visualforce pages for development. It does not promise Salesforce-hosted chrome, every component edge, exact lifecycle timing, Apex PageReference.getContent* output, every remoting/browser behavior, or byte-for-byte PDF output.
Exact hosted Lightning Experience behaviorThe local LWC shell does not promise Salesforce-hosted app chrome, hosted permission assignment, full UI API and GraphQL semantics, every lightning-* base component edge, exact SLDS fidelity, Flow Builder behavior, live EMP streaming, hosted utility chrome, or every Lightning Out edge. Console workspace APIs and utility-bar APIs have local models for development; exact hosted console behavior remains a Salesforce check. The package-exposed base-component module surface resolves locally with practical shims, including common button/card/layout/formatted-number contracts, with a small source-backed allowlist for simple base components.
REST and Tooling APIs outside the local baselineThe local API server covers the checked local baseline, including Composite Batch, Tree, and Composite Graph local requests over supported subrequests, Bulk API v2 simple query jobs, layout/default-value metadata, metadata job status, and local Tooling responses. Bulk API locator paging, Streaming/PubSub, GraphQL, live metadata deploy/retrieve, live auth, and live org-only Tooling APIs remain outside the local contract.
Live outbound side effectsReal callouts, delivered email, push notifications, and external service mutations are not performed. Tests should use local mocks and result objects.
Exact Salesforce governor accountingGlade tracks deterministic local limits. Salesforce's full production accounting and every platform-specific counter are not complete.

Example diagnostic:

text
UnsupportedFeature: unsupported call "Search.unavailable local search/SOSL surface"

Area details ​

AreaStatusNotes
Apex front endRuns locallyParser, project loader, symbols, semantic checks, LSP, and diagnostics form the starting point. The checked compiler contract contains 400 language-rule rows.
Runtime and testsRuns locallyVM execution, local tests, SObjects, SOQL, DML, triggers, async drain, and local storage are the core contract.
Local Salesforce APIRuns locallyUseful for local REST, SObject CRUD/query, record count, Tooling executeAnonymous, and local source/schema metadata flows. It is not a hosted-org replacement.
Standard libraryRuns locally with limitsCore Apex types, collections and selected platform APIs have local implementations. Read the behavior notes for modeled behavior and hosted-service limits.
Platform service APIsRuns locallyDeterministic DTO and harness rows are modeled when the capability report says supported. Hosted service execution stays explicitly unsupported.

Standard library families ​

These summaries highlight local implementations and named boundaries. Open the source report for detailed behavior notes and regression-test links.

FamilyStatus
DatabaseRuns locally
Date, Datetime, Time, TimeZoneRuns locally
String, Decimal, Boolean, MathSupported local rows, Decimal division gap
System, Assert, LimitsSupported local rows, hosted gaps
Schema and SObjectSupported local rows, hosted gaps
Test helpersSupported local rows, hosted gaps
JSON, Pattern, EncodingUtil, CryptoRuns locally
ApexPages and PageReferenceSupported controller rows, hosted rendering gaps
HTTP and WebServiceCalloutSupported mock rows, live transport gaps
MessagingSupported local rows, hosted delivery gaps
Search and SOSL helpersSupported local rows, hosted ranking gap
UserInfo, URL, Label, and TrailblazerIdentityBroad local capability
Type, FeatureManagement, and ExceptionSupported local rows, hosted package gap
Local test harness and request contextSupported local rows, hosted and malformed-input gaps
Hosted-service and platform boundary rowsRequires Salesforce, plus stable diagnostics

The local test harness and request-context group includes Approval list processing, BusinessHours, QuickAction, Request, UIRequest, Sandbox, Schedulable, and AccessLevel rows. The hosted-service boundary group includes the deterministic local Answers stub, the ResetPasswordResult row, and the stable UnsupportedFeature diagnostic row.

Capability claims ​

Use the listed behavior and limits to decide whether a local workflow fits your project. The notes highlight selected implementations and known boundaries; an unlisted API can still run locally. Follow the source reports below for implementation and regression-test evidence, then run your project's tests in Glade and retain a Salesforce validation gate for platform behavior.

Drill down ​

Use this page first, then open the method-level report when you need the checked row.

One rule keeps the marks honest. Do not call an API supported until the row has implementation and compatibility evidence.

Glade is an independent project and is not affiliated with, sponsored by, or endorsed by Salesforce. Salesforce and Apex are trademarks of Salesforce, Inc. · Contributors · Security · Releases · Apache-2.0