# CRM AppRelease `0.20.0`

This immutable CRM AppRelease preserves the complete `0.19.0` metadata,
Integration command registrations, and bounded Flow Actions handler. It adds
the sfcrm-owned saved Report/Dashboard read handler and declares its existing
private Runtime dependencies plus the already-required immutable AppMetadata
view:

```text
ReportRead + AppMetadataViewV2 + effective permissions + Query
```

The handler serves saved report list/read/describe/execute and dashboard
list/read/refresh/status through the one private Platform target. Runtime owns
effective authorization, dashboard/report record reads, immutable report
selection, report execution, and revision-bound field metadata. sfcrm owns the
Salesforce v63 routes and `factMap` projection. Unsupported CRUD, unsaved
execution, metadata overrides, and date-filter overrides fail closed without a
legacy or process-local fallback.

- App: `io.nexuscrm.sfcrm`
- semantic version: `0.20.0`
- AppReleaseDigest:
  `sha256:f840f21cfb18d0bc301e2c27c51bdb36267a06a4661c6ed44ed0c835608e7789`
- MetadataBundleDigest:
  `sha256:7a8313c7d5640ffe88c09a9ef37b5b3b556bb34bd76459d74ae052197626f8e1`
- component count: `70` (unchanged)
- sfcrm provided capability count: `13`
- source input revision: `18b76a303bd7ae69711a6e9edea9e6aa943251f5`
- source tree digest:
  `sha256:ae9a8a272bcd0702bfb26af9de0af1281c6bf27aea4dab76af05724aa118fe7b`
- contract module: `v0.2.21`

This release adds no RPC, Runtime engine, serving binary, Gateway, metadata
authority, process-local fallback, deployment configuration, or production
activation. Production routing, metadata, Flow state, BOM, and deployed
services remain unchanged.

`app-package.json` is canonical and reproducible from the exact source input.
`publisher-attestation.json` binds that package to its source revision.
`publisher-public-key.json` is verification material only; it does not create
publisher trust.

Rebuild and verify:

```bash
git worktree add /tmp/nexuscrm-app-packs-0.20.0-source \
  18b76a303bd7ae69711a6e9edea9e6aa943251f5
cd tools/crm-app-release
GOWORK=off go test ./... -count=1
GOWORK=off go run . build \
  --pack-root /tmp/nexuscrm-app-packs-0.20.0-source/salesforce-crm-standard \
  --output /tmp/crm-app-package-0.20.0.json
cmp /tmp/crm-app-package-0.20.0.json \
  ../../releases/io.nexuscrm.sfcrm/0.20.0/app-package.json
GOWORK=off go run . verify \
  --package ../../releases/io.nexuscrm.sfcrm/0.20.0/app-package.json \
  --attestation ../../releases/io.nexuscrm.sfcrm/0.20.0/publisher-attestation.json \
  --public-key ../../releases/io.nexuscrm.sfcrm/0.20.0/publisher-public-key.json
```
