AsiBackbone 7.0.0 Release Readiness Record
Release candidate date: 2026-09-26
Release intent
7.0.0 is a major release for the AsiBackbone package family. It binds
acknowledgment responses to the actor that received the challenge, moves the DLP
failure-behavior and intent-risk enums away from permissive zero defaults,
renames the compatibility names that 6.0 retained, and renames five Entity
Framework Core columns and one JSON property name to match. The final candidate
also binds capability grants to the expected subject and operation, hardens
unbound acknowledgment actors, authenticates typed artifacts against rebuilt
canonical payloads, and validates the optional NCAT adapter against pinned
versioned contract vectors.
This record is a pre-tag checklist. Do not create v7.0.0 or publish packages
until every required validation is complete on the final release-candidate
commit.
Compatibility boundary
- Package IDs and the
net10.0target remain unchanged. - The
HandshakesandCapabilityTokensnamespaces inAsiBackbone.Core,AsiBackbone.AspNetCore, andAsiBackbone.Storage.InMemorybecomeAcknowledgmentsandCapabilityGrants. - The retained
AuditResidue*,LiabilityHandshake*,Handshake*, andCapabilityToken*types and members are renamed to the decision receipt, acknowledgment, and capability grant vocabulary, with no[Obsolete]forwarding aliases. - Signed and telemetry contracts keep their
6.xvalues: canonical artifact tags, signed payload bytes, OpenTelemetry event and attribute names, EF Core table names, reason codes, and diagnostic IDs. - JSON produced by serializing the renamed types uses
decisionReceiptIdwhere6.xusedauditResidueId. - Five EF Core columns are renamed, with their dependent indexes and foreign keys. Hosts must add a migration.
- The
GovernanceOutboxDrainandGovernanceOutboxDrainHostedServiceconstructors are replaced by source-compatible signatures with an optionalTimeProviderparameter. - Package version advances to
7.0.0;AssemblyVersionandFileVersionadvance to7.0.0.0. - Acknowledgment responses must match the challenged actor's ID and type.
DlpFailureBehaviorandDlpIntentRiskLevelgainUnspecified = 0; every existing numeric value shifts by one and incomplete policy is rejected.- NuGet package author signing remains deferred under the current decision record.
Version and metadata checklist
- [x]
Directory.Build.propsresolves package version7.0.0. - [x]
AssemblyVersionandFileVersionare7.0.0.0. - [x]
CITATION.cffand.zenodo.jsonreport7.0.0, the release date, and the 7.0 major-release scope, including the renames and the schema change. - [x] Template fallback package references use
7.0.0. - [x] NuGet lock files reference
7.0.0for in-repository projects. - [x] Package validation compares
7.0.0with the5.1.0baseline so the full two-major compatibility surface remains checked. Reviewed 6.0 breaks retain their exact suppressions; intentional 7.0 enum-value changes and the 7.0 type, member, and namespace renames have exact suppressions. - [x] Public API baselines record the 7.0 enum values, new members, and renamed surface.
- [x]
CHANGELOG.md, release notes, and the upgrade guide describe the same change set and compatibility boundary. - [x] Before this release-preparation change, evergreen documentation identified
7.0.0as the prepared next release and6.0.0as the latest published stable release. - [x] This release-preparation pull request switches the publication state to
releasedwithlatestPublishedVersion7.0.0, and evergreen documentation identifies7.0.0as the current release, uses the 7.0 names, and preserves prior records as historical evidence.
Required validation before tag
- [x] Version consistency passes for
7.0.0andv7.0.0. - [x] Locked restore succeeds using the repository SDK and package configuration.
- [x] Debug and Release solution builds succeed with warnings treated as errors.
- [x]
dotnet format --verify-no-changessucceeds. - [x] All tests pass, including actor-binding and DLP-default regression tests.
- [x] Public API baseline and package-validation checks pass.
- [x] XML-documentation inventory and enforcement checks pass under the repository's configured inventory posture.
- [x] Documentation continuity, links, and release-claim validation pass.
- [x] DocFX site generation succeeds with no release-blocking warnings.
- [x] Package creation succeeds for the complete publishable package set.
- [x] Package IDs, versions, dependencies, repository metadata, symbols, and README content are correct.
- [x] Package SBOM generation succeeds for all 11 packages and produces the SBOM manifest.
- [x] Template, external-consumer, and stable-package smoke tests succeed.
- [x] CodeQL and dependency review report no blocking findings.
- [x] Required actionlint/Zizmor, workflow-security, OWASP Dependency-Check, and related repository checks have no unexplained blocking findings.
- [x] No package-author-signing claim is made for unsigned project packages.
NCAT contract evidence
- [x] The vendored audit-completion vectors match the pinned immutable NCAT
commit
8aec7d32438907e73b09f283d4f61221a6b0cedcbyte for byte. - [x]
scripts/Test-NcatContractVectorPin.ps1reports no drift from NCATmain. - [x] The same script reports no drift from the immutable NCAT 2.11.0
release-candidate commit
2f16c2aedf0689fce78f756e614d0278fb0c8597. - [x] The reviewed commit pin remains the release evidence because it identifies
the exact contract-producing commit and the NCAT stable tag does not exist
during preparation. Repinning to
v2.11.0is required only if publication changes the vector bytes; that condition is release-blocking.
Unchecked items are publication gates. They remain unchecked until the final release-candidate commit has the corresponding local or CI evidence. Items that had evidence before the legacy-name rename were reset because the rename changed the source, documentation, API surface, and packages they covered.
Rename and schema checks
- [x] The reviewed EF Core schema diff from the rename change differs from the
6.xschema only by the five documented column renames and their dependent indexes and foreign keys. - [x] The host-owned migration path was reviewed against populated persistence
integration coverage; the reference
Upoperations use renames rather than destructive drop-and-add operations, and the 7.0 model reads the affected rows through the renamed properties. - [x] The reference migration's
Downoperations symmetrically restore the6.xcolumn, index, and foreign-key names. - [x] Canonical payload and signing tests confirm that artifacts signed by
6.xverify under 7.0 and that artifact tags are unchanged. - [x] Tests assert that
DecisionReceipt,AuditLedgerRecord, andGovernanceEmissionEnvelopeserializedecisionReceiptId, and that canonical signed payloads are unaffected by the JSON key change. - [x] The upgrade guide documents the JSON key change and the effect of
deserializing stored
6.xJSON. - [x] OpenTelemetry event and attribute names are unchanged.
- [x] No old type or namespace name remains in a string literal that refers to a CLR type, including analyzer metadata-name lookups, reflection, and test assertions.
- [x] Samples and templates compile against the renamed surface.
Major-release checks
Before publication, confirm that:
- the Upgrade from 6.x to 7.0 guide covers actor binding, every shifted enum value, persisted numeric data, configuration, the complete rename inventory, the EF Core migration, the JSON key change, and consumer rebuild requirements;
- the rename tables in the upgrade guide match the public API baseline diff
between
6.0.0and7.0.0; - first-party samples, templates, tests, and documentation use explicit DLP enum values where required;
- actor mismatch failures disclose one stable reason code without revealing whether the ID or actor type differed;
- the 6.0 public API naming record notes that its planned deprecations were completed as renames in 7.0; and
- consumers have a documented verification path for the new major boundary, including the EF Core migration.
Release sequence
- Complete every required validation above on the final candidate commit.
- In the release-preparation pull request, switch
eng/documentation-release-claims.jsonto"state": "released"with"latestPublishedVersion": "7.0.0", replace the prepared-release wording that the documentation release-claim validator reports, and run./scripts/Validate-DocumentationReleaseClaims.ps1 -ReleaseTag v7.0.0. - Merge the release-preparation pull request after required checks pass.
- Confirm
maincontains the final7.0.0metadata and documentation. - Create the annotated tag
v7.0.0from the validated commit. - Run the stable release workflow against that tag.
- Confirm all expected NuGet and symbol packages are published.
- Confirm build packages, SBOMs, manifests, and release notes are attached to the GitHub release.
- Verify package/SBOM attestations by subject digest.
- Confirm documentation deployment succeeds.
- Run post-publication Source Link validation:
./scripts/Validate-Source-Link-commit-metadata.ps1 -Version 7.0.0
- Verify package repository commit metadata resolves to the tagged source commit.
- Advance the package-validation baseline only after
7.0.0is published. - Record any release exception explicitly rather than weakening a gate.