AsiBackbone 6.0.0 Release Notes
Release date: 2026-09-19
Summary
6.0.0 is a major release for the AsiBackbone package family. It completes the
planned 6.0 public API: plain-language semantic type and member names, removal
of the members whose 5.x deprecation windows completed, and security-semantics
corrections that could only ship at a major boundary.
Package IDs, public namespaces, and the net10.0 target remain unchanged.
AssemblyVersion advances to 6.0.0.0; package and file versions advance to
6.0.0 and 6.0.0.0 respectively.
Consumers moving from 5.x must follow the
Upgrade from 5.x to 6.0 guide.
Breaking changes
Public API names
- 103 of 232 public type entries are renamed to plain-language semantic names.
Every entry has a recorded retain or rename decision in the
6.0 Public API Naming Convention. For example,
AuditResidueis nowDecisionReceipt,IAsiBackboneConstraint<AsiBackboneConstraintEvaluationContext>is nowIGovernanceConstraint<GovernanceEvaluationContext>, andDefaultAsiBackbonePolicyEvaluator<TContext>is nowDefaultGovernancePolicyEvaluator<TContext>. - Helper members that operate on decision receipts use the same vocabulary, for
example
CanonicalPayloadBuilder.ForDecisionReceiptandGovernanceArtifactSigner.SignDecisionReceiptAsync. - The request-correlation extension container is now
GovernanceHttpRequestCorrelationDecisionReceiptExtensions, andDecisionReceiptSinkContractusesCreateDecisionReceiptSinkandVerifyDecisionReceiptSinkAcceptsValidReceiptAsync. - Public decision-receipt parameters on the renamed canonicalization, signing,
and contract helpers use
receiptinstead ofresidue; named-argument callers must update accordingly. RequireGovernancePolicyAttributeis renamed toGovernancePolicyAttribute. It records a policy marker and never required or enforced the policy.- Documentation and diagnostics use the 6.0 Product Terminology.
Removed obsolete members
- The five partial-argument policy-evaluator constructors deprecated under
ASIB900in5.2.0are removed. UseDefaultGovernancePolicyEvaluator.CreateBuilder<TContext>()or the all-dependencies constructor. - The two obsolete
RequireGovernancePolicyroute-builder extensions are removed. UseMarkGovernancePolicy.
Signature verification
- Pin mismatches deny by default. A
RequiredProvider,ExpectedPolicyVersion, orExpectedPolicyHashmismatch reports the newSignatureVerificationCategory.UntrustedSigningContext, which defaults toDeny. Previously a wrong provider deferred and a wrong policy context escalated. CanonicalizationMismatchandMissingSignaturedefault toDeny. Hosts can opt a lower-assurance path back intoRequireAcknowledgmentforMissingSignaturethroughVerificationPolicyOptions.Create.- Providers sign and verify a versioned signature input instead of the
canonical hash text.
GovernanceSignatureInput.CreateV1binds the canonical descriptors, hash algorithm, hash value, and thepolicy_versionandpolicy_hashsigning metadata, so a signed artifact can no longer be relabeled with a different policy context. HostIManagedKeySigningClientandIGovernanceSignatureVerificationServiceimplementations must sign and verify theSignatureInputbytes. - Artifacts signed by
5.xproviders fail version 1 verification unless the verification context opts in throughVerificationPolicyContext.WithLegacySignatureInputAllowed(). A signature accepted that way cannot satisfy a policy pin.
Added
SignatureVerificationCategory.UntrustedSigningContext.GovernanceSignatureInput, withCreateV1andCreateLegacy.SignatureInputonSigningRequest,SignatureVerificationRequest, andManagedKeySignRequest.VerificationPolicyContext.WithLegacySignatureInputAllowed()andAllowLegacySignatureInput.CapabilityGrantUseResult.RetentionElapsed.- Issuer-scoped
StopGrant(issuer, grantId)andCancelGrant(issuer, grantId)onInMemoryCapabilityGrantUseStore.
Fixed
InMemoryCapabilityGrantUseStoreno longer permits replay of an expired grant when a validator'sAllowedClockSkewexceeds the store'sEvictionGracePeriod. A grant past the retention horizon, measured from the latest observed use time, is refused withcapability.use-retention-elapsed.- Stop and cancel state in the in-memory use store can be scoped to one issuer, consistent with issuer-scoped use counts.
- The local-development verifier rejects provider labels other than its own.
Maintenance updates
- Updated the Entity Framework Core and Microsoft Extensions packages to
10.0.12and Microsoft.NET.Test.Sdk to18.10.0. - Updated dotnet-stryker to
5.0.0and refreshed pinned GitHub Actions used by CodeQL and workflow-security checks.
Compatibility
- Source and binary breaking: public type and member renames, removed
obsolete members, and the
GovernancePolicyAttributerename. No compatibility aliases are provided. - Behavior breaking: verification default actions, the signature-input wire format, and the in-memory use-store retention horizon.
- Unchanged: package IDs, public namespaces, the
net10.0target, DI registration method names, JSON keys, schema versions, canonical artifact tags, canonical payload bytes, diagnostic IDs, and EF table and column names. A type rename alone does not require a data migration. - Hosts that persist
SignatureVerificationCategoryas an integer must accept the new value12. - The EF Core audit ledger store does not persist the signing metadata dictionary, so a ledger record signed with policy metadata does not re-verify after an EF Core round trip. See the migration guide.
- NuGet package author signing remains intentionally deferred.
Release evidence and package signing
The stable release workflow should retain the attested build packages, matching
SPDX SBOMs, sbom-manifest.json, release-evidence-manifest.json, and a copy of
these release notes as durable GitHub release assets.
NuGet.org repository-signs packages during ingestion. That repository signature is a separate trust signal from GitHub build-package attestations and does not turn the project into an author-signed package publisher.
The current author-signing decision remains documented in the NuGet Package Signing Decision Record.
Validation
The final release candidate should pass:
- version consistency for
6.0.0andv6.0.0; - locked restore and Debug/Release solution builds;
- formatting and warning-as-error checks;
- the complete test suite;
- public API baseline and package-validation checks, with the intentional 6.0 breaks recorded as exact exceptions;
- XML-documentation validation;
- DocFX, documentation-link, continuity, and release-claim validation;
- package creation, NuGet metadata validation, and package SBOM generation;
- template, external-consumer, and stable-package smoke tests; and
- required security, dependency, workflow-security, and supply-chain checks.
After publication, validate Source Link repository commit metadata with:
./scripts/Validate-Source-Link-commit-metadata.ps1 -Version 6.0.0
See the 6.0.0 Consumer Verification Guide and 6.0.0 Release Readiness Record.