# CRM AppRelease `0.31.0`

This immutable CRM AppRelease extends the activity row-visibility contract to
both Salesforce-compatible polymorphic relationship slots: `WhatId` and
`WhoId`. Source-row visibility remains additive. Historical releases remain
unchanged.

- App: `io.nexuscrm.sfcrm`
- semantic version: `0.31.0`
- AppReleaseDigest:
  `sha256:739ee4c8111fccb4af65d6d795391e4b3d0468671aabc9672943f868483a5fa9`
- MetadataBundleDigest:
  `sha256:a17220b0d225bc48a60c9d9eb5db7ad90f59f5e6018d4a7b91346d390861cd39`
- component count: `71`
- sfcrm provided capability count: `16`
- source input revision: `9607b9a2d47852ea335bf63de92b5c0ff5431b13`
- contract module:
  `v0.2.36-0.20260809030953-660482c43fc6`

The release changes CRM metadata only. It adds no handler, Runtime protocol,
engine capability, or deployment dependency beyond the closure already
published by `0.30.0`.

Rebuild and verify:

```bash
mkdir -p ~/taskfiles/issue-5020-l1-release
git worktree add ~/taskfiles/issue-5020-l1-release/source \
  9607b9a2d47852ea335bf63de92b5c0ff5431b13
cd tools/crm-app-release
GOWORK=off go run . build \
  --pack-root ~/taskfiles/issue-5020-l1-release/source/salesforce-crm-standard \
  --output ~/taskfiles/issue-5020-l1-release/crm-app-package-0.31.0.json
cmp ~/taskfiles/issue-5020-l1-release/crm-app-package-0.31.0.json \
  ../../releases/io.nexuscrm.sfcrm/0.31.0/app-package.json
GOWORK=off go run . verify \
  --package ../../releases/io.nexuscrm.sfcrm/0.31.0/app-package.json \
  --attestation ../../releases/io.nexuscrm.sfcrm/0.31.0/publisher-attestation.json \
  --public-key ../../releases/io.nexuscrm.sfcrm/0.31.0/publisher-public-key.json
```
