# CRM AppRelease `0.6.0`

This immutable CRM AppRelease adds the record-view read capability required by
the D2A record-view ownership slice. It preserves the query, recycle-bin read,
related-list-count, and record-access capabilities from `0.5.0`.

- App: `io.nexuscrm.sfcrm`
- semantic version: `0.6.0`
- AppReleaseDigest:
  `sha256:77ee8d9d017cc33b91e9b6c47e6e5b0f8c8269a9394665eec72edaedae941656`
- MetadataBundleDigest:
  `sha256:3816548f530ea9107d954d05e0b7195de9036239163d6fb33764fc034b2b8bd8`
- component count: `61`, exactly one per component in the source
  `salesforce-crm-standard/pack.json`
- source input revision: `afe46a56f671565c522e6cc14283de3de9706e19`

The AppManifest declares exactly five L1 service-handler capabilities:

- `io.nexuscrm.sfcrm.query.v1` requires `runtime.records.query.v1`;
- `io.nexuscrm.sfcrm.recycle-bin-read.v1` requires
  `runtime.records.list-recycle-bin.v1`;
- `io.nexuscrm.sfcrm.related-list-counts.v1` requires
  `runtime.records.related-counts.v1`;
- `io.nexuscrm.sfcrm.ui.record-access.v1` requires
  `runtime.records.evaluate-access.v1`;
- `io.nexuscrm.sfcrm.ui.record-view-read.v1` requires
  `runtime.records.read-record-view.v1`.

`app-package.json` is canonical and reproducible from the exact source inputs.
`publisher-attestation.json` binds the release tuple and exact source
provenance. `publisher-public-key.json` is verification material, not publisher
trust; Catalog's independent trust authority must approve that exact key before
import. The AppRelease contains no service image identity. L2 binds the
independently published AppService image in its immutable BOM.

This artifact does not select an active AppInstallation, publish an AppService
image, switch Gateway traffic, or create a fallback. Those ownership changes
remain explicit L2 activation gates.

Rebuild and verify:

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