# CRM AppRelease `0.24.0`

This immutable CRM AppRelease preserves the complete `0.23.0` Salesforce
route surface while restoring one coarse sfcrm-owned action handler boundary.
Manual Flow Actions and Catalog-bound Standard Actions remain installed in the
same sfcrm AppService composition and continue to use the existing neutral
Runtime ports.

`0.23.0` published those route families as two App handler capabilities with
the same three Runtime dependencies. Catalog publishes every handler binding
atomically and Runtime admits each selected neutral capability once, so the 16
handlers had a maximum complete selection of only 15. Exact D3 Catalog
composition therefore failed closed before any request could be served.

`0.24.0` retains `io.nexuscrm.sfcrm.flow-actions.v1` as the single action
handler capability and adds a publication-time complete-selection gate. It
does not remove either Salesforce route family, weaken Catalog admission, or
add an RPC, Runtime engine, serving binary, Gateway, metadata authority, or
fallback.

- App: `io.nexuscrm.sfcrm`
- semantic version: `0.24.0`
- AppReleaseDigest:
  `sha256:1acd6aac901fbcd6bd9e56c137d7bd63f531e5af2f15679352f13b45b0df6aa1`
- MetadataBundleDigest:
  `sha256:87afb74b6c384286a776f1ab4be50ccb9f11f1e0a8b8b24b032b41d9c8f2ba96`
- component count: `70` (unchanged)
- sfcrm provided capability count: `15`
- source input revision: `a6e44139ed8a17be87aa76a0b6842dbfeea14cfb`
- source tree digest:
  `sha256:f9299fff7dc1430cdc6947091eed9d3df2b025c3ead1c8ecdb3ac8cc57cb2ead`
- contract module: `v0.2.26`
- wire module: `wire-go/v0.1.24`

This release changes no production routing, active metadata, Flow state, BOM,
or deployed service. Historical `0.23.0` remains immutable and reproducible.

`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.24.0-source \
  a6e44139ed8a17be87aa76a0b6842dbfeea14cfb
cd tools/crm-app-release
GOWORK=off go test ./... -count=1
GOWORK=off go run . build \
  --pack-root /tmp/nexuscrm-app-packs-0.24.0-source/salesforce-crm-standard \
  --output /tmp/crm-app-package-0.24.0.json
cmp /tmp/crm-app-package-0.24.0.json \
  ../../releases/io.nexuscrm.sfcrm/0.24.0/app-package.json
GOWORK=off go run . verify \
  --package ../../releases/io.nexuscrm.sfcrm/0.24.0/app-package.json \
  --attestation ../../releases/io.nexuscrm.sfcrm/0.24.0/publisher-attestation.json \
  --public-key ../../releases/io.nexuscrm.sfcrm/0.24.0/publisher-public-key.json
```
