Skip to content

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.

  • Start with the status legend.
  • Check what requires Salesforce before an adoption review.
  • Use the checked Apex/runtime reports for method-level detail.

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.14. The generated standard-library counts and searchable rows describe the checked source ledger in this repository state. The download version does not certify these rows or inherit the historical runtime/parity evidence below.

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.

Checked Apex source versions are 65.0, 66.0, and 67.0. Well-formed historical source versions are preserved without checked correctness/parity credit. Execute Anonymous remains limited to the checked source window; each LWC bundle declares an exact supported version. Local HTTP endpoints separately support 60.0, 65.0, 66.0, and 67.0 (default 65.0). Do not change project metadata merely to avoid a version error. See the quickstart version box.

Status key

Runs locally
Runs locally with limits
Requires Salesforce
Not measured

“Runs locally with limits” is the user-facing capability state. Generated evidence catalogs may use narrower row-level classifications; their counts apply only to the named catalog.

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.

Generated standard-library catalog

Search checked API rows

Runs locally
269
Runs locally with limits
0
Requires Salesforce
19

288 checked rows match. Showing the first 50.

  • AccessLevel.withPermissionSetId(String)Runs locally

    Creates a local permission-set-scoped user-mode token used by supported SOQL and DML permission checks.

  • Answers.findSimilar(Question)Runs locally

    Local execution returns a deterministic empty List<Id>; this harness does not implement the hosted similarity-search service.

  • ApexPages.MessageRuns locally

    Constructor, getters, add/get/has message state, and Visualforce action reset behavior are modeled.

  • ApexPages.addMessageRuns locally

    Stores page messages on the VM instance.

  • ApexPages.addMessage(ApexPages.Message)Runs locally

    Stores page messages on the VM instance.

  • ApexPages.addMessages(Exception)Runs locally

    Converts supported exception values into VM-local page messages.

  • ApexPages.addMessages(Object)Runs locally

    Converts supported exception and message values into VM-local page messages.

  • ApexPages.currentPageRuns locally

    Returns a deterministic local PageReference.

  • ApexPages.currentPage()Runs locally

    Returns the VM-local PageReference.

  • ApexPages.getMessagesRuns locally

    Returns VM-local page messages.

  • ApexPages.getMessages()Runs locally

    Returns VM-local page messages.

  • ApexPages.hasMessagesRuns locally

    Checks VM-local page messages.

  • ApexPages.hasMessages()Runs locally

    Checks VM-local page messages.

  • ApexPages.hasMessages(ApexPages.Severity)Runs locally

    Checks VM-local page messages by severity.

  • Visualforce full rendering lifecycleRequires Salesforce

    Full Visualforce rendering lifecycle requires the hosted renderer and is fenced by PageReference rendering diagnostics locally.

  • Approval.process hosted approval engine routingRequires Salesforce

    Hosted criteria evaluation, queue/group approver routing, and live approval service routing require Salesforce approval services.

  • Approval.process(Approval.ProcessRequest)Runs locally

    Runs a seeded local ProcessDefinition, ProcessNode, ProcessInstance, and ProcessInstanceWorkitem engine for submit, approve, and reject request shapes.

  • Approval.process(Approval.ProcessRequest, Boolean)Runs locally

    Runs the seeded local approval engine with allOrNone error shaping for submit, approve, and reject request shapes.

  • Approval.process(List<Approval.ProcessRequest>)Runs locally

    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.

  • Approval.process(List<Approval.ProcessRequest>, Boolean)Runs locally

    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.

  • Assert.areEqualRuns locally

    Routes through local assertion failures with optional message text.

  • Assert.areNotEqualRuns locally

    Routes through local assertion failures with optional message text.

  • Assert.failRuns locally

    Raises local System.AssertException with optional message text.

  • Assert.isFalseRuns locally

    Routes through local assertion failures with optional message text.

  • Assert.isNotNullRuns locally

    Routes through local assertion failures with optional message text.

  • Assert.isNullRuns locally

    Routes through local assertion failures with optional message text.

  • Assert.isTrueRuns locally

    Routes through local assertion failures with optional message text.

  • Boolean.valueOf(Object)Runs locally

    Converts supported local field/object values into Boolean values.

  • Boolean.valueOf(String)Runs locally

    Converts strings to Boolean using Apex-shaped true/false parsing.

  • BusinessHours malformed local holiday metadataRequires Salesforce

    Malformed seeded holiday metadata raises a stable UnsupportedFeature diagnostic naming the unsupported local field shape.

  • BusinessHours.add(Id, Datetime, Long)Runs locally

    Runs deterministic local week-schedule math from seeded BusinessHours, Holiday, OperatingHours, and OperatingHoursHoliday records with timezone handling, all-day closures, partial-day closures, recurring holidays, and linked holidays.

  • BusinessHours.addGmt(Id, Datetime, Long)Runs locally

    Runs deterministic local calendar math from seeded BusinessHours, Holiday, OperatingHours, and OperatingHoursHoliday records with GMT Datetime output.

  • BusinessHours.diff(String, Datetime, Datetime)Runs locally

    Counts deterministic local business milliseconds across seeded week schedules, timezones, all-day closures, partial-day closures, recurring holidays, and linked holidays.

  • BusinessHours.isWithin(String, Datetime)Runs locally

    Checks seeded local week schedules, timezones, Holiday closures, OperatingHoursHoliday links, partial-day closures, and recurring holidays.

  • BusinessHours.nextStartDate(Id, Datetime)Runs locally

    Finds the next deterministic local start from seeded week schedules, timezones, Holiday closures, OperatingHoursHoliday links, partial-day closures, and recurring holidays.

  • Crypto.decryptWithManagedIVRuns locally

    Managed-IV AES-GCM decryption, including additional authenticated data, is executable in the local runtime; ciphertext values remain unstable.

  • Crypto.encryptWithManagedIVRuns locally

    Managed-IV AES-GCM encryption, including additional authenticated data, is executable in the local runtime; ciphertext values remain unstable.

  • Crypto.generateDigestRuns locally

    MD5, SHA-1/SHA1, SHA-256/SHA256, SHA-384/SHA384, SHA-512/SHA512, and SHA3-256/384/512 digests are fixture-pinned, with Salesforce-shaped SecurityException diagnostics for unknown names.

  • Database.UnitOfWorkRuns locally

    Queues local DML operations and applies them on commitWork; discardWork drops pending local work.

  • Database.convertLeadRuns locally

    Local lead conversion creates Account, Contact, and optional Opportunity records and updates Lead conversion fields.

  • Database.countQueryRuns locally

    Dynamic SOQL count execution against the local org with local AccessLevel parsing.

  • Database.countQueryWithBindsRuns locally

    Bind-map dynamic SOQL count execution with local AccessLevel parsing.

  • Database.deleteRuns locally

    DML pipeline with result/error shapes and local AccessLevel parsing for supported SObjects.

  • Database.deleteAsyncRuns locally

    Local async delete alias runs through the DML pipeline and returns DeleteResult shape.

  • Database.deleteImmediateRuns locally

    Local immediate delete alias runs through the DML pipeline and returns DeleteResult shape.

  • Database.emptyRecycleBinRuns locally

    Local hard-delete result shape with allOrNone rollback for supported SObjects.

  • Database.executeBatchRuns locally

    Queues local Batchable jobs and drains start/execute chunks/finish during Test.stopTest.

  • Database.getAsyncDeleteResultRuns locally

    Returns materialized local DeleteResult values and rejects unknown async locator strings instead of fabricating pending results.

  • Database.getAsyncLocatorRuns locally

    Returns deterministic VM-local locator strings for local result and locator objects.

  • Database.getAsyncSaveResultRuns locally

    Returns materialized local SaveResult values and rejects unknown async locator strings instead of fabricating pending results.

Counts and rows come from docs/STDLIB_COVERAGE.md. Use the complete checked ledgers below for evidence and regression-test links.

Release evidence and scope

Release / sourceEvidenceDenominator and boundaryReceipt
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

No new candidate 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 limitsThe checked standard-library report has 267 supported rows, 19 unsupported rows, and 0 partial rows.
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

Counts come from the checked standard library capability report in this repository state.

FamilyStatusRows
DatabaseRuns locally37 supported / 37 tracked
Date, Datetime, Time, TimeZoneRuns locally26 supported / 26 tracked
String, Decimal, Boolean, MathSupported local rows, Decimal division gap31 supported, 1 unsupported / 32 tracked
System, Assert, LimitsSupported local rows, hosted gaps17 supported, 3 unsupported / 20 tracked
Schema and SObjectSupported local rows, hosted gaps7 supported, 1 unsupported / 8 tracked
Test helpersSupported local rows, hosted gaps28 supported, 3 unsupported / 31 tracked
JSON, Pattern, EncodingUtil, CryptoRuns locally17 supported / 17 tracked
ApexPages and PageReferenceSupported controller rows, hosted rendering gaps15 supported, 2 unsupported / 17 tracked
HTTP and WebServiceCalloutSupported mock rows, live transport gaps6 supported, 2 unsupported / 8 tracked
MessagingSupported local rows, hosted delivery gaps6 supported, 2 unsupported / 8 tracked
Search and SOSL helpersSupported local rows, hosted ranking gap11 supported, 1 unsupported / 12 tracked
UserInfo, URL, Label, and TrailblazerIdentityBroad local capability24 supported / 24 tracked
Type, FeatureManagement, and ExceptionSupported local rows, hosted package gap8 supported, 1 unsupported / 9 tracked
Local test harness and request contextSupported local rows, hosted and malformed-input gaps32 supported, 2 unsupported / 34 tracked
Hosted-service and platform boundary rowsRequires Salesforce, plus stable diagnostics2 supported, 1 unsupported / 3 tracked

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

The checked capability status and standard-library report now show no partial rows. Every remaining hosted-only behavior is split into an explicit unsupported row.

MeasureRows
Capability features marked supported31
Capability features marked partial0
Capability features marked unsupported2
Standard-library rows marked supported269
Standard-library rows marked partial0
Standard-library rows marked unsupported19

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. · Maintainer · Security · Releases · Apache-2.0