- ensure-groups-adapter.py: descriptor revocation_scopes=('parent-session',);
build() requires revoke_session and calls it in a finally block on every
run/rollback; OwnerResult now carries revoked=True and the session
revocation evidence (previously revoked was set to the rollback flag).
- handover-adapter.py: same revocation fix; descriptor(owner) takes the owner
as a parameter (type 1.2 '{consumer_owner_repo}') instead of hard-coded
'apps'; build() derives it from admitted.owner and a 1.2 case must name
the same consumer_owner_repo.
- Tests: kernel Descriptor.decode accepts both descriptors; revocation runs
even on failed attempts; missing revocation evidence refuses before
publication; 1.2 owner binding.
- descriptor-composition-1.2.candidate.json regenerated (same checker digest,
consumer_owner_repo=railiance-apps): only mint-secret remains refused.
- test_compose_1_2_descriptors.py pins that finding set and checks the
committed artifact equals regeneration.
Outside the assigned file list (needed for the composer to pass the owner):
compose-1.2-descriptors.py passes consumer_owner to hand-over as it does
for deliver-consumer-secret, and drops the stale proposed owner 'apps'.
Not an admission, owner review or pin; mint-secret actor left for owner decision.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 903097@bnt-lap001
Assistant-Session: aa320c8f-c3fa-46e7-8541-0b58e1e45d23