# CRM AppRelease `0.8.0`

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

- App: `io.nexuscrm.sfcrm`
- semantic version: `0.8.0`
- AppReleaseDigest:
  `sha256:20af8363af6d23a41aeefedadc36068fe0c0326950b68a9ea8b48df67afd0224`
- MetadataBundleDigest:
  `sha256:7b4d07dd9d5ea5e3586c13c20039f952dd2cec0b90ee8b158f9ed12174f85913`
- component count: `62`, exactly one per component in the source
  `salesforce-crm-standard/pack.json`
- source input revision: `ea997c576d2613ba7c109ea938d9582d99d77ed6`

The AppManifest declares exactly six L1 service-handler capabilities:

- `io.nexuscrm.sfcrm.query.v1` requires `runtime.records.query.v1`;
- `io.nexuscrm.sfcrm.record-mutation.v1` requires
  `runtime.records.mutate.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.8.0-source \
  ea997c576d2613ba7c109ea938d9582d99d77ed6
cd tools/crm-app-release
GOWORK=off go test ./... -count=1
GOWORK=off go run . build \
  --pack-root /tmp/nexuscrm-app-packs-0.8.0-source/salesforce-crm-standard \
  --output /tmp/crm-app-package-0.8.0.json
cmp /tmp/crm-app-package-0.8.0.json \
  ../../releases/io.nexuscrm.sfcrm/0.8.0/app-package.json
GOWORK=off go run . verify \
  --package ../../releases/io.nexuscrm.sfcrm/0.8.0/app-package.json \
  --attestation ../../releases/io.nexuscrm.sfcrm/0.8.0/publisher-attestation.json \
  --public-key ../../releases/io.nexuscrm.sfcrm/0.8.0/publisher-public-key.json
```
