VirtualOrg research / API scope

API workflow inventory

Reviewed 2026-10-18. The selected API progress group includes REST, Bulk 1.0/2.0, GraphQL, Tooling and UI API. Metadata, CLI and SOAP appear as separate cross-references below.

Workflow facets structure existing contracts and are not added to the catalog support denominator. Catalog slices link bounded receipts; gap facets never inherit those matches. Overlapping capability IDs count once.

API67 recorded reference fixtures are independent profiles. Standard versus custom objects, single versus multiple principals, API68 and CLI versions are not a Cartesian product of verified combinations. Read linked evidence environments and qualifiers.

A recorded subset match leaves unfinished workflows. Each catalog slice retains its recorded qualifiers. Missing or uncompared facets have an independent pending reference state and never inherit a parent match. Linked local report states apply to the existing catalog contract, not every facet.

Snapshot source 6af9c0dec73d3a8e2513d2076e78c2242c2cad75; local report recorded 2026-10-20T05:21:43.965Z. The separately dated homepage research snapshot retains its own provenance. Complete structured inventory and evidence.

Additional local API checks recorded 2026-10-19T08:25:54.606Z: sha256:6b3c3660a48c5aff6fe520d9772b47d0f190d8a94081157c9a6dfec9a27e074b. Current-source local unit and PostgreSQL/workerd assertions only. Missing, duplicate and skipped observations are not passes. Historical reference observations remain separate; this is not complete API support.

REST records and transport

Implemented dispatch patterns only; individual methods and variants remain bounded by the linked slices and gaps. UI API layouts/record-ui/lookups/actions and general Partner/Enterprise SOAP data methods are missing in this baseline.

API version discovery — Catalog slice: linked-subset

rest.api-version-discovery · API 67.0 · Profile: standard-org-67.0

31.0-68.0 and Latest Release as observed October17; API67 remains the schema profile; Differential match is profile-bound; broader parity unverified; October17 discovery advertises31.0-68.0 plus Latest Release (39 entries); implemented as a dated discovery profile. The schema/reference API remains67.0; advertising a release does not establish all its resources or contracts.

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: 31.0-68.0 and Latest Release as observed October17; API67 remains the schema profile; Differential match is profile-bound; broader parity unverified; October17 discovery advertises31.0-68.0 plus Latest Release (39 entries); implemented as a dated discovery profile. The schema/reference API remains67.0; advertising a release does not establish all its resources or contracts.

Implementation paths: packages/runtime/src/index.ts. Local case IDs: VO-RUNTIME-001, VO-CLI-001, VO-DIFF-700, VO-REST-100.

Selected local acceptance: VO-RUNTIME-001: passed; VO-CLI-001: not-run; VO-DIFF-700: not-run; VO-REST-100: passed. Reference comparison for this facet: linked-subset.

rest.api-version-discovery: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.api-version-discovery-9366705.

Services root — Catalog slice: linked-subset

rest.services-root · API 67.0 · Profile: standard-org-67.0

GET /services/data and /services/data/ list31.0-68.0 plus latest without a session; other methods answer405 (Allow: HEAD,GET); Differential match is profile-bound; broader parity unverified; Both unauthenticated GET inventory forms include68.0/latest as recorded October17; method restrictions remain. The latest alias and every version-specific resource are not claimed implemented by discovery.

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: GET /services/data and /services/data/ list31.0-68.0 plus latest without a session; other methods answer405 (Allow: HEAD,GET); Differential match is profile-bound; broader parity unverified; Both unauthenticated GET inventory forms include68.0/latest as recorded October17; method restrictions remain. The latest alias and every version-specific resource are not claimed implemented by discovery.

Implementation paths: packages/runtime/src/index.ts. Local case IDs: VO-DIFF-700, VO-REST-100.

Selected local acceptance: VO-DIFF-700: not-run; VO-REST-100: passed. Reference comparison for this facet: linked-subset.

rest.services-root: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.services-root-9366705.

Resource discovery — Catalog slice: linked-subset

rest.resource-discovery · API 67.0 · Profile: standard-org-67.0

Resource map keys recorded at 31.0 and 67.0 (versions in between reuse the 67.0 keys, unverified); identity points at this instance's /id URL; most listed resources answer NOT_FOUND; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Resource map keys recorded at 31.0 and 67.0 (versions in between reuse the 67.0 keys, unverified); identity points at this instance's /id URL; most listed resources answer NOT_FOUND; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/index.ts, packages/runtime/src/rest.ts. Local case IDs: VO-E2E-011, VO-DIFF-700.

Selected local acceptance: VO-E2E-011: not-run; VO-DIFF-700: not-run. Reference comparison for this facet: linked-subset.

rest.resource-discovery: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.resource-discovery-685ab1e.

Limits endpoint — Catalog slice: linked-subset

rest.limits-endpoint · API 67.0 · Profile: standard-org-67.0

Subset of limits; Maxima recorded from the reference environment; Remaining equals Max except DataStorageMB; Differential match is profile-bound; broader parity unverified; Fresh October 17 REST/CLI observations add DailyDataCloudCursorLimit, DailyDataCloudCursorRowsLimit and DailyDataCloudFlexCredits; the older pinned inventory does not establish these counters or their maxima.

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Subset of limits; Maxima recorded from the reference environment; Remaining equals Max except DataStorageMB; Differential match is profile-bound; broader parity unverified; Fresh October 17 REST/CLI observations add DailyDataCloudCursorLimit, DailyDataCloudCursorRowsLimit and DailyDataCloudFlexCredits; the older pinned inventory does not establish these counters or their maxima.

Implementation paths: packages/runtime/src/index.ts, packages/runtime/src/rest.ts, packages/runtime/src/standard/limits.json. Local case IDs: VO-E2E-011, VO-DIFF-327.

Selected local acceptance: VO-E2E-011: not-run; VO-DIFF-327: not-run. Reference comparison for this facet: linked-subset.

rest.limits-endpoint: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.limits-endpoint-feaf503.

sObject describe endpoints — Catalog slice: linked-subset

rest.sobject-describe-endpoints · API 67.0 · Profile: standard-org-67.0

Profile-bound: reference-shaped org, API 31.0–67.0 accepted, 67.0 reference; sObject basic information and describe keys as recorded for custom objects; describe/{unknown} is NOT_FOUND and POST answers 405; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Profile-bound: reference-shaped org, API 31.0–67.0 accepted, 67.0 reference; sObject basic information and describe keys as recorded for custom objects; describe/{unknown} is NOT_FOUND and POST answers 405; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/index.ts, packages/runtime/src/rest.ts. Local case IDs: VO-DIFF-001, VO-CLI-003, VO-DIFF-718.

Selected local acceptance: VO-DIFF-001: not-run; VO-CLI-003: not-run; VO-DIFF-718: not-run. Reference comparison for this facet: linked-subset.

rest.sobject-describe-endpoints: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.sobject-describe-endpoints-685ab1e.

Org identity discovery — Catalog slice: linked-subset

rest.org-identity-discovery · API 67.0 · Profile: standard-org-67.0

/services/oauth2/userinfo and /id/{org}/{user} with the recorded keys; URLs point at this instance; photo URLs are placeholders; utcOffset is the zone's standard offset; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: /services/oauth2/userinfo and /id/{org}/{user} with the recorded keys; URLs point at this instance; photo URLs are placeholders; utcOffset is the zone's standard offset; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/index.ts, packages/runtime/src/records.ts. Local case IDs: VO-DIFF-701, VO-REST-103.

Selected local acceptance: VO-DIFF-701: not-run; VO-REST-103: passed. Reference comparison for this facet: linked-subset.

rest.org-identity-discovery: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.org-identity-discovery-685ab1e.

sObject record endpoints — Catalog slice: linked-subset

rest.sobject-record-endpoints · API 67.0 · Profile: standard-org-67.0

Profile-bound: reference-shaped org, API 31.0–67.0 accepted, 67.0 reference; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Profile-bound: reference-shaped org, API 31.0–67.0 accepted, 67.0 reference; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/index.ts. Local case IDs: VO-DIFF-002, VO-CLI-002, VO-DIFF-014, VO-DIFF-010.

Selected local acceptance: VO-DIFF-002: not-run; VO-CLI-002: not-run; VO-DIFF-014: not-run; VO-DIFF-010: not-run. Reference comparison for this facet: linked-subset.

rest.sobject-record-endpoints: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.sobject-record-endpoints-2026-10-06.

External ID endpoint — Catalog slice: linked-subset

rest.external-id-endpoint · API 67.0 · Profile: standard-org-67.0

GET and PATCH by external ID; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: GET and PATCH by external ID; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/index.ts. Local case IDs: VO-DIFF-020.

Selected local acceptance: VO-DIFF-020: not-run. Reference comparison for this facet: linked-subset.

rest.external-id-endpoint: partial; linked local report passed (0.7.25). Evidence IDs for this facet: EV-rest.external-id-endpoint-cf693b4.

Relationship endpoints — Catalog slice: linked-subset

rest.relationship-endpoints · API 67.0 · Profile: standard-org-67.0

Child relationship URLs answer a query result (GET only, fields parameter honored); parent relationship URLs pass GET, PATCH and DELETE to the parent record; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Child relationship URLs answer a query result (GET only, fields parameter honored); parent relationship URLs pass GET, PATCH and DELETE to the parent record; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/index.ts. Local case IDs: VO-DIFF-710.

Selected local acceptance: VO-DIFF-710: not-run. Reference comparison for this facet: linked-subset.

rest.relationship-endpoints: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.relationship-endpoints-685ab1e.

Salesforce-style error arrays — Catalog slice: linked-subset

rest.salesforce-style-error-arrays · API 67.0 · Profile: standard-org-67.0

Matches the recorded API 67.0 reference receipt for the Project__c profile (RES-REF-001); Jackson-style JSON parse messages for common syntax errors; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches the recorded API 67.0 reference receipt for the Project__c profile (RES-REF-001); Jackson-style JSON parse messages for common syntax errors; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/index.ts, packages/runtime/src/rest.ts. Local case IDs: VO-DIFF-005, VO-RUNTIME-001, VO-DIFF-010, VO-DIFF-011, VO-DIFF-333.

Selected local acceptance: VO-DIFF-005: not-run; VO-RUNTIME-001: passed; VO-DIFF-010: not-run; VO-DIFF-011: not-run; VO-DIFF-333: not-run. Reference comparison for this facet: linked-subset.

rest.salesforce-style-error-arrays: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.salesforce-style-error-arrays-feaf503.

HTTP status mapping — Catalog slice: linked-subset

rest.http-status-mapping · API 67.0 · Profile: standard-org-67.0

404/405 (with Allow)/400/415 as recorded; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: 404/405 (with Allow)/400/415 as recorded; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/index.ts. Local case IDs: VO-DIFF-333.

Selected local acceptance: VO-DIFF-333: not-run. Reference comparison for this facet: linked-subset.

rest.http-status-mapping: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.http-status-mapping-feaf503.

Date serialization — Catalog slice: linked-subset

rest.date-serialization · API 67.0 · Profile: standard-org-67.0

Recorded date, datetime (offsets, Z, fractional seconds) and time input forms and errors; datetimes render as .000+0000 in UTC; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Recorded date, datetime (offsets, Z, fractional seconds) and time input forms and errors; datetimes render as .000+0000 in UTC; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/records.ts. Local case IDs: VO-DIFF-711.

Selected local acceptance: VO-DIFF-711: not-run. Reference comparison for this facet: linked-subset.

rest.date-serialization: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.date-serialization-685ab1e.

Decimal serialization — Catalog slice: linked-subset

rest.decimal-serialization · API 67.0 · Profile: standard-org-67.0

Number, currency and percent values are doubles: extra decimal places are kept as sent (no rounding to scale), literals beyond double precision round to the nearest double, and precision errors report the rounded number (API3-DECIMALS-001, NUMEXACT-REST-001); Record GET, SOQL rows, aggregates and queryMore pages render doubles as Java Double.toString text (12.0, 1.0E7, 1.2345678901234568E17, 5.0E-5) while counts and integer fields stay plain, matching the API 67.0 numeric-exact receipt; composite, collection, tree and Apex REST bodies keep JavaScript number text; API SOQL integer literals beyond the int range fail with For input string as recorded; Apex inline SOQL literals are not compared; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Number, currency and percent values are doubles: extra decimal places are kept as sent (no rounding to scale), literals beyond double precision round to the nearest double, and precision errors report the rounded number (API3-DECIMALS-001, NUMEXACT-REST-001); Record GET, SOQL rows, aggregates and queryMore pages render doubles as Java Double.toString text (12.0, 1.0E7, 1.2345678901234568E17, 5.0E-5) while counts and integer fields stay plain, matching the API 67.0 numeric-exact receipt; composite, collection, tree and Apex REST bodies keep JavaScript number text; API SOQL integer literals beyond the int range fail with For input string as recorded; Apex inline SOQL literals are not compared; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/records.ts. Local case IDs: VO-DIFF-712, VO-DIFF-2172, VO-DIFF-2173, VO-DIFF-2174, VO-DIFF-2175.

Selected local acceptance: VO-DIFF-712: not-run; VO-DIFF-2172: not-run; VO-DIFF-2173: not-run; VO-DIFF-2174: not-run; VO-DIFF-2175: not-run. Reference comparison for this facet: linked-subset.

rest.decimal-serialization: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.decimal-serialization-685ab1e.

Content type negotiation — Catalog slice: linked-subset

rest.content-type-negotiation · API 67.0 · Profile: standard-org-67.0

JSON only (application/json;charset=UTF-8); gzip responses; non-JSON request bodies get 415; clients that prefer XML (Accept lists XML first) get 406 NOT_ACCEPTABLE where the reference answers XML (documented divergence, VO-DIFF-705); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: JSON only (application/json;charset=UTF-8); gzip responses; non-JSON request bodies get 415; clients that prefer XML (Accept lists XML first) get 406 NOT_ACCEPTABLE where the reference answers XML (documented divergence, VO-DIFF-705); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/index.ts, packages/runtime/src/rest.ts. Local case IDs: VO-DIFF-332, VO-DIFF-705, VO-REST-102.

Selected local acceptance: VO-DIFF-332: not-run; VO-DIFF-705: not-run; VO-REST-102: passed. Reference comparison for this facet: linked-subset.

rest.content-type-negotiation: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.content-type-negotiation-685ab1e.

Request size limits — Catalog slice: linked-subset

rest.request-size-limits · API 67.0 · Profile: standard-org-67.0

REST bodies above 52,428,800 bytes fail with the recorded JSON_PARSER_ERROR; SOQL string literals longer than 4,000 characters fail as recorded; Bulk 2.0 uploads accept up to 150 MB (documented, not measured); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: REST bodies above 52,428,800 bytes fail with the recorded JSON_PARSER_ERROR; SOQL string literals longer than 4,000 characters fail as recorded; Bulk 2.0 uploads accept up to 150 MB (documented, not measured); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/index.ts, packages/runtime/src/soql.ts. Local case IDs: VO-DIFF-704.

Selected local acceptance: VO-DIFF-704: not-run. Reference comparison for this facet: linked-subset.

rest.request-size-limits: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.request-size-limits-685ab1e.

Conditional requests — Catalog slice: linked-subset

rest.conditional-requests · API 67.0 · Profile: standard-org-67.0

Describe ETag/Last-Modified with If-None-Match/If-Modified-Since 304; record If-Match/If-Unmodified-Since 412; Last-Modified is when Virtual Org first served the current describe; Row GET honors If-None-Match: * and ignores date conditions; PATCH checks If-Unmodified-Since and If-Match; describe ignores a future If-Modified-Since; standalone record GETs issue no ETag; conditional DELETE not run (the reference returned 500); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Describe ETag/Last-Modified with If-None-Match/If-Modified-Since 304; record If-Match/If-Unmodified-Since 412; Last-Modified is when Virtual Org first served the current describe; Row GET honors If-None-Match: * and ignores date conditions; PATCH checks If-Unmodified-Since and If-Match; describe ignores a future If-Modified-Since; standalone record GETs issue no ETag; conditional DELETE not run (the reference returned 500); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/index.ts, packages/runtime/src/conditional.ts. Local case IDs: VO-DIFF-331, VO-DIFF-087, VO-DIFF-088.

Selected local acceptance: VO-DIFF-331: not-run; VO-DIFF-087: not-run; VO-DIFF-088: not-run. Reference comparison for this facet: linked-subset.

rest.conditional-requests: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.conditional-requests-feaf503.

CORS policy — Catalog slice: linked-subset

rest.cors-policy · API 67.0 · Profile: standard-org-67.0

No CORS allowlist: OPTIONS answers 200 without a body or Access-Control headers and Origin is ignored; allowlisted origins are not modeled; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: No CORS allowlist: OPTIONS answers 200 without a body or Access-Control headers and Origin is ignored; allowlisted origins are not modeled; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/index.ts. Local case IDs: VO-DIFF-703, VO-REST-101.

Selected local acceptance: VO-DIFF-703: not-run; VO-REST-101: passed. Reference comparison for this facet: linked-subset.

rest.cors-policy: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.cors-policy-685ab1e.

API version rejection — Catalog slice: linked-subset

rest.api-version-rejection · API 67.0 · Profile: standard-org-67.0

Not yet differentially compared against the reference beyond the cited cases; Retired versions 20.0–30.0 answer 410 GONE (404 without a body for /limits before 29.0, where it never existed); older, malformed and future versions answer NOT_FOUND; Differential match is profile-bound; broader parity unverified; The recorded v68 root is admitted and has the observed resource keys. v69 remains a local future-version rejection control; full version/resource conformance beyond the cited observations remains unverified.

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Not yet differentially compared against the reference beyond the cited cases; Retired versions 20.0–30.0 answer 410 GONE (404 without a body for /limits before 29.0, where it never existed); older, malformed and future versions answer NOT_FOUND; Differential match is profile-bound; broader parity unverified; The recorded v68 root is admitted and has the observed resource keys. v69 remains a local future-version rejection control; full version/resource conformance beyond the cited observations remains unverified.

Implementation paths: packages/runtime/src/index.ts. Local case IDs: VO-RUNTIME-001, VO-DIFF-333, VO-DIFF-700, VO-REST-100.

Selected local acceptance: VO-RUNTIME-001: passed; VO-DIFF-333: not-run; VO-DIFF-700: not-run; VO-REST-100: passed. Reference comparison for this facet: linked-subset.

rest.api-version-rejection: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.api-version-rejection-9366705.

Rate limits — Catalog slice: linked-subset

rest.rate-limits · API 67.0 · Profile: standard-org-67.0

Authenticated data API responses (errors included) carry Sforce-Limit-Info api-usage=<count>/<DailyApiRequests max>, counted per org and UTC day; /limits Remaining follows the count; requests are never refused (REQUEST_LIMIT_EXCEEDED not modeled); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Authenticated data API responses (errors included) carry Sforce-Limit-Info api-usage=<count>/<DailyApiRequests max>, counted per org and UTC day; /limits Remaining follows the count; requests are never refused (REQUEST_LIMIT_EXCEEDED not modeled); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/index.ts, packages/runtime/src/rest.ts. Local case IDs: VO-DIFF-702.

Selected local acceptance: VO-DIFF-702: not-run. Reference comparison for this facet: linked-subset.

rest.rate-limits: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.rate-limits-685ab1e.

Request IDs — Catalog slice: linked-subset

rest.request-ids · API 67.0 · Profile: standard-org-67.0

A nonempty supplied correlation ID is preserved under both response names; absent markers get one native32hex ID; Differential match is profile-bound; broader parity unverified; Caller X-SFDC-Request-ID or X-Request-ID markers are preserved under both response names, including the four nonempty October18 markers. Native generated IDs remain32hex; other fresh reference generated-ID formats, empty/duplicate headers and header precedence are not fully compared.

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: A nonempty supplied correlation ID is preserved under both response names; absent markers get one native32hex ID; Differential match is profile-bound; broader parity unverified; Caller X-SFDC-Request-ID or X-Request-ID markers are preserved under both response names, including the four nonempty October18 markers. Native generated IDs remain32hex; other fresh reference generated-ID formats, empty/duplicate headers and header precedence are not fully compared.

Implementation paths: packages/runtime/src/index.ts. Local case IDs: VO-DIFF-702, VO-REST-101, VO-DRIFT-004, VO-DRIFT-005, VO-DRIFT-006, VO-DRIFT-007.

Selected local acceptance: VO-DIFF-702: not-run; VO-REST-101: passed; VO-DRIFT-004: not-run; VO-DRIFT-005: not-run; VO-DRIFT-006: not-run; VO-DRIFT-007: not-run. Reference comparison for this facet: linked-subset.

rest.request-ids: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.request-ids-9366705.

Round-trip typed nulls under standard and custom schemas — Unfinished facet: uncompared; reference pending

rest.typed-null-multi-profile · API 67.0 · Profile: not-selected

Existing CRUD/type receipts do not verify every type, missing/null transition and principal combination.

Next acceptance case: Create, read, patch null, read and delete Number, Date, Boolean and lookup fields on one standard and one custom object as administrator and restricted user; preserve each effect and error.

Implementation paths: packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

rest.sobject-record-endpoints: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Retry writes after a response is lost — Unfinished facet: uncompared; reference pending

rest.retry-after-lost-response · API 67.0 · Profile: not-selected

No general idempotency-key or exactly-once retry contract is declared for record creation.

Next acceptance case: Interrupt a response after commit, retry the same create and external-ID upsert separately, and measure duplicates and errors before declaring retry semantics.

Implementation paths: packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

rest.sobject-record-endpoints: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Composite, batch, collections and tree

Implemented dispatch patterns only; individual methods and variants remain bounded by the linked slices and gaps. UI API layouts/record-ui/lookups/actions and general Partner/Enterprise SOAP data methods are missing in this baseline.

sObject collection endpoint — Catalog slice: linked-subset

rest.sobject-collection-endpoint · API 67.0 · Profile: standard-org-67.0

Not yet differentially compared against the reference beyond the cited cases; Create, update, upsert by external ID or idLookup field, retrieve (GET and POST) and delete with allOrNone; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Not yet differentially compared against the reference beyond the cited cases; Create, update, upsert by external ID or idLookup field, retrieve (GET and POST) and delete with allOrNone; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/index.ts, packages/runtime/src/rest.ts. Local case IDs: VO-E2E-005, VO-E2E-006, VO-DIFF-015, VO-DIFF-324.

Selected local acceptance: VO-E2E-005: not-run; VO-E2E-006: not-run; VO-DIFF-015: not-run; VO-DIFF-324: not-run. Reference comparison for this facet: linked-subset.

rest.sobject-collection-endpoint: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.sobject-collection-endpoint-feaf503.

sObject tree — Catalog slice: linked-subset

rest.sobject-tree · API 67.0 · Profile: standard-org-67.0

Not yet differentially compared against the reference beyond the cited cases; Results list parents before children; 200-record, reference-ID and entity-type validation as recorded; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Not yet differentially compared against the reference beyond the cited cases; Results list parents before children; 200-record, reference-ID and entity-type validation as recorded; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/index.ts, packages/runtime/src/rest.ts. Local case IDs: VO-CLI-005, VO-DIFF-326, VO-CLI-105.

Selected local acceptance: VO-CLI-005: not-run; VO-DIFF-326: not-run; VO-CLI-105: not-run. Reference comparison for this facet: linked-subset.

rest.sobject-tree: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.sobject-tree-feaf503.

Composite requests — Catalog slice: linked-subset

rest.composite-requests · API 67.0 · Profile: standard-org-67.0

References @{id.path} in URLs and bodies; 25 subrequests, 5 query/collection subrequests; supported resources are sObjects, query and collections; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: References @{id.path} in URLs and bodies; 25 subrequests, 5 query/collection subrequests; supported resources are sObjects, query and collections; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/rest.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-320, VO-DIFF-322.

Selected local acceptance: VO-DIFF-320: not-run; VO-DIFF-322: not-run. Reference comparison for this facet: linked-subset.

rest.composite-requests: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.composite-requests-feaf503.

Composite graph — Catalog slice: linked-subset

rest.composite-graph · API 67.0 · Profile: standard-org-67.0

Each graph is all-or-none; node and depth limits not enforced; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Each graph is all-or-none; node and depth limits not enforced; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/rest.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-325.

Selected local acceptance: VO-DIFF-325: not-run. Reference comparison for this facet: linked-subset.

rest.composite-graph: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.composite-graph-feaf503.

Batch requests — Catalog slice: linked-subset

rest.batch-requests · API 67.0 · Profile: standard-org-67.0

haltOnError; error results omit fields, as recorded; binaryPartName not supported; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: haltOnError; error results omit fields, as recorded; binaryPartName not supported; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/rest.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-323.

Selected local acceptance: VO-DIFF-323: not-run. Reference comparison for this facet: linked-subset.

rest.batch-requests: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.batch-requests-feaf503.

All-or-none composite — Catalog slice: linked-subset

rest.all-or-none-composite · API 67.0 · Profile: standard-org-67.0

allOrNone rolls back every subrequest and halts the rest with the recorded message; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: allOrNone rolls back every subrequest and halts the rest with the recorded message; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/rest.ts. Local case IDs: VO-DIFF-321.

Selected local acceptance: VO-DIFF-321: not-run. Reference comparison for this facet: linked-subset.

rest.all-or-none-composite: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-rest.all-or-none-composite-feaf503.

Mixed create/update/read/error as administrator and denied user — Unfinished facet: uncompared; reference pending

composite.principal-transaction-workflow · API 67.0 · Profile: not-selected

VO-APIWF-001 exercises actual local workerd; its two-principal workflow has no selected reference comparison.

Next acceptance case: Replay VO-APIWF-001 on an explicitly selected authorized API67 target, preserving invalid-field and denied-principal error codes plus independent committed-state readback.

Implementation paths: packages/runtime/src/rest.ts. Local case IDs: VO-APIWF-001.

Selected local acceptance: VO-APIWF-001: not-run. Reference comparison for this facet: pending.

rest.all-or-none-composite: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Mixed graph success and rollback across graphs — Unfinished facet: uncompared; reference pending

composite.graph-cross-graph-isolation · API 67.0 · Profile: not-selected

A graph match does not verify every cross-graph reference, grant or resource-limit combination.

Next acceptance case: Execute two graphs, one with a later invalid field; read back each graph under two users and compare graph boundaries and unsupported cross-graph references.

Implementation paths: packages/runtime/src/rest.ts, packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

rest.composite-graph: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Tree depth and child authorization fail without orphan rows — Unfinished facet: uncompared; reference pending

composite.tree-depth-authority · API 67.0 · Profile: not-selected

Existing nested-tree evidence is bounded; arbitrary relationship depths, child denial and standard/custom combinations remain unestablished.

Next acceptance case: Create a parent/child/grandchild tree, deny one child field and exceed the documented depth separately; verify zero orphan rows and exact reference errors.

Implementation paths: packages/runtime/src/index.ts, packages/runtime/src/rest.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

rest.sobject-tree: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Bulk API 2.0

Implemented dispatch patterns only; individual methods and variants remain bounded by the linked slices and gaps. UI API layouts/record-ui/lookups/actions and general Partner/Enterprise SOAP data methods are missing in this baseline.

Bulk API 2.0 ingest jobs — Catalog slice: linked-subset

bulk.bulk-api-2-0-ingest-jobs · API 67.0 · Profile: standard-org-67.0

Processed synchronously when the upload completes, in 200-record batches; Job info shapes per resource as recorded; Differential match is profile-bound; broader parity unverified; Missing-content UploadComplete is rejected without changing Open state; immediate readback retains contentUrl and omits processing counters, matching October17. Historical opposite observations remain retained; eventual processing and release causality are not inferred.

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Processed synchronously when the upload completes, in 200-record batches; Job info shapes per resource as recorded; Differential match is profile-bound; broader parity unverified; Missing-content UploadComplete is rejected without changing Open state; immediate readback retains contentUrl and omits processing counters, matching October17. Historical opposite observations remain retained; eventual processing and release causality are not inferred.

Implementation paths: packages/runtime/src/bulk.ts. Local case IDs: VO-CLI-011, VO-DIFF-344, VO-DIFF-345, VO-DIFF-348.

Selected local acceptance: VO-CLI-011: not-run; VO-DIFF-344: not-run; VO-DIFF-345: not-run; VO-DIFF-348: not-run. Reference comparison for this facet: linked-subset.

bulk.bulk-api-2-0-ingest-jobs: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-bulk.bulk-api-2-0-ingest-jobs-9366705.

CSV parsing — Catalog slice: linked-subset

bulk.csv-parsing · API 67.0 · Profile: standard-org-67.0

RFC 4180 quoting; empty cells leave fields unset; #N/A sets null; COMMA, PIPE, SEMICOLON, TAB, CARET, BACKQUOTE; LF and CRLF; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: RFC 4180 quoting; empty cells leave fields unset; #N/A sets null; COMMA, PIPE, SEMICOLON, TAB, CARET, BACKQUOTE; LF and CRLF; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/bulk.ts. Local case IDs: VO-CLI-011, VO-DIFF-344, VO-DIFF-345.

Selected local acceptance: VO-CLI-011: not-run; VO-DIFF-344: not-run; VO-DIFF-345: not-run. Reference comparison for this facet: linked-subset.

bulk.csv-parsing: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-bulk.csv-parsing-feaf503.

Bulk insert — Catalog slice: linked-subset

bulk.bulk-insert · API 67.0 · Profile: standard-org-67.0

Runs the shared save path (triggers, validation rules); Quoted delimiters, invalid dates and restricted picklists; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Runs the shared save path (triggers, validation rules); Quoted delimiters, invalid dates and restricted picklists; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/bulk.ts. Local case IDs: VO-CLI-011, VO-DIFF-345.

Selected local acceptance: VO-CLI-011: not-run; VO-DIFF-345: not-run. Reference comparison for this facet: linked-subset.

bulk.bulk-insert: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-bulk.bulk-insert-feaf503.

Bulk update — Catalog slice: linked-subset

bulk.bulk-update · API 67.0 · Profile: standard-org-67.0

Id column required; 15- and 18-character IDs, invalid and duplicate IDs and empty cells behave as recorded; A record ID repeated in one file is saved once per row in file order, so the last value wins (PARTIAL-BULK-UPDATE-001); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Id column required; 15- and 18-character IDs, invalid and duplicate IDs and empty cells behave as recorded; A record ID repeated in one file is saved once per row in file order, so the last value wins (PARTIAL-BULK-UPDATE-001); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/bulk.ts. Local case IDs: VO-CLI-011, VO-DIFF-737, VO-DIFF-2178, VO-DIFF-2179.

Selected local acceptance: VO-CLI-011: not-run; VO-DIFF-737: not-run; VO-DIFF-2178: not-run; VO-DIFF-2179: not-run. Reference comparison for this facet: linked-subset.

bulk.bulk-update: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-bulk.bulk-update-685ab1e.

Bulk upsert — Catalog slice: linked-subset

bulk.bulk-upsert · API 67.0 · Profile: standard-org-67.0

Results in uploaded row order; deserialization failures listed after DML failures; External ID or Id; case-insensitive matches and duplicate keys as recorded; A row without an external ID value fails with MISSING_ARGUMENT, a failed update of a matched record reports its ID, and a created record without a Name is named by its ID (PARTIAL-BULK-UPSERT-001); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Results in uploaded row order; deserialization failures listed after DML failures; External ID or Id; case-insensitive matches and duplicate keys as recorded; A row without an external ID value fails with MISSING_ARGUMENT, a failed update of a matched record reports its ID, and a created record without a Name is named by its ID (PARTIAL-BULK-UPSERT-001); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/bulk.ts. Local case IDs: VO-CLI-011, VO-DIFF-344, VO-CLI-106, VO-DIFF-738, VO-DIFF-2180, VO-DIFF-2181.

Selected local acceptance: VO-CLI-011: not-run; VO-DIFF-344: not-run; VO-CLI-106: not-run; VO-DIFF-738: not-run; VO-DIFF-2180: not-run; VO-DIFF-2181: not-run. Reference comparison for this facet: linked-subset.

bulk.bulk-upsert: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-bulk.bulk-upsert-685ab1e.

Bulk delete — Catalog slice: linked-subset

bulk.bulk-delete · API 67.0 · Profile: standard-org-67.0

Soft delete; hardDelete treated as delete; Unknown IDs fail with INVALID_CROSS_REFERENCE_KEY; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Soft delete; hardDelete treated as delete; Unknown IDs fail with INVALID_CROSS_REFERENCE_KEY; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/bulk.ts. Local case IDs: VO-CLI-011, VO-DIFF-347.

Selected local acceptance: VO-CLI-011: not-run; VO-DIFF-347: not-run. Reference comparison for this facet: linked-subset.

bulk.bulk-delete: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-bulk.bulk-delete-feaf503.

Bulk hard delete — Catalog slice: linked-subset

bulk.bulk-hard-delete · API 67.0 · Profile: standard-org-67.0

Always FEATURENOTENABLED: the Bulk API Hard Delete permission is not modeled (the recorded administrator lacks it too); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Always FEATURENOTENABLED: the Bulk API Hard Delete permission is not modeled (the recorded administrator lacks it too); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/bulk.ts. Local case IDs: VO-DIFF-347.

Selected local acceptance: VO-DIFF-347: not-run. Reference comparison for this facet: linked-subset.

bulk.bulk-hard-delete: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-bulk.bulk-hard-delete-feaf503.

Bulk query jobs — Catalog slice: linked-subset

bulk.bulk-query-jobs · API 67.0 · Profile: standard-org-67.0

Query executed at job creation; Processed at creation; COUNT(), aggregates, sub-queries and OFFSET rejected with recorded messages; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Query executed at job creation; Processed at creation; COUNT(), aggregates, sub-queries and OFFSET rejected with recorded messages; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/bulk.ts. Local case IDs: VO-CLI-011, VO-DIFF-341, VO-DIFF-342, VO-DIFF-343.

Selected local acceptance: VO-CLI-011: not-run; VO-DIFF-341: not-run; VO-DIFF-342: not-run; VO-DIFF-343: not-run. Reference comparison for this facet: linked-subset.

bulk.bulk-query-jobs: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-bulk.bulk-query-jobs-feaf503.

Bulk query results — Catalog slice: linked-subset

bulk.bulk-query-results · API 67.0 · Profile: standard-org-67.0

Locator-based paging over a stored result; Opaque locators, maxRecords, delimiters and line endings; datetimes in Z form; Doubles render as Java Double.toString below sixteen significant digits and as plain digits from sixteen (123456789012345680, 0.0001234567890123456), as recorded (NUMEXACT-BULK-001); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Locator-based paging over a stored result; Opaque locators, maxRecords, delimiters and line endings; datetimes in Z form; Doubles render as Java Double.toString below sixteen significant digits and as plain digits from sixteen (123456789012345680, 0.0001234567890123456), as recorded (NUMEXACT-BULK-001); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/bulk.ts. Local case IDs: VO-CLI-011, VO-DIFF-341, VO-DIFF-342, VO-CLI-106, VO-DIFF-2177.

Selected local acceptance: VO-CLI-011: not-run; VO-DIFF-341: not-run; VO-DIFF-342: not-run; VO-CLI-106: not-run; VO-DIFF-2177: not-run. Reference comparison for this facet: linked-subset.

bulk.bulk-query-results: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-bulk.bulk-query-results-feaf503.

Job cancellation — Catalog slice: linked-subset

bulk.job-cancellation · API 67.0 · Profile: standard-org-67.0

Aborted ingest jobs reject uploads and UploadComplete; completed jobs cannot be aborted; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Aborted ingest jobs reject uploads and UploadComplete; completed jobs cannot be aborted; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/bulk.ts. Local case IDs: VO-DIFF-346, VO-DIFF-343.

Selected local acceptance: VO-DIFF-346: not-run; VO-DIFF-343: not-run. Reference comparison for this facet: linked-subset.

bulk.job-cancellation: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-bulk.job-cancellation-feaf503.

Job state transitions — Catalog slice: linked-subset

bulk.job-state-transitions · API 67.0 · Profile: standard-org-67.0

Open, UploadComplete, JobComplete, Aborted; A missing-content UploadComplete rejection preserves Open state and contentUrl; Differential match is profile-bound; broader parity unverified; Missing-content close leaves an Open uploadable job. Actual local recovery accepts its first CSV and completes; broad asynchronous/eventual state behavior remains unverified.

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Open, UploadComplete, JobComplete, Aborted; A missing-content UploadComplete rejection preserves Open state and contentUrl; Differential match is profile-bound; broader parity unverified; Missing-content close leaves an Open uploadable job. Actual local recovery accepts its first CSV and completes; broad asynchronous/eventual state behavior remains unverified.

Implementation paths: packages/runtime/src/bulk.ts. Local case IDs: VO-CLI-011, VO-DIFF-346, VO-DIFF-348.

Selected local acceptance: VO-CLI-011: not-run; VO-DIFF-346: not-run; VO-DIFF-348: not-run. Reference comparison for this facet: linked-subset.

bulk.job-state-transitions: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-bulk.job-state-transitions-9366705.

Successful result CSV — Catalog slice: linked-subset

bulk.successful-result-csv · API 67.0 · Profile: standard-org-67.0

sf__Id, sf__Created plus uploaded columns; Echoed values are converted (doubles as 11.0); echoed doubles keep Java form even at sixteen or more significant digits (1.2345678901234568E17), as recorded (NUMEXACT-BULK-001); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: sf__Id, sf__Created plus uploaded columns; Echoed values are converted (doubles as 11.0); echoed doubles keep Java form even at sixteen or more significant digits (1.2345678901234568E17), as recorded (NUMEXACT-BULK-001); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/bulk.ts. Local case IDs: VO-CLI-011, VO-DIFF-344, VO-DIFF-345, VO-DIFF-2176.

Selected local acceptance: VO-CLI-011: not-run; VO-DIFF-344: not-run; VO-DIFF-345: not-run; VO-DIFF-2176: not-run. Reference comparison for this facet: linked-subset.

bulk.successful-result-csv: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-bulk.successful-result-csv-feaf503.

Failed result CSV — Catalog slice: linked-subset

bulk.failed-result-csv · API 67.0 · Profile: standard-org-67.0

sf__Error as CODE:message:fields --; Error column CODE:message:fields --; Save failures keep file order and deserialization failures follow them; sf__Id is set only when the row named or matched a record (PARTIAL-BULK-UPDATE-001, PARTIAL-BULK-UPSERT-001); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: sf__Error as CODE:message:fields --; Error column CODE:message:fields --; Save failures keep file order and deserialization failures follow them; sf__Id is set only when the row named or matched a record (PARTIAL-BULK-UPDATE-001, PARTIAL-BULK-UPSERT-001); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/bulk.ts. Local case IDs: VO-CLI-011, VO-DIFF-344, VO-DIFF-345, VO-DIFF-348, VO-DIFF-2179, VO-DIFF-2181.

Selected local acceptance: VO-CLI-011: not-run; VO-DIFF-344: not-run; VO-DIFF-345: not-run; VO-DIFF-348: not-run; VO-DIFF-2179: not-run; VO-DIFF-2181: not-run. Reference comparison for this facet: linked-subset.

bulk.failed-result-csv: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-bulk.failed-result-csv-feaf503.

Unprocessed result CSV — Catalog slice: linked-subset

bulk.unprocessed-result-csv · API 67.0 · Profile: standard-org-67.0

Always empty because processing is synchronous; Empty after completion as recorded; for aborted jobs the reference answered 500 in the recording, so that path is unverified; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Always empty because processing is synchronous; Empty after completion as recorded; for aborted jobs the reference answered 500 in the recording, so that path is unverified; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/bulk.ts. Local case IDs: VO-CLI-011, VO-DIFF-344.

Selected local acceptance: VO-CLI-011: not-run; VO-DIFF-344: not-run. Reference comparison for this facet: linked-subset.

bulk.unprocessed-result-csv: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-bulk.unprocessed-result-csv-feaf503.

Large dataset limits — Catalog slice: linked-subset

bulk.large-dataset-limits · API 67.0 · Profile: standard-org-67.0

2,100-row ingest and query jobs with maxRecords and locator paging as recorded; the 150 MB upload limit is documented, not measured; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: 2,100-row ingest and query jobs with maxRecords and locator paging as recorded; the 150 MB upload limit is documented, not measured; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/bulk.ts, packages/runtime/src/soql.ts. Local case IDs: VO-DIFF-727.

Selected local acceptance: VO-DIFF-727: not-run. Reference comparison for this facet: linked-subset.

bulk.large-dataset-limits: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-bulk.large-dataset-limits-685ab1e.

Observe and cancel a genuinely running asynchronous job — Unfinished facet: different-lifecycle; reference pending

bulk2.background-execution · API 67.0 · Profile: not-selected

Ingest processing occurs during UploadComplete and query processing during creation; durable job records do not establish background scheduling or cancellation races.

Next acceptance case: Compare Open, UploadComplete, InProgress and terminal polling while a job runs; cancel before, during and after execution and verify committed rows.

Implementation paths: packages/runtime/src/bulk.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

bulk.job-state-transitions: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Access and poll another principal's job after grants change — Unfinished facet: uncompared; reference pending

bulk2.job-owner-current-authority · API 67.0 · Profile: not-selected

loadJob is org-scoped without an explicit creator predicate; list/info use the current principal. Exact creator/admin access and revocation behavior are reference-pending.

Next acceptance case: Create a job as user A; fetch, list, upload, close, download and cancel as A, B and administrator before/after CRUD revocation; compare ownership fields and effects.

Implementation paths: packages/runtime/src/bulk.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

bulk.bulk-api-2-0-ingest-jobs: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Continue Bulk query results after expiry or as another user — Unfinished facet: uncompared; reference pending

bulk2.result-pagination-lifetime · API 67.0 · Profile: not-selected

Existing CSV paging does not establish every locator lifetime, current-authority or principal combination.

Next acceptance case: Fetch a paged result, switch principal, revoke fields and advance time; compare locator headers, result visibility and expiry errors.

Implementation paths: packages/runtime/src/bulk.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

bulk.bulk-query-results: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Retry upload and close after ambiguous network outcomes — Unfinished facet: uncompared; reference pending

bulk2.retry-upload-close · API 67.0 · Profile: not-selected

One upload is accepted per ingest job; this is not a general retry/idempotency guarantee.

Next acceptance case: Lose each upload/close response after commit, retry once and compare job state, row counts, duplicate-write prevention and precise error envelope.

Implementation paths: packages/runtime/src/bulk.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

bulk.bulk-api-2-0-ingest-jobs: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Bulk API 1.0

Implemented dispatch patterns only; individual methods and variants remain bounded by the linked slices and gaps. UI API layouts/record-ui/lookups/actions and general Partner/Enterprise SOAP data methods are missing in this baseline.

Bulk API 1.0 batches — Catalog slice: linked-subset

bulk.bulk-api-1-0-batches · API 67.0 · Profile: standard-org-67.0

XML and JSON job info, CSV and JSON batches for insert, update, upsert by Id and delete, JSON and CSV query result lists, closing, aborting and the recorded error envelopes on Account; Batches are processed inside the request that adds them; the add response shows the created Queued batch; XML batch content, hardDelete, queryAll, PK chunking, serial concurrency, binary attachments and session-error envelopes are not implemented; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: XML and JSON job info, CSV and JSON batches for insert, update, upsert by Id and delete, JSON and CSV query result lists, closing, aborting and the recorded error envelopes on Account; Batches are processed inside the request that adds them; the add response shows the created Queued batch; XML batch content, hardDelete, queryAll, PK chunking, serial concurrency, binary attachments and session-error envelopes are not implemented; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/bulk1.ts, packages/runtime/src/bulk.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-2121, VO-DIFF-2122, VO-DIFF-2123, VO-DIFF-2124, VO-DIFF-2125, VO-DIFF-2126, VO-DIFF-2127, VO-DIFF-2128, VO-DIFF-2129, VO-BULK1-001.

Selected local acceptance: VO-DIFF-2121: not-run; VO-DIFF-2122: not-run; VO-DIFF-2123: not-run; VO-DIFF-2124: not-run; VO-DIFF-2125: not-run; VO-DIFF-2126: not-run; VO-DIFF-2127: not-run; VO-DIFF-2128: not-run; VO-DIFF-2129: not-run; VO-BULK1-001: not-run. Reference comparison for this facet: linked-subset.

bulk.bulk-api-1-0-batches: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-bulk.bulk-api-1-0-batches-1532fe5.

Upload XML record batches — Unfinished facet: missing; reference pending

bulk1.xml-batch · API 67.0 · Profile: not-selected

XML job envelopes are implemented; XML batch content is explicitly excluded.

Next acceptance case: Create an XML-format job and upload a two-row XML batch with one invalid row; compare result envelopes and partial writes.

Implementation paths: packages/runtime/src/bulk1.ts, packages/runtime/src/bulk.ts, packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

bulk.bulk-api-1-0-batches: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Bulk 1.0 hard delete — Unfinished facet: missing; reference pending

bulk1.hard-delete · API 67.0 · Profile: not-selected

Bulk 2.0 delete evidence cannot establish Bulk 1.0 hardDelete or queryAll, both explicitly excluded.

Next acceptance case: Independently measure hardDelete permission/undelete effects and queryAll visibility on deleted records with clean fixtures.

Implementation paths: packages/runtime/src/bulk1.ts, packages/runtime/src/bulk.ts, packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

bulk.bulk-api-1-0-batches: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Bulk 1.0 queryAll — Unfinished facet: missing; reference pending

bulk1.queryall · API 67.0 · Profile: not-selected

Bulk 2.0 delete evidence cannot establish Bulk 1.0 hardDelete or queryAll, both explicitly excluded.

Next acceptance case: Independently measure hardDelete permission/undelete effects and queryAll visibility on deleted records with clean fixtures.

Implementation paths: packages/runtime/src/bulk1.ts, packages/runtime/src/bulk.ts, packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

bulk.bulk-api-1-0-batches: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Bulk 1.0 PK chunking — Unfinished facet: missing; reference pending

bulk1.pk-chunking · API 67.0 · Profile: not-selected

PK chunking and serial concurrency are explicitly unimplemented; small batch results establish neither.

Next acceptance case: Pin source limits and compare chunk boundaries and two contending batches under serial mode without relaxing transaction isolation.

Implementation paths: packages/runtime/src/bulk1.ts, packages/runtime/src/bulk.ts, packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

bulk.bulk-api-1-0-batches: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Bulk 1.0 serial concurrency — Unfinished facet: missing; reference pending

bulk1.serial-concurrency · API 67.0 · Profile: not-selected

PK chunking and serial concurrency are explicitly unimplemented; small batch results establish neither.

Next acceptance case: Pin source limits and compare chunk boundaries and two contending batches under serial mode without relaxing transaction isolation.

Implementation paths: packages/runtime/src/bulk1.ts, packages/runtime/src/bulk.ts, packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

bulk.bulk-api-1-0-batches: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Poll and abort a running Bulk 1.0 batch — Unfinished facet: different-lifecycle; reference pending

bulk1.background-and-abort · API 67.0 · Profile: not-selected

The add-batch request processes the batch synchronously while returning its initial Queued representation.

Next acceptance case: Compare queued/running/completed batch polling and abort during processing, including partial writes and terminal-state errors.

Implementation paths: packages/runtime/src/bulk1.ts, packages/runtime/src/bulk.ts, packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

bulk.bulk-api-1-0-batches: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Bulk 1.0 binary attachments — Unfinished facet: missing; reference pending

bulk1.binary-attachments · API 67.0 · Profile: not-selected

Binary attachments and Bulk 1.0 session-error envelopes are explicitly excluded.

Next acceptance case: Keep independent binary-upload and expired/revoked/wrong-org X-SFDC-Session cases; compare content types and error bodies without logging secrets.

Implementation paths: packages/runtime/src/bulk1.ts, packages/runtime/src/bulk.ts, packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

bulk.bulk-api-1-0-batches: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Bulk 1.0 session-error envelopes — Unfinished facet: missing; reference pending

bulk1.session-errors · API 67.0 · Profile: not-selected

Binary attachments and Bulk 1.0 session-error envelopes are explicitly excluded.

Next acceptance case: Keep independent binary-upload and expired/revoked/wrong-org X-SFDC-Session cases; compare content types and error bodies without logging secrets.

Implementation paths: packages/runtime/src/bulk1.ts, packages/runtime/src/bulk.ts, packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

bulk.bulk-api-1-0-batches: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

GraphQL

Implemented dispatch patterns only; individual methods and variants remain bounded by the linked slices and gaps. UI API layouts/record-ui/lookups/actions and general Partner/Enterprise SOAP data methods are missing in this baseline.

GraphQL record queries — Catalog slice: linked-subset

graphql.record-queries · API 67.0 · Profile: standard-org-67.0

Matches uiapi record queries with value/displayValue, Id and variables on a custom object (examples/untracked-org); Fragments, directives, child relationships, scope/upperBound arguments and standard objects with record types are unverified; unsupported syntax returns ValidationError; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches uiapi record queries with value/displayValue, Id and variables on a custom object (examples/untracked-org); Fragments, directives, child relationships, scope/upperBound arguments and standard objects with record types are unverified; unsupported syntax returns ValidationError; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/graphql.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-7140, VO-DIFF-7145.

Selected local acceptance: VO-DIFF-7140: not-run; VO-DIFF-7145: not-run. Reference comparison for this facet: linked-subset.

graphql.record-queries: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-graphql.record-queries-63938c8.

GraphQL where filters — Catalog slice: linked-subset

graphql.filtering · API 67.0 · Profile: standard-org-67.0

Matches gt/gte/eq/like/in, and/or and eq null filters; Relationship filters, date literals/ranges and nin/ne/lt/lte are implemented but not compared; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches gt/gte/eq/like/in, and/or and eq null filters; Relationship filters, date literals/ranges and nin/ne/lt/lte are implemented but not compared; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/graphql.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-7141.

Selected local acceptance: VO-DIFF-7141: not-run. Reference comparison for this facet: linked-subset.

graphql.filtering: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-graphql.filtering-63938c8.

GraphQL ordering — Catalog slice: linked-subset

graphql.ordering · API 67.0 · Profile: standard-org-67.0

Matches ASC and DESC NULLS LAST ordering; an Id tie-breaker is appended (an inferred stable order); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches ASC and DESC NULLS LAST ordering; an Id tie-breaker is appended (an inferred stable order); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/graphql.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-7140.

Selected local acceptance: VO-DIFF-7140: not-run. Reference comparison for this facet: linked-subset.

graphql.ordering: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-graphql.ordering-63938c8.

GraphQL pagination — Catalog slice: linked-subset

graphql.pagination · API 67.0 · Profile: standard-org-67.0

Matches first/after paging, totalCount and pageInfo across three pages; cursors are VirtualOrg's own opaque offsets and foreign cursors are rejected; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches first/after paging, totalCount and pageInfo across three pages; cursors are VirtualOrg's own opaque offsets and foreign cursors are rejected; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/graphql.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-7142, VO-UNTRK-007.

Selected local acceptance: VO-DIFF-7142: not-run; VO-UNTRK-007: not-run. Reference comparison for this facet: linked-subset.

graphql.pagination: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-graphql.pagination-63938c8.

GraphQL parent and child relationships — Catalog slice: linked-subset

graphql.relationships · API 67.0 · Profile: standard-org-67.0

Matches single-target parent relationship fields; child relationship connections are not implemented; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches single-target parent relationship fields; child relationship connections are not implemented; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/graphql.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-7143.

Selected local acceptance: VO-DIFF-7143: not-run. Reference comparison for this facet: linked-subset.

graphql.relationships: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-graphql.relationships-63938c8.

GraphQL aggregate queries — Catalog slice: linked-subset

graphql.aggregate-queries · API 67.0 · Profile: standard-org-67.0

Matches groupBy on a picklist with sum/max/count and picklist definition ordering; avg/min/countDistinct, groupBy functions and pagination of aggregates are not compared; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches groupBy on a picklist with sum/max/count and picklist definition ordering; avg/min/countDistinct, groupBy functions and pagination of aggregates are not compared; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/graphql.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-7144.

Selected local acceptance: VO-DIFF-7144: not-run. Reference comparison for this facet: linked-subset.

graphql.aggregate-queries: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-graphql.aggregate-queries-63938c8.

GraphQL mutations — Catalog slice: linked-subset

graphql.mutations · API 67.0 · Profile: standard-org-67.0

Matches Create, Update and Delete mutations with Record selections; mutation error payloads and allOrNone batches are unverified; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches Create, Update and Delete mutations with Record selections; mutation error payloads and allOrNone batches are unverified; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/graphql.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-7147.

Selected local acceptance: VO-DIFF-7147: not-run. Reference comparison for this facet: linked-subset.

graphql.mutations: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-graphql.mutations-63938c8.

GraphQL object info — Catalog slice: linked-subset

graphql.object-info-queries · API 67.0 · Profile: standard-org-67.0

Matches objectInfos ApiName/label/labelPlural/keyPrefix/createable and field ApiName/dataType/label (compared sorted; CloneSourceId excluded); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches objectInfos ApiName/label/labelPlural/keyPrefix/createable and field ApiName/dataType/label (compared sorted; CloneSourceId excluded); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/graphql.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-7146.

Selected local acceptance: VO-DIFF-7146: not-run. Reference comparison for this facet: linked-subset.

graphql.object-info-queries: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-graphql.object-info-queries-63938c8.

GraphQL errors — Catalog slice: linked-subset

graphql.errors · API 67.0 · Profile: standard-org-67.0

Matches InvalidSyntax and FieldUndefined ValidationError messages and locations and the GET input error; Other graphql-java validation rules are not modeled; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches InvalidSyntax and FieldUndefined ValidationError messages and locations and the GET input error; Other graphql-java validation rules are not modeled; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/graphql.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-7148, VO-UNTRK-007.

Selected local acceptance: VO-DIFF-7148: not-run; VO-UNTRK-007: not-run. Reference comparison for this facet: linked-subset.

graphql.errors: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-graphql.errors-63938c8.

GraphQL field-level security — Catalog slice: linked-subset

graphql.field-level-security · API 67.0 · Profile: standard-org-67.0

Matches a Standard User with object read and partial field access: readable fields resolve, an unreadable selected field is FieldUndefined and an unreadable filter field is a WrongType validation error (2026-10-15 receipt); Objects without read access report FieldUndefined (native test only); mutations under restricted access are not compared; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches a Standard User with object read and partial field access: readable fields resolve, an unreadable selected field is FieldUndefined and an unreadable filter field is a WrongType validation error (2026-10-15 receipt); Objects without read access report FieldUndefined (native test only); mutations under restricted access are not compared; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/graphql.ts, packages/runtime/src/security.ts. Local case IDs: VO-UNTRK-007, VO-DIFF-7149.

Selected local acceptance: VO-UNTRK-007: not-run; VO-DIFF-7149: not-run. Reference comparison for this facet: linked-subset.

graphql.field-level-security: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-graphql.field-level-security-82a584e.

Select child connections with nested pageInfo — Unfinished facet: missing; reference pending

graphql.child-connections · API 67.0 · Profile: not-selected

VO-DIFF-7143 matches single-target parent fields only; child connection execution is absent.

Next acceptance case: Query a parent with two child pages, null parents, a denied child field and independent parent/child cursors; compare data, errors and ordering.

Implementation paths: packages/runtime/src/graphql.ts, packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

graphql.relationships: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Execute fragments and conditional directives — Unfinished facet: missing; reference pending

graphql.fragments-directives · API 67.0 · Profile: not-selected

Native tests explicitly reject fragments and directives; a record-query match does not include them.

Next acceptance case: Compare named/inline fragments and include/skip directives with variables, denied fields and malformed definitions.

Implementation paths: packages/runtime/src/graphql.ts, packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

graphql.record-queries: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Bind cursors to query, principal and expiry — Unfinished facet: uncompared; reference pending

graphql.cursor-identity-expiry · API 67.0 · Profile: not-selected

Current cursors encode offsets, unlike durable REST locators; query identity, ownership and expiration are not established.

Next acceptance case: Reuse a cursor across filters, objects, users and orgs; mutate data and advance time; compare allowed continuation and errors against a selected profile.

Implementation paths: packages/runtime/src/graphql.ts, packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

graphql.pagination: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Multiple mutations with a later error — Unfinished facet: uncompared; reference pending

graphql.mutation-rollback-errors · API 67.0 · Profile: not-selected

Create/update/delete in one recorded case does not establish all mutation transaction/error permutations; the handler catches client errors inside the request.

Next acceptance case: Run successful then invalid or denied mutations in one operation; compare response data/errors and committed state under the documented transaction option.

Implementation paths: packages/runtime/src/graphql.ts, packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

graphql.mutations: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Nested and paged aggregate variants — Unfinished facet: uncompared; reference pending

graphql.aggregate-variants · API 67.0 · Profile: not-selected

The grouped aggregate match covers selected scalar functions only, not every grouping, null, relationship, paging or permission combination.

Next acceptance case: Compare null-only groups, filter/sort, unsupported group functions, denied grouping fields and aggregate pagination independently.

Implementation paths: packages/runtime/src/graphql.ts, packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

graphql.aggregate-queries: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Discover schema and select operationName — Unfinished facet: missing; reference pending

graphql.schema-introspection · API 67.0 · Profile: not-selected

The bounded parser does not implement general schema introspection or multi-operation selection.

Next acceptance case: Compare __schema/__type and multiple named operations with operationName, invalid names and principal-specific visibility.

Implementation paths: packages/runtime/src/graphql.ts, packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

graphql.errors: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Tooling lifecycle

Implemented dispatch patterns only; individual methods and variants remain bounded by the linked slices and gaps. UI API layouts/record-ui/lookups/actions and general Partner/Enterprise SOAP data methods are missing in this baseline.

Tooling query — Catalog slice: linked-subset

tooling.tooling-query · API 67.0 · Profile: standard-org-67.0

Tooling query envelope (size, entityTypeName, queryLocator) and tooling record URLs; objects: ApexClass, ApexTrigger, ApexTestQueueItem, ApexTestResult, ApexTestRunResult, ApexLog, AsyncApexJob, User; Other objects fail with INVALID_TYPE as observed; Polymorphic lookups report type Name; coverage objects refreshed at query time; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Tooling query envelope (size, entityTypeName, queryLocator) and tooling record URLs; objects: ApexClass, ApexTrigger, ApexTestQueueItem, ApexTestResult, ApexTestRunResult, ApexLog, AsyncApexJob, User; Other objects fail with INVALID_TYPE as observed; Polymorphic lookups report type Name; coverage objects refreshed at query time; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/index.ts, packages/runtime/src/soql.ts, packages/runtime/src/tooling.ts, packages/runtime/src/schema.ts, packages/runtime/src/standard/tooling.json. Local case IDs: VO-DIFF-045, VO-DIFF-150, VO-DIFF-155, VO-DIFF-158.

Selected local acceptance: VO-DIFF-045: not-run; VO-DIFF-150: not-run; VO-DIFF-155: not-run; VO-DIFF-158: not-run. Reference comparison for this facet: linked-subset.

tooling.tooling-query: partial; linked local report passed (0.7.25). Evidence IDs for this facet: EV-tooling.tooling-query-feaf503.

ApexClass records — Catalog slice: linked-subset

tooling.apexclass-records · API 67.0 · Profile: standard-org-67.0

Historical0.2.0 record-query profile: class storage/read and its declared Tooling query subset; fresh class creation/compilation was not admitted in that profile.; Tooling query of Name, Status, ApiVersion, IsValid, NamespacePrefix matches the receipt; Differential match is profile-bound; broader parity unverified; Runtime0.7.21 separately measures fresh original named Active API67 Tooling class creation as setup in revenue-cloud.native-decision-table-apex. General Tooling ApexClass authoring/lifecycle/errors remain unadmitted; this older record-read evidence and first parity version stay unchanged.

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Historical0.2.0 record-query profile: class storage/read and its declared Tooling query subset; fresh class creation/compilation was not admitted in that profile.; Tooling query of Name, Status, ApiVersion, IsValid, NamespacePrefix matches the receipt; Differential match is profile-bound; broader parity unverified; Runtime0.7.21 separately measures fresh original named Active API67 Tooling class creation as setup in revenue-cloud.native-decision-table-apex. General Tooling ApexClass authoring/lifecycle/errors remain unadmitted; this older record-read evidence and first parity version stay unchanged.

Implementation paths: packages/runtime/src/deploy.ts. Local case IDs: VO-CLI-006, VO-DIFF-045.

Selected local acceptance: VO-CLI-006: not-run; VO-DIFF-045: not-run. Reference comparison for this facet: linked-subset.

tooling.apexclass-records: partial; linked local report passed (0.7.25). Evidence IDs for this facet: EV-tooling.apexclass-records-29bc263.

ApexTrigger records — Catalog slice: linked-subset

tooling.apextrigger-records · API 67.0 · Profile: standard-org-67.0

Deployed triggers stored as ApexTrigger records with usage flags; Tooling query of TableEnumOrId and Usage* flags matches the receipt; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Deployed triggers stored as ApexTrigger records with usage flags; Tooling query of TableEnumOrId and Usage* flags matches the receipt; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/deploy.ts. Local case IDs: VO-APEX-008, VO-DIFF-045.

Selected local acceptance: VO-APEX-008: not-run; VO-DIFF-045: not-run. Reference comparison for this facet: linked-subset.

tooling.apextrigger-records: partial; linked local report passed (0.7.25). Evidence IDs for this facet: EV-tooling.apextrigger-records-29bc263.

Apex test run records — Unfinished facet: missing; reference pending

tooling.apex-test-run-records · API 67.0 · Profile: rust-only-current

Current Rust-only profile: predecessor TypeScript execution/coverage is retired. This workflow is explicitly unsupported or requires a new exact-source Rust comparison. Historical provider observations remain dated evidence, not current support.

Next acceptance case: Verify the current explicit fence, then implement and compare a bounded canonical Rust workflow before admitting this slice.

Implementation paths: packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

tooling.apex-test-run-records: partial; linked local report passed (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Apex code coverage records — Unfinished facet: missing; reference pending

tooling.apex-code-coverage-records · API 67.0 · Profile: rust-only-current

Current Rust-only profile: predecessor TypeScript execution/coverage is retired. This workflow is explicitly unsupported or requires a new exact-source Rust comparison. Historical provider observations remain dated evidence, not current support.

Next acceptance case: Verify the current explicit fence, then implement and compare a bounded canonical Rust workflow before admitting this slice.

Implementation paths: packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

tooling.apex-code-coverage-records: partial; linked local report passed (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Trace flags — Catalog slice: linked-subset

tooling.trace-flags · API 67.0 · Profile: standard-org-67.0

DEVELOPER_LOG and USER_DEBUG flags trace users; class/trigger tracing not implemented; Default levels for omitted DebugLevel categories are unverified; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: DEVELOPER_LOG and USER_DEBUG flags trace users; class/trigger tracing not implemented; Default levels for omitted DebugLevel categories are unverified; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/tooling.ts, packages/runtime/src/schema.ts, packages/runtime/src/standard/tooling.json. Local case IDs: VO-DIFF-150, VO-DIFF-151, VO-DIFF-152, VO-DIFF-153, VO-APEX-101, VO-APEX-105, VO-APEX-106.

Selected local acceptance: VO-DIFF-150: not-run; VO-DIFF-151: not-run; VO-DIFF-152: not-run; VO-DIFF-153: not-run; VO-APEX-101: not-run; VO-APEX-105: not-run; VO-APEX-106: not-run. Reference comparison for this facet: linked-subset.

tooling.trace-flags: partial; linked local report passed (0.7.25). Evidence IDs for this facet: EV-tooling.trace-flags-feaf503.

Debug logs — Catalog slice: pending

tooling.debug-logs · API 67.0 · Profile: rust-only-current

Current Rust-only profile: predecessor TypeScript execution/coverage is retired. This workflow is explicitly unsupported or requires a new exact-source Rust comparison. Historical provider observations remain dated evidence, not current support.

Next acceptance case: Verify the current explicit fence, then implement and compare a bounded canonical Rust workflow before admitting this slice.

Implementation paths: packages/runtime/src/tooling.ts, packages/runtime/src/soap.ts, packages/runtime/src/streaming.ts, engine/core/src/compiler/exceptions.rs, engine/core/src/compiler/assertions.rs, engine/core/src/vm/exceptions.rs, engine/core/src/vm/assertions.rs, packages/runtime/src/apex-log.ts, packages/runtime/src/apex-execution.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

tooling.debug-logs: experimental; linked local report passed (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

MetadataContainer — Catalog slice: linked-subset

tooling.metadatacontainer · API 67.0 · Profile: standard-org-67.0

Recorded describe, required/length/duplicate Name errors, reads, queries and deletion with member cascade; containers hold ApexClassMember records only; Deleting a container also removes its requests in Virtual Org; Salesforce request retention after deletion is unmeasured; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Recorded describe, required/length/duplicate Name errors, reads, queries and deletion with member cascade; containers hold ApexClassMember records only; Deleting a container also removes its requests in Virtual Org; Salesforce request retention after deletion is unmeasured; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/apex-container.ts, packages/runtime/src/tooling.ts, packages/runtime/src/standard/tooling.json. Local case IDs: VO-DIFF-2110, VO-DIFF-2111, VO-DIFF-2112, VO-DIFF-2118.

Selected local acceptance: VO-DIFF-2110: not-run; VO-DIFF-2111: not-run; VO-DIFF-2112: not-run; VO-DIFF-2118: not-run. Reference comparison for this facet: linked-subset.

tooling.metadatacontainer: partial; linked local report passed (0.7.25). Evidence IDs for this facet: EV-tooling.metadatacontainer-1532fe5.

ContainerAsyncRequest — Catalog slice: linked-subset

tooling.containerasyncrequest · API 67.0 · Profile: standard-org-67.0

Requests compile inside the creating API transaction through the shared Metadata deploy service; the first read already shows Completed or Failed (the reference reports Queued first); Check-only compiles roll back; unchanged member bodies are skipped; completed requests cannot be aborted; IsRunTests, MetadataContainerMemberId and non-class members are rejected as not implemented; Compiler diagnostics are compared for two syntax errors; other messages follow the shared Apex parser and remain reference-pending; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Requests compile inside the creating API transaction through the shared Metadata deploy service; the first read already shows Completed or Failed (the reference reports Queued first); Check-only compiles roll back; unchanged member bodies are skipped; completed requests cannot be aborted; IsRunTests, MetadataContainerMemberId and non-class members are rejected as not implemented; Compiler diagnostics are compared for two syntax errors; other messages follow the shared Apex parser and remain reference-pending; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/apex-container.ts, packages/runtime/src/soap.ts, packages/runtime/src/tooling.ts. Local case IDs: VO-DIFF-2112, VO-DIFF-2113, VO-DIFF-2114, VO-DIFF-2116, VO-DIFF-2117, VO-DIFF-2119.

Selected local acceptance: VO-DIFF-2112: not-run; VO-DIFF-2113: not-run; VO-DIFF-2114: not-run; VO-DIFF-2116: not-run; VO-DIFF-2117: not-run; VO-DIFF-2119: not-run. Reference comparison for this facet: linked-subset.

tooling.containerasyncrequest: partial; linked local report passed (0.7.25). Evidence IDs for this facet: EV-tooling.containerasyncrequest-1532fe5.

Symbol tables — Unfinished facet: missing; reference pending

tooling.symbol-tables · API 67.0 · Profile: rust-only-current

Current Rust-only profile: predecessor TypeScript execution/coverage is retired. This workflow is explicitly unsupported or requires a new exact-source Rust comparison. Historical provider observations remain dated evidence, not current support.

Next acceptance case: Verify the current explicit fence, then implement and compare a bounded canonical Rust workflow before admitting this slice.

Implementation paths: packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

tooling.symbol-tables: partial; linked local report passed (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

FlowDefinition records — Catalog slice: linked-subset

tooling.flowdefinition-records · API 67.0 · Profile: standard-org-67.0

FlowDefinitionView and FlowVersionView rows keep the 15-character ID with a vvv suffix; Differential match is profile-bound; broader parity unverified; Fresh October 18 Flow3 Tooling FlowDefinition ApiVersion is 68 for 19 rows, versus 67 in the selected October 10 oracle. Authored flow XML API versions and active Flow version observations are distinct and unchanged in that comparison; current-native renewal of the definition field is pending.

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: FlowDefinitionView and FlowVersionView rows keep the 15-character ID with a vvv suffix; Differential match is profile-bound; broader parity unverified; Fresh October 18 Flow3 Tooling FlowDefinition ApiVersion is 68 for 19 rows, versus 67 in the selected October 10 oracle. Authored flow XML API versions and active Flow version observations are distinct and unchanged in that comparison; current-native renewal of the definition field is pending.

Implementation paths: packages/runtime/src/flow-records.ts, packages/runtime/src/tooling.ts. Local case IDs: VO-DIFF-516, VO-DIFF-517, VO-DIFF-568.

Selected local acceptance: VO-DIFF-516: not-run; VO-DIFF-517: not-run; VO-DIFF-568: not-run. Reference comparison for this facet: linked-subset.

tooling.flowdefinition-records: partial; linked local report passed (0.7.25). Evidence IDs for this facet: EV-tooling.flowdefinition-records-c3441f6.

Execute anonymous Tooling endpoint — Catalog slice: linked-subset

tooling.execute-anonymous-tooling-endpoint · API 67.0 · Profile: standard-org-67.0

GET tooling/executeAnonymous; GET tooling/executeAnonymous; traced runs store ApexLog rows; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: GET tooling/executeAnonymous; GET tooling/executeAnonymous; traced runs store ApexLog rows; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/index.ts, packages/runtime/src/soap.ts. Local case IDs: VO-APEX-011, VO-DIFF-100, VO-DIFF-122.

Selected local acceptance: VO-APEX-011: not-run; VO-DIFF-100: not-run; VO-DIFF-122: not-run. Reference comparison for this facet: linked-subset.

tooling.execute-anonymous-tooling-endpoint: partial; linked local report passed (0.7.25). Evidence IDs for this facet: EV-tooling.execute-anonymous-tooling-endpoint-feaf503.

Poll and abort a queued container compile — Unfinished facet: different-lifecycle; reference pending

tooling.real-queued-container · API 67.0 · Profile: not-selected

Compilation runs inside create; first read is Completed or Failed while the recorded reference service initially reports Queued.

Next acceptance case: Compare queued-to-compiling-to-terminal transitions, creator authority and abort before completion; retain existing terminal diagnostics.

Implementation paths: packages/runtime/src/apex-container.ts, packages/runtime/src/soap.ts, packages/runtime/src/tooling.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

tooling.containerasyncrequest: partial; linked local report passed (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Compile trigger and other container members — Unfinished facet: missing; reference pending

tooling.nonclass-container-members · API 67.0 · Profile: not-selected

Only class members are admitted; non-class members, IsRunTests and MetadataContainerMemberId variants are rejected.

Next acceptance case: Create trigger and class members with dependent syntax, check-only and invalid requests; verify no partial source installation.

Implementation paths: packages/runtime/src/apex-container.ts, packages/runtime/src/tooling.ts, packages/runtime/src/standard/tooling.json. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

tooling.metadatacontainer: partial; linked local report passed (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Edit source after revocation or concurrent changes — Unfinished facet: uncompared; reference pending

tooling.source-authority-concurrency · API 67.0 · Profile: not-selected

Source lifecycle receipts do not establish every version-conflict, principal, dependency and rollback combination.

Next acceptance case: Have two users read then update a class, revoke authoring authority and submit an invalid trigger dependency; compare source and diagnostics after failure.

Implementation paths: packages/runtime/src/deploy.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

tooling.apexclass-records: partial; linked local report passed (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

UI API resources

Implemented dispatch patterns only; individual methods and variants remain bounded by the linked slices and gaps. UI API layouts/record-ui/lookups/actions and general Partner/Enterprise SOAP data methods are missing in this baseline.

UI API object info — Catalog slice: linked-subset

ui-api.object-info · API 67.0 · Profile: standard-org-67.0

Matches the recorded API 67.0 receipt for a custom object without record types (examples/untracked-org); childRelationships and the CloneSourceId system field (added to custom objects by the 2026-10 release) are documented exclusions; Standard objects are served by the LWC-backed resource, compared on Account under lwc.object-info-and-picklists (VO-DIFF-8123); for custom objects themeInfo is the default custom-object color and record types, dependent fields and compound fields are not modeled; A restricted Standard User comparison (field-level security) also matches (VO-DIFF-7129); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches the recorded API 67.0 receipt for a custom object without record types (examples/untracked-org); childRelationships and the CloneSourceId system field (added to custom objects by the 2026-10 release) are documented exclusions; Standard objects are served by the LWC-backed resource, compared on Account under lwc.object-info-and-picklists (VO-DIFF-8123); for custom objects themeInfo is the default custom-object color and record types, dependent fields and compound fields are not modeled; A restricted Standard User comparison (field-level security) also matches (VO-DIFF-7129); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/salesforce-ui-api.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-7120, VO-UNTRK-006, VO-DIFF-7129.

Selected local acceptance: VO-DIFF-7120: not-run; VO-UNTRK-006: not-run; VO-DIFF-7129: not-run. Reference comparison for this facet: linked-subset.

ui-api.object-info: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-ui-api.object-info-63938c8.

UI API batch object info — Catalog slice: linked-subset

ui-api.object-info-batch · API 67.0 · Profile: standard-org-67.0

Matches batch object info and the 403 unknown-object envelopes (FORBIDDEN in batch, INSUFFICIENT_ACCESS single) as recorded; Same object-info exclusions as ui-api.object-info; Batches naming a standard object answer UNSUPPORTED_UI_API (501); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches batch object info and the 403 unknown-object envelopes (FORBIDDEN in batch, INSUFFICIENT_ACCESS single) as recorded; Same object-info exclusions as ui-api.object-info; Batches naming a standard object answer UNSUPPORTED_UI_API (501); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/salesforce-ui-api.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-7121.

Selected local acceptance: VO-DIFF-7121: not-run. Reference comparison for this facet: linked-subset.

ui-api.object-info-batch: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-ui-api.object-info-batch-63938c8.

UI API picklist values — Catalog slice: linked-subset

ui-api.picklist-values · API 67.0 · Profile: standard-org-67.0

Matches master-record-type picklist values for one field and for all picklists, and the not-a-picklist error, on a custom object (2026-10-15 receipt); Dependent picklists (controllerValues/validFor) and non-master record types return UNSUPPORTED_UI_API (501); Standard-object picklist values are served by the LWC-backed resource, compared on Account under lwc.object-info-and-picklists (VO-DIFF-8123); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches master-record-type picklist values for one field and for all picklists, and the not-a-picklist error, on a custom object (2026-10-15 receipt); Dependent picklists (controllerValues/validFor) and non-master record types return UNSUPPORTED_UI_API (501); Standard-object picklist values are served by the LWC-backed resource, compared on Account under lwc.object-info-and-picklists (VO-DIFF-8123); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/salesforce-ui-api.ts. Local case IDs: VO-DIFF-7127.

Selected local acceptance: VO-DIFF-7127: not-run. Reference comparison for this facet: linked-subset.

ui-api.picklist-values: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-ui-api.picklist-values-fec9c34.

UI API get record — Catalog slice: linked-subset

ui-api.record-read · API 67.0 · Profile: standard-org-67.0

Matches fields/optionalFields reads with picklist, date, datetime (user time zone), number, boolean, text and single-target lookup values on a custom object; eTag values are opaque digests (format checked, value not compared); layoutTypes/modes reads return NOT_FOUND; Unknown required fields return INVALID_FIELD without Salesforce's embedded SOQL text; A restricted Standard User comparison (field-level security) also matches (VO-DIFF-7129); Standard-object reads are served by the LWC-backed resource, compared on Account under lwc.record-read-services (VO-DIFF-8121); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches fields/optionalFields reads with picklist, date, datetime (user time zone), number, boolean, text and single-target lookup values on a custom object; eTag values are opaque digests (format checked, value not compared); layoutTypes/modes reads return NOT_FOUND; Unknown required fields return INVALID_FIELD without Salesforce's embedded SOQL text; A restricted Standard User comparison (field-level security) also matches (VO-DIFF-7129); Standard-object reads are served by the LWC-backed resource, compared on Account under lwc.record-read-services (VO-DIFF-8121); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/salesforce-ui-api.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-7122, VO-DIFF-7123, VO-UNTRK-006, VO-DIFF-7129.

Selected local acceptance: VO-DIFF-7122: not-run; VO-DIFF-7123: not-run; VO-UNTRK-006: not-run; VO-DIFF-7129: not-run. Reference comparison for this facet: linked-subset.

ui-api.record-read: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-ui-api.record-read-63938c8.

UI API batch records — Catalog slice: linked-subset

ui-api.record-batch-read · API 67.0 · Profile: standard-org-67.0

Matches batch reads with a missing record (404 'Resource not found.') as recorded; Batches containing a standard-object record answer UNSUPPORTED_UI_API (501); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches batch reads with a missing record (404 'Resource not found.') as recorded; Batches containing a standard-object record answer UNSUPPORTED_UI_API (501); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/salesforce-ui-api.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-7124.

Selected local acceptance: VO-DIFF-7124: not-run. Reference comparison for this facet: linked-subset.

ui-api.record-batch-read: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-ui-api.record-batch-read-63938c8.

UI API create record — Catalog slice: linked-subset

ui-api.record-create · API 67.0 · Profile: standard-org-67.0

Matches create status and persisted values; the response field set follows the reference's page layout and only apiName/id are compared; RecordError envelopes compared for a restricted picklist and missing apiName; Standard-object writes are served by the LWC-backed resource, compared on Account under lwc.record-write-services (VO-DIFF-8122); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches create status and persisted values; the response field set follows the reference's page layout and only apiName/id are compared; RecordError envelopes compared for a restricted picklist and missing apiName; Standard-object writes are served by the LWC-backed resource, compared on Account under lwc.record-write-services (VO-DIFF-8122); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/salesforce-ui-api.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-7125, VO-DIFF-7126.

Selected local acceptance: VO-DIFF-7125: not-run; VO-DIFF-7126: not-run. Reference comparison for this facet: linked-subset.

ui-api.record-create: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-ui-api.record-create-63938c8.

UI API update record — Catalog slice: linked-subset

ui-api.record-update · API 67.0 · Profile: standard-org-67.0

Matches update status and persisted values including clearing a field; response field set compared by apiName/id only; If-Unmodified-Since conflicts are not implemented; Standard-object writes are served by the LWC-backed resource, compared on Account under lwc.record-write-services (VO-DIFF-8122); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches update status and persisted values including clearing a field; response field set compared by apiName/id only; If-Unmodified-Since conflicts are not implemented; Standard-object writes are served by the LWC-backed resource, compared on Account under lwc.record-write-services (VO-DIFF-8122); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/salesforce-ui-api.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-7125, VO-DIFF-7126.

Selected local acceptance: VO-DIFF-7125: not-run; VO-DIFF-7126: not-run. Reference comparison for this facet: linked-subset.

ui-api.record-update: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-ui-api.record-update-63938c8.

UI API delete record — Catalog slice: linked-subset

ui-api.record-delete · API 67.0 · Profile: standard-org-67.0

Matches delete (204), the following 404 read and the INVALID_CROSS_REFERENCE_KEY RecordError for a missing record; Standard-object writes are served by the LWC-backed resource, compared on Account under lwc.record-write-services (VO-DIFF-8122); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches delete (204), the following 404 read and the INVALID_CROSS_REFERENCE_KEY RecordError for a missing record; Standard-object writes are served by the LWC-backed resource, compared on Account under lwc.record-write-services (VO-DIFF-8122); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/salesforce-ui-api.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-7125, VO-DIFF-7126.

Selected local acceptance: VO-DIFF-7125: not-run; VO-DIFF-7126: not-run. Reference comparison for this facet: linked-subset.

ui-api.record-delete: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-ui-api.record-delete-63938c8.

UI API record UI — Catalog slice: pending

ui-api.record-ui · API not selected · Profile: headless-core

The Salesforce record-ui resource is unimplemented; native workspaces and record reads do not establish it. Layout work owns this contract.

Next acceptance case: Cross-reference the layout task's record-ui case for record types, modes and authority, without replacing its native authoring acceptance.

Implementation paths: No registered implementation. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

ui-api.record-ui: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

UI API layouts — Catalog slice: pending

ui-api.layouts · API not selected · Profile: headless-core

Inventory cross-reference only; layout semantics and assignments belong to the layouts work area. Native browser layout APIs are a different interface.

Next acceptance case: Coordinate acceptance through ui-api.layouts: pin modes/record types and verify the exact UI API response separately from native authoring/browser rendering.

Implementation paths: No registered implementation. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

ui-api.layouts: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

UI API list info and list records — Catalog slice: linked-subset

ui-api.list-info-and-records · API 67.0 · Profile: standard-org-67.0

Matches list-records for metadata list views (record representation of view columns and system fields, offset page tokens, fields echo, unknown view 404) against a 2026-10-15 receipt; list-info and list-ui are not implemented (their inline-edit attributes follow the page layout); sortBy, where, searchTerm and lookup columns return UNSUPPORTED_UI_API (501); Standard-object list views answer UNSUPPORTED_UI_API (501); Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches list-records for metadata list views (record representation of view columns and system fields, offset page tokens, fields echo, unknown view 404) against a 2026-10-15 receipt; list-info and list-ui are not implemented (their inline-edit attributes follow the page layout); sortBy, where, searchTerm and lookup columns return UNSUPPORTED_UI_API (501); Standard-object list views answer UNSUPPORTED_UI_API (501); Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/salesforce-ui-api.ts, packages/runtime/src/rest-listviews.ts. Local case IDs: VO-DIFF-7128.

Selected local acceptance: VO-DIFF-7128: not-run. Reference comparison for this facet: linked-subset.

ui-api.list-info-and-records: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-ui-api.list-info-and-records-fec9c34.

UI API record defaults — Catalog slice: linked-subset

ui-api.record-defaults · API 67.0 · Profile: standard-org-67.0

Create defaults (GET /ui-api/record-defaults/create/{object}) are served by the LWC-backed resource and match the API 67.0 receipt on Account for the master record type as the System Administrator (record and objectInfoApiNames compared); Clone defaults (record-defaults/clone) answer NOT_FOUND (not implemented); custom objects, other record types, optionalFields and formFactor variants and non-administrator users have no recorded comparison; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Create defaults (GET /ui-api/record-defaults/create/{object}) are served by the LWC-backed resource and match the API 67.0 receipt on Account for the master record type as the System Administrator (record and objectInfoApiNames compared); Clone defaults (record-defaults/clone) answer NOT_FOUND (not implemented); custom objects, other record types, optionalFields and formFactor variants and non-administrator users have no recorded comparison; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/ui-api.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-8124.

Selected local acceptance: VO-DIFF-8124: not-run. Reference comparison for this facet: linked-subset.

ui-api.record-defaults: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-ui-api.record-defaults-563a7aa.

UI API lookups — Catalog slice: pending

ui-api.lookups · API not selected · Profile: headless-core

Salesforce UI API lookup/action resources are absent; original native lookup/action routes are not equivalent claims.

Next acceptance case: Specify lookup search/filter/security and action discovery/execution separately, linking ui-api.lookups and ui-api.actions.

Implementation paths: No registered implementation. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

ui-api.lookups: not-implemented; linked local report not-run. Evidence IDs for this facet: None; parent evidence is cross-reference only.

UI API actions — Catalog slice: pending

ui-api.actions · API not selected · Profile: headless-core

Salesforce UI API lookup/action resources are absent; original native lookup/action routes are not equivalent claims.

Next acceptance case: Specify lookup search/filter/security and action discovery/execution separately, linking ui-api.lookups and ui-api.actions.

Implementation paths: No registered implementation. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

ui-api.actions: not-implemented; linked local report not-run. Evidence IDs for this facet: None; parent evidence is cross-reference only.

UI API error representation — Catalog slice: linked-subset

ui-api.error-representation · API 67.0 · Profile: standard-org-67.0

Matches four recorded write errors (missing apiName, restricted picklist, unknown field, missing record); Duplicate-rule, validation-rule and enhanced field error variants are unverified; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Matches four recorded write errors (missing apiName, restricted picklist, unknown field, missing record); Duplicate-rule, validation-rule and enhanced field error variants are unverified; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/salesforce-ui-api.ts, packages/runtime/src/index.ts. Local case IDs: VO-DIFF-7126, VO-UNTRK-006.

Selected local acceptance: VO-DIFF-7126: not-run; VO-UNTRK-006: not-run. Reference comparison for this facet: linked-subset.

ui-api.error-representation: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-ui-api.error-representation-63938c8.

Read required versus optional denied fields on standard objects — Unfinished facet: uncompared; reference pending

ui-api.required-optional-fields · API 67.0 · Profile: not-selected

Custom object and Account/LWC source paths differ; a custom typed-value match is not standard-object, compound-field or layout coverage.

Next acceptance case: Read Account and a custom object as two users with the same required/optional denied fields; compare omissions, error arrays and compound display values.

Implementation paths: packages/runtime/src/salesforce-ui-api.ts, packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

ui-api.record-read: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Retry UI API saves with conditional preconditions — Unfinished facet: uncompared; reference pending

ui-api.write-retry-preconditions · API 67.0 · Profile: not-selected

Record CRUD comparisons do not declare general idempotency or all concurrent If-Unmodified-Since/eTag combinations.

Next acceptance case: Edit the same record as two users, retry with stale preconditions and compare error payload, field values and absence of duplicate side effects.

Implementation paths: packages/runtime/src/salesforce-ui-api.ts, packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

ui-api.record-update: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Metadata, CLI and SOAP cross-references

Implemented dispatch patterns only; individual methods and variants remain bounded by the linked slices and gaps. UI API layouts/record-ui/lookups/actions and general Partner/Enterprise SOAP data methods are missing in this baseline.

Retrieve ZIP — Catalog slice: linked-subset

metadata.retrieve-zip · API 67.0 · Profile: standard-org-67.0

Unpackaged manifests only; Retrieved XML is the deployed source, not reference-normalized XML; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Unpackaged manifests only; Retrieved XML is the deployed source, not reference-normalized XML; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/soap.ts, packages/metadata/src/index.ts, packages/runtime/src/deploy.ts. Local case IDs: VO-CLI-008, VO-CLI-102, VO-CLI-103, VO-CLI-104.

Selected local acceptance: VO-CLI-008: not-run; VO-CLI-102: not-run; VO-CLI-103: not-run; VO-CLI-104: not-run. Reference comparison for this facet: linked-subset.

metadata.retrieve-zip: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-metadata.retrieve-zip-feaf503.

Retrieve status — Catalog slice: linked-subset

metadata.retrieve-status · API 67.0 · Profile: standard-org-67.0

Retrieve completes inside the retrieve call; As recorded; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Retrieve completes inside the retrieve call; As recorded; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/soap.ts, packages/metadata/src/index.ts, packages/runtime/src/deploy.ts. Local case IDs: VO-CLI-008, VO-CLI-102, VO-CLI-103.

Selected local acceptance: VO-CLI-008: not-run; VO-CLI-102: not-run; VO-CLI-103: not-run. Reference comparison for this facet: linked-subset.

metadata.retrieve-status: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-metadata.retrieve-status-feaf503.

Deploy ZIP — Catalog slice: linked-subset

metadata.deploy-zip · API 67.0 · Profile: standard-org-67.0

Metadata API text ZIP with pre/post/ordinary destructive changes; components selected by package.xml and canonical child identities.; ZIP directory/header consistency, CRC, UTF-8, normalized duplicate paths, traversal, encryption, symlinks and expansion limits are checked. Binary entries, ZIP64 and multiple packages are unavailable.; Multiple structural failures carry file, identity, property and location; exact new result-shape mapping remains reference-pending.; ZIP size and CRC checks use actual incrementally inflated bytes; forged declared sizes cannot truncate accepted XML. Compressed input chunks are bounded before output retention.

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Metadata API text ZIP with pre/post/ordinary destructive changes; components selected by package.xml and canonical child identities.; ZIP directory/header consistency, CRC, UTF-8, normalized duplicate paths, traversal, encryption, symlinks and expansion limits are checked. Binary entries, ZIP64 and multiple packages are unavailable.; Multiple structural failures carry file, identity, property and location; exact new result-shape mapping remains reference-pending.; ZIP size and CRC checks use actual incrementally inflated bytes; forged declared sizes cannot truncate accepted XML. Compressed input chunks are bounded before output retention.

Implementation paths: packages/runtime/src/soap.ts, packages/metadata/src/index.ts, packages/runtime/src/deploy.ts, packages/metadata/src/xml.ts, packages/metadata/src/validation.ts, packages/metadata/src/conversion.ts, packages/runtime/src/archive.ts. Local case IDs: VO-CLI-006, VO-CLI-100, VO-CLI-101, VO-CLI-104, VO-DIFF-613, VO-DIFF-615, VO-DIFF-616, VO-META-310, VO-MDEP-300, VO-MDEP-304, VO-MDEP-307, VO-META-314, VO-MDEP-309.

Selected local acceptance: VO-CLI-006: not-run; VO-CLI-100: not-run; VO-CLI-101: not-run; VO-CLI-104: not-run; VO-DIFF-613: not-run; VO-DIFF-615: not-run; VO-DIFF-616: not-run; VO-META-310: passed; VO-MDEP-300: not-run; VO-MDEP-304: not-run; VO-MDEP-307: not-run; VO-META-314: not-run; VO-MDEP-309: not-run. Reference comparison for this facet: linked-subset.

metadata.deploy-zip: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-metadata.deploy-zip-315a408.

Deploy status — Catalog slice: linked-subset

metadata.deploy-status · API 67.0 · Profile: standard-org-67.0

A native DeployRequest durably stores a queued job; the authorized poll executes under the existing request transaction and org lock. Unpolled jobs remain queued.; Cancellation discards queued work before execution; a completed result is retained after commit. This is a local polling executor, with no autonomous scheduler or manufactured finalization states.; Recorded API 67 terminal shapes remain profile-bound; asynchronous timing, finalization and new cancellation cases remain reference-pending.

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: A native DeployRequest durably stores a queued job; the authorized poll executes under the existing request transaction and org lock. Unpolled jobs remain queued.; Cancellation discards queued work before execution; a completed result is retained after commit. This is a local polling executor, with no autonomous scheduler or manufactured finalization states.; Recorded API 67 terminal shapes remain profile-bound; asynchronous timing, finalization and new cancellation cases remain reference-pending.

Implementation paths: packages/runtime/src/soap.ts, packages/metadata/src/index.ts, packages/runtime/src/deploy.ts, packages/metadata/src/xml.ts, packages/metadata/src/validation.ts, packages/metadata/src/conversion.ts. Local case IDs: VO-CLI-006, VO-CLI-007, VO-CLI-100, VO-CLI-101, VO-DIFF-621, VO-MDEP-305.

Selected local acceptance: VO-CLI-006: not-run; VO-CLI-007: not-run; VO-CLI-100: not-run; VO-CLI-101: not-run; VO-DIFF-621: not-run; VO-MDEP-305: not-run. Reference comparison for this facet: linked-subset.

metadata.deploy-status: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-metadata.deploy-status-315a408.

Check-only deployment — Catalog slice: linked-subset

metadata.check-only-deployment · API 67.0 · Profile: standard-org-67.0

checkOnly runs real compilation and native schema changes, then rolls back source, compiled definitions, DDL, mappings and permissions while preserving the deployment record.; New native rollback assertions are local evidence; historical reference checkOnly receipts remain profile-bound.

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: checkOnly runs real compilation and native schema changes, then rolls back source, compiled definitions, DDL, mappings and permissions while preserving the deployment record.; New native rollback assertions are local evidence; historical reference checkOnly receipts remain profile-bound.

Implementation paths: packages/runtime/src/soap.ts, packages/metadata/src/xml.ts, packages/metadata/src/validation.ts, packages/metadata/src/conversion.ts. Local case IDs: VO-CLI-100, VO-MDEP-301.

Selected local acceptance: VO-CLI-100: not-run; VO-MDEP-301: not-run. Reference comparison for this facet: linked-subset.

metadata.check-only-deployment: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-metadata.check-only-deployment-feaf503.

Quick deployment — Catalog slice: linked-subset

metadata.quick-deployment · API 67.0 · Profile: standard-org-67.0

Successful checkOnly that ran tests can be quick-deployed under deployment authority; intervening successful deploys and active-source changes invalidate it.; A ten-day expiry guard is locally tested; time boundary, cross-user eligibility and full Salesforce quick-deploy semantics remain reference-pending.

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Successful checkOnly that ran tests can be quick-deployed under deployment authority; intervening successful deploys and active-source changes invalidate it.; A ten-day expiry guard is locally tested; time boundary, cross-user eligibility and full Salesforce quick-deploy semantics remain reference-pending.

Implementation paths: packages/runtime/src/soap.ts, packages/metadata/src/xml.ts, packages/metadata/src/validation.ts, packages/metadata/src/conversion.ts. Local case IDs: VO-DIFF-620, VO-CLI-202, VO-MDEP-308.

Selected local acceptance: VO-DIFF-620: not-run; VO-CLI-202: not-run; VO-MDEP-308: not-run. Reference comparison for this facet: linked-subset.

metadata.quick-deployment: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-metadata.quick-deployment-315a408.

Rollback on error — Catalog slice: linked-subset

metadata.rollback-on-error · API 67.0 · Profile: standard-org-67.0

rollbackOnError rolls back candidate source, compiled state and native DDL/mappings; without it, the existing measured file-level partial-save contract applies.; Multiple structural failures are reported locally; failure followed by a valid deploy and rolled-back native state are tested. New diagnostic mappings remain reference-pending.

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: rollbackOnError rolls back candidate source, compiled state and native DDL/mappings; without it, the existing measured file-level partial-save contract applies.; Multiple structural failures are reported locally; failure followed by a valid deploy and rolled-back native state are tested. New diagnostic mappings remain reference-pending.

Implementation paths: packages/runtime/src/soap.ts, packages/metadata/src/index.ts, packages/runtime/src/deploy.ts, packages/runtime/src/native.ts, packages/storage/migrations/0004_native_objects.sql, packages/metadata/src/xml.ts, packages/metadata/src/validation.ts, packages/metadata/src/conversion.ts. Local case IDs: VO-CLI-007, VO-DIFF-613, VO-DIFF-614, VO-NATIVE-003, VO-NATIVE-005, VO-NATIVE-010, VO-NATIVE-015, VO-MDEP-301, VO-MDEP-304.

Selected local acceptance: VO-CLI-007: not-run; VO-DIFF-613: not-run; VO-DIFF-614: not-run; VO-NATIVE-003: not-run; VO-NATIVE-005: not-run; VO-NATIVE-010: not-run; VO-NATIVE-015: not-run; VO-MDEP-301: not-run; VO-MDEP-304: not-run. Reference comparison for this facet: linked-subset.

metadata.rollback-on-error: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-metadata.rollback-on-error-315a408.

Destructive changes pre-deploy — Catalog slice: linked-subset

metadata.destructive-changes-pre-deploy · API 67.0 · Profile: standard-org-67.0

Fields, objects, Apex, global value sets, permission sets and email templates/folders; purgeOnDelete is accepted and deletions are always immediate; Dependency checks cover formula fields, lookups and global value set usage only; Differential match is profile-bound; broader parity unverified; Replayed through the canonical native deployment service; existing API 67 receipts establish only their recorded profile. New modern-source, cancellation and API 68 cases remain reference-pending.

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Fields, objects, Apex, global value sets, permission sets and email templates/folders; purgeOnDelete is accepted and deletions are always immediate; Dependency checks cover formula fields, lookups and global value set usage only; Differential match is profile-bound; broader parity unverified; Replayed through the canonical native deployment service; existing API 67 receipts establish only their recorded profile. New modern-source, cancellation and API 68 cases remain reference-pending.

Implementation paths: packages/runtime/src/soap.ts, packages/runtime/src/deploy.ts, packages/metadata/src/index.ts. Local case IDs: VO-DIFF-616, VO-META-100.

Selected local acceptance: VO-DIFF-616: not-run; VO-META-100: passed. Reference comparison for this facet: linked-subset.

metadata.destructive-changes-pre-deploy: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-metadata.destructive-changes-pre-deploy-315a408.

Destructive changes post-deploy — Catalog slice: linked-subset

metadata.destructive-changes-post-deploy · API 67.0 · Profile: standard-org-67.0

Fields, objects, Apex, global value sets, permission sets and email templates/folders; purgeOnDelete is accepted and deletions are always immediate; Dependency checks cover formula fields, lookups and global value set usage only; Differential match is profile-bound; broader parity unverified; Replayed through the canonical native deployment service; existing API 67 receipts establish only their recorded profile. New modern-source, cancellation and API 68 cases remain reference-pending.

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Fields, objects, Apex, global value sets, permission sets and email templates/folders; purgeOnDelete is accepted and deletions are always immediate; Dependency checks cover formula fields, lookups and global value set usage only; Differential match is profile-bound; broader parity unverified; Replayed through the canonical native deployment service; existing API 67 receipts establish only their recorded profile. New modern-source, cancellation and API 68 cases remain reference-pending.

Implementation paths: packages/runtime/src/soap.ts, packages/runtime/src/deploy.ts, packages/metadata/src/index.ts. Local case IDs: VO-DIFF-616, VO-DIFF-617, VO-META-100, VO-CLI-218.

Selected local acceptance: VO-DIFF-616: not-run; VO-DIFF-617: not-run; VO-META-100: passed; VO-CLI-218: not-run. Reference comparison for this facet: linked-subset.

metadata.destructive-changes-post-deploy: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-metadata.destructive-changes-post-deploy-315a408.

Deploy test levels — Catalog slice: pending

metadata.deploy-test-levels · API 67.0 · Profile: rust-only-current

Current Rust-only profile: predecessor TypeScript execution/coverage is retired. This workflow is explicitly unsupported or requires a new exact-source Rust comparison. Historical provider observations remain dated evidence, not current support.

Next acceptance case: Verify the current explicit fence, then implement and compare a bounded canonical Rust workflow before admitting this slice.

Implementation paths: packages/runtime/src/soap.ts, packages/runtime/src/deploy.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

metadata.deploy-test-levels: experimental; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

sf org login access-token — Catalog slice: linked-subset

cli.sf-org-login-access-token · API 67.0 · Profile: standard-org-67.0

Unmodified @salesforce/cli 2.152.14 in an isolated CLI home; matches the API 67.0 reference receipt for access-token login and malformed, invalid and unparsable inputs (CLIAUTH-LOGIN-001/002); Declared profile difference: Virtual Org orgs have no TrialExpirationDate, so the CLI reports isScratch false and isExpired unknown where the reference reports the reference environment; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Unmodified @salesforce/cli 2.152.14 in an isolated CLI home; matches the API 67.0 reference receipt for access-token login and malformed, invalid and unparsable inputs (CLIAUTH-LOGIN-001/002); Declared profile difference: Virtual Org orgs have no TrialExpirationDate, so the CLI reports isScratch false and isExpired unknown where the reference reports the reference environment; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/index.ts, packages/runtime/src/clients.ts. Local case IDs: VO-CLI-001, VO-DIFF-2101, VO-DIFF-2103.

Selected local acceptance: VO-CLI-001: not-run; VO-DIFF-2101: not-run; VO-DIFF-2103: not-run. Reference comparison for this facet: linked-subset.

cli.sf-org-login-access-token: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-cli.sf-org-login-access-token-1532fe5.

sf data query — Catalog slice: linked-subset

cli.sf-data-query · API 67.0 · Profile: standard-org-67.0

Requires columns=true metadata endpoint; Differential match is profile-bound; broader parity unverified; Fresh October 17 CLI record/query observations contain /services/data/v68.0/ attribute URLs. The pinned API 67.0 comparison does not renew those negotiated-version URL observations; create/update/delete subsets are unchanged in this comparison.; October18 cli2 successor selects the observed v68 query/tooling record-URL version segments. Historical identifier placeholders remain profile-bound; this does not admit all current CLI2 behavior.

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Requires columns=true metadata endpoint; Differential match is profile-bound; broader parity unverified; Fresh October 17 CLI record/query observations contain /services/data/v68.0/ attribute URLs. The pinned API 67.0 comparison does not renew those negotiated-version URL observations; create/update/delete subsets are unchanged in this comparison.; October18 cli2 successor selects the observed v68 query/tooling record-URL version segments. Historical identifier placeholders remain profile-bound; this does not admit all current CLI2 behavior.

Implementation paths: packages/runtime/src/index.ts, packages/runtime/src/soql.ts, packages/runtime/src/tooling.ts. Local case IDs: VO-CLI-002, VO-CLI-005, VO-CLI-212.

Selected local acceptance: VO-CLI-002: not-run; VO-CLI-005: not-run; VO-CLI-212: not-run. Reference comparison for this facet: linked-subset.

cli.sf-data-query: partial; linked local report passed (0.7.25). Evidence IDs for this facet: EV-cli.sf-data-query-315a408.

sf data upsert bulk — Catalog slice: linked-subset

cli.sf-data-upsert-bulk · API 67.0 · Profile: standard-org-67.0

With sf data bulk results and sf data export bulk; sf data query --bulk no longer exists in CLI 2.152; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: With sf data bulk results and sf data export bulk; sf data query --bulk no longer exists in CLI 2.152; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/bulk.ts. Local case IDs: VO-CLI-106.

Selected local acceptance: VO-CLI-106: not-run. Reference comparison for this facet: linked-subset.

cli.sf-data-upsert-bulk: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-cli.sf-data-upsert-bulk-feaf503.

sf project retrieve start — Catalog slice: linked-subset

cli.sf-project-retrieve-start · API 67.0 · Profile: standard-org-67.0

Retrieves previously deployed source for objects, fields, permission sets, profiles, roles and Apex; standard-object retrieval not supported; --manifest, --source-dir and tracked retrieves; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Retrieves previously deployed source for objects, fields, permission sets, profiles, roles and Apex; standard-object retrieval not supported; --manifest, --source-dir and tracked retrieves; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/soap.ts, packages/metadata/src/index.ts, packages/runtime/src/deploy.ts. Local case IDs: VO-CLI-008, VO-CLI-102, VO-CLI-103, VO-CLI-104.

Selected local acceptance: VO-CLI-008: not-run; VO-CLI-102: not-run; VO-CLI-103: not-run; VO-CLI-104: not-run. Reference comparison for this facet: linked-subset.

cli.sf-project-retrieve-start: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-cli.sf-project-retrieve-start-feaf503.

sf project deploy start — Catalog slice: linked-subset

cli.sf-project-deploy-start · API 67.0 · Profile: standard-org-67.0

SOAP Metadata API deploy; synchronous completion reported through checkDeployStatus; test levels run Apex tests; --dry-run, failures and tracked deploys as recorded; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: SOAP Metadata API deploy; synchronous completion reported through checkDeployStatus; test levels run Apex tests; --dry-run, failures and tracked deploys as recorded; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/soap.ts, packages/metadata/src/index.ts, packages/runtime/src/deploy.ts. Local case IDs: VO-CLI-006, VO-CLI-007, VO-CLI-100, VO-CLI-101, VO-CLI-104, VO-CLI-216, VO-CLI-218.

Selected local acceptance: VO-CLI-006: not-run; VO-CLI-007: not-run; VO-CLI-100: not-run; VO-CLI-101: not-run; VO-CLI-104: not-run; VO-CLI-216: not-run; VO-CLI-218: not-run. Reference comparison for this facet: linked-subset.

cli.sf-project-deploy-start: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: EV-cli.sf-project-deploy-start-315a408.

sf project deploy validate — Catalog slice: pending

cli.sf-project-deploy-validate · API 67.0 · Profile: rust-only-current

Current Rust-only profile: predecessor TypeScript execution/coverage is retired. This workflow is explicitly unsupported or requires a new exact-source Rust comparison. Historical provider observations remain dated evidence, not current support.

Next acceptance case: Verify the current explicit fence, then implement and compare a bounded canonical Rust workflow before admitting this slice.

Implementation paths: packages/runtime/src/soap.ts, packages/runtime/src/deploy.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

cli.sf-project-deploy-validate: experimental; linked local report passed (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

sf project deploy report — Catalog slice: linked-subset

cli.sf-project-deploy-report · API 67.0 · Profile: standard-org-67.0

checkDeployStatus of completed deploys; deploys complete synchronously; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: checkDeployStatus of completed deploys; deploys complete synchronously; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/soap.ts. Local case IDs: VO-CLI-201.

Selected local acceptance: VO-CLI-201: not-run. Reference comparison for this facet: linked-subset.

cli.sf-project-deploy-report: partial; linked local report passed (0.7.25). Evidence IDs for this facet: EV-cli.sf-project-deploy-report-315a408.

sf apex run — Catalog slice: linked-subset

cli.sf-apex-run · API 67.0 · Profile: standard-org-67.0

SOAP Apex API executeAnonymous with DebuggingInfo log; Differential match is profile-bound; broader parity unverified

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: SOAP Apex API executeAnonymous with DebuggingInfo log; Differential match is profile-bound; broader parity unverified

Implementation paths: packages/runtime/src/soap.ts. Local case IDs: VO-CLI-009, VO-CLI-204.

Selected local acceptance: VO-CLI-009: not-run; VO-CLI-204: not-run. Reference comparison for this facet: linked-subset.

cli.sf-apex-run: partial; linked local report passed (0.7.25). Evidence IDs for this facet: EV-cli.sf-apex-run-315a408.

sf apex run test — Unfinished facet: missing; reference pending

cli.sf-apex-run-test · API 67.0 · Profile: rust-only-current

Current Rust-only profile: predecessor TypeScript execution/coverage is retired. This workflow is explicitly unsupported or requires a new exact-source Rust comparison. Historical provider observations remain dated evidence, not current support.

Next acceptance case: Verify the current explicit fence, then implement and compare a bounded canonical Rust workflow before admitting this slice.

Implementation paths: packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

cli.sf-apex-run-test: partial; linked local report passed (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Current sf CLI command version — Catalog slice: linked-subset

cli.current-sf-cli-command-version · API 67.0 · Profile: standard-org-67.0

Receipts and tests pinned to @salesforce/cli 2.152.14 (sf v2 commands); the CLI negotiates API 67.0 from /services/data; Differential match is profile-bound; broader parity unverified; The fresh October 17 CLI observation reports instance API 68.0; current comparisons remain pinned to the earlier API 67.0 instance observation. Installed CLI version and instance API version are separate contracts.; October18 cli2 successor compares observed v68 discovery fields; other assertions remain the historical API67 project profile. CLI binary identity remains checked separately.

Next acceptance case: Reproduce this exact linked slice, then compare the remaining qualifiers independently: Receipts and tests pinned to @salesforce/cli 2.152.14 (sf v2 commands); the CLI negotiates API 67.0 from /services/data; Differential match is profile-bound; broader parity unverified; The fresh October 17 CLI observation reports instance API 68.0; current comparisons remain pinned to the earlier API 67.0 instance observation. Installed CLI version and instance API version are separate contracts.; October18 cli2 successor compares observed v68 discovery fields; other assertions remain the historical API67 project profile. CLI binary identity remains checked separately.

Implementation paths: packages/runtime/src/index.ts. Local case IDs: VO-CLI-206, VO-CLI-220.

Selected local acceptance: VO-CLI-206: not-run; VO-CLI-220: not-run. Reference comparison for this facet: linked-subset.

cli.current-sf-cli-command-version: partial; linked local report passed (0.7.25). Evidence IDs for this facet: EV-cli.current-sf-cli-command-version-315a408.

Use general Partner or Enterprise SOAP CRUD/query — Unfinished facet: missing; reference pending

soap.partner-crud-query · API 67.0 · Profile: not-selected

soap.ts contains selected Partner lead conversion/assignment and Apex/Metadata operations; general Partner/Enterprise CRUD and query are not implemented.

Next acceptance case: Inventory WSDL operations independently; start with Partner create/query/queryMore/update/delete and session faults before claiming general SOAP data coverage.

Implementation paths: packages/runtime/src/soap.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

rest.sobject-record-endpoints: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Recover a metadata deployment after restart — Unfinished facet: uncompared; reference pending

metadata.async-recovery · API 67.0 · Profile: not-selected

Metadata deploy/poll/retrieve and native deployment are separate from REST data support; current poll owns durable pending deployment execution.

Next acceptance case: Create a deployment, restart the Worker before polling, then poll/cancel as owner and another principal; compare atomic schema/source and status history.

Implementation paths: packages/runtime/src/soap.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

metadata.deploy-status: partial; linked local report not-run (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Run selected workflows on other CLI/API versions — Unfinished facet: uncompared; reference pending

cli.other-versions · API 67.0 · Profile: not-selected

Recorded CLI recipes pin @salesforce/cli 2.152.14 and API67; API discovery of 68 is not evidence for all API68 or newer CLI behavior.

Next acceptance case: Select one CLI/plugin version and one API version explicitly, repeat login/describe/query/deploy/retrieve and preserve independent version-bound results.

Implementation paths: packages/runtime/src/index.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

cli.current-sf-cli-command-version: partial; linked local report passed (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Invoke authored Apex SOAP webservice methods — Unfinished facet: uncompared; reference pending

soap.apex-user-defined · API 67.0 · Profile: rust-only-current

Current Rust-only profile: predecessor TypeScript execution/coverage is retired. This workflow is explicitly unsupported or requires a new exact-source Rust comparison. Historical provider observations remain dated evidence, not current support.

Next acceptance case: Verify the current explicit fence, then implement and compare a bounded canonical Rust workflow before admitting this slice.

Implementation paths: packages/runtime/src/soap.ts. Local case IDs: None selected for this facet.

Selected local acceptance: Not run for this facet. Reference comparison for this facet: pending.

cli.sf-apex-run: partial; linked local report passed (0.7.25). Evidence IDs for this facet: None; parent evidence is cross-reference only.

Other interface boundaries

Layout API semantics and page assignments retain their own contracts. Native browser authoring/rendering, runtime execution and Salesforce interoperability require separate acceptance.