Non-throwing wrapper over assertCurrentGroupAccountIdentityProofProfile
(D-01a, D-11): returns { kind: "supported" } when extensions classify as
the current profile, or { kind: "unsupported", proofReason } otherwise —
proofReason is the caught AccountIdentityProofError.reason
(legacy-group, mixed-profile, or missing-requirement), or
"invalid-dictionary" for any other thrown value.
Never throws. Two call sites rely on that: validateCommitLegality's D-01a
profile check (the sibling commit-legality module), which must stay
non-throwing so fork-recovery and tree-fed convergence (neither of which
wrap the call) can map a violation instead of aborting, and the D-11
load-time classifier that marks a stored group's profile without breaking
Promise.all-batched loading of every other group.
Non-throwing wrapper over assertCurrentGroupAccountIdentityProofProfile (D-01a, D-11): returns
{ kind: "supported" }whenextensionsclassify as the current profile, or{ kind: "unsupported", proofReason }otherwise —proofReasonis the caughtAccountIdentityProofError.reason(legacy-group,mixed-profile, ormissing-requirement), or"invalid-dictionary"for any other thrown value.Never throws. Two call sites rely on that:
validateCommitLegality's D-01a profile check (the sibling commit-legality module), which must stay non-throwing so fork-recovery and tree-fed convergence (neither of which wrap the call) can map a violation instead of aborting, and the D-11 load-time classifier that marks a stored group's profile without breakingPromise.all-batched loading of every other group.