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
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 / source | Evidence | Denominator and boundary | Receipt |
|---|---|---|---|
v0.2.15 — 82b8495972715a27aec8f864bc4ab39e7fa03974 | Historical distribution evidence; clean embedded VCS metadata; exact Required CI and Salesforce correctness authority | 475/475 required checks; per-archive checksums, 128–129-component SBOMs, and attestations; not blanket parity | Release assets |
v0.2.14 — b974901a3e0ad48d6c517cff894601fa5e242000 | Historical distribution; exact Required CI and Salesforce correctness authority for the product/Tools pair | Per-archive checksums, 128–129-component SBOMs, and attestations; not blanket parity or a new corpus result | Release assets |
v0.2.13 — 04c55539045d782ce56e2e5d92d4fb637ba03741 | Published distribution | Per-archive checksums and attestations; not a new corpus/parity result | Release assets |
v0.2.12 — 3a454dee3cb35c604cb1bf25e6a8972b63dd7c81 | Tagged local/corpus and Salesforce checks | 12,315 and 782 private tests; 86 public projects; 475 Salesforce checks, with their distinct accounting | Tagged validation |
| v0.2.11 | Frozen surface snapshot | 184 required surfaces; overlapping compile/test/runtime/non-parity sets described below | Bound 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.
| Area | What to expect |
|---|---|
| Apex parsing and project indexing | Large 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 contracts | glade.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 checks | Checked 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 SObjects | Static and dynamic SOQL, DML statements, Database.* result objects, trigger context, schema-backed SObjects, and local SQLite-backed storage. |
| Local API server | Salesforce-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 tools | LSP 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.
| Area | Current limit |
|---|---|
| Core standard library | Common 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 APIs | Local 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 crypto | Serialization, parsing, regex, base64, hex, URL encoding, and digest rows are supported for the checked local contract. |
| HTTP, SOAP, and callout mocks | Request and response mock paths work for tests. Glade does not perform live outbound service calls. |
| Messaging | Local 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 rendering | Preview 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 routes | Preview 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 services | Preview 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 LWCs | Preview 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 helpers | Local deterministic Search and SOSL rows are supported. Hosted ranking, analyzers, synonyms, and external indexes are not modeled. |
| Test helpers | Tracked 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 context | Request/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.
| Area | Why it is outside the current local contract |
|---|---|
| Live Salesforce auth and sessions | The local server exposes local stubs. It does not implement real Salesforce OAuth, session validation, or org identity services. |
| Live service APIs | Answers zone search, password reset output, live identity/admin mutation, and hosted process/service engines require Salesforce-hosted data or execution. |
| Exact hosted Visualforce behavior | Glade 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 behavior | The 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 baseline | The 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 effects | Real callouts, delivered email, push notifications, and external service mutations are not performed. Tests should use local mocks and result objects. |
| Exact Salesforce governor accounting | Glade tracks deterministic local limits. Salesforce's full production accounting and every platform-specific counter are not complete. |
Example diagnostic:
UnsupportedFeature: unsupported call "Search.unavailable local search/SOSL surface"Area details
| Area | Status | Notes |
|---|---|---|
| Apex front end | Runs locally | Parser, project loader, symbols, semantic checks, LSP, and diagnostics form the starting point. The checked compiler contract contains 400 language-rule rows. |
| Runtime and tests | Runs locally | VM execution, local tests, SObjects, SOQL, DML, triggers, async drain, and local storage are the core contract. |
| Local Salesforce API | Runs locally | Useful for local REST, SObject CRUD/query, record count, Tooling executeAnonymous, and local source/schema metadata flows. It is not a hosted-org replacement. |
| Standard library | Runs locally with limits | Core Apex types, collections and selected platform APIs have local implementations. Read the behavior notes for modeled behavior and hosted-service limits. |
| Platform service APIs | Runs locally | Deterministic 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.
| Family | Status |
|---|---|
Database | Runs locally |
| Date, Datetime, Time, TimeZone | Runs locally |
| String, Decimal, Boolean, Math | Supported local rows, Decimal division gap |
| System, Assert, Limits | Supported local rows, hosted gaps |
| Schema and SObject | Supported local rows, hosted gaps |
| Test helpers | Supported local rows, hosted gaps |
| JSON, Pattern, EncodingUtil, Crypto | Runs locally |
| ApexPages and PageReference | Supported controller rows, hosted rendering gaps |
| HTTP and WebServiceCallout | Supported mock rows, live transport gaps |
| Messaging | Supported local rows, hosted delivery gaps |
| Search and SOSL helpers | Supported local rows, hosted ranking gap |
| UserInfo, URL, Label, and TrailblazerIdentity | Broad local capability |
| Type, FeatureManagement, and Exception | Supported local rows, hosted package gap |
| Local test harness and request context | Supported local rows, hosted and malformed-input gaps |
| Hosted-service and platform boundary rows | Requires 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.
- Method-level standard-library rows:
docs/STDLIB_COVERAGE.md - Compatibility dashboard:
docs/COMPATIBILITY_DASHBOARD.md - Known gaps:
docs/KNOWN_GAPS.md - Standard-object coverage:
docs/STANDARD_OBJECT_COVERAGE.md - Standard-object schema:
docs/STANDARD_OBJECT_SCHEMA.md - Local LWC shell guide: Local LWC Shell
- Release and plugin boundaries: Security & trust
One rule keeps the marks honest. Do not call an API supported until the row has implementation and compatibility evidence.