Keep original case provenance while revalidating a fresh caller session
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s

Assistant: codex
Assistant-Model: gpt-6.1-sol
Assistant-Session: 01a14bfc-9643-7872-aa12-98326dcf25e7
This commit is contained in:
tegwick 2026-10-18 11:32:19 +02:00
parent b593c87983
commit 08c098e64a
4 changed files with 180 additions and 1 deletions

View file

@ -152,3 +152,41 @@ recovery can count. No actual original holder/verifier or native adapter is adde
NetKingdom's current registration adapter still has no reconciliation callback;
source tests do not authorize its post-restart undo, replay or a changed caller/
session/run-sheet migration. WARDEN-WP-0044-T03 remains a native acceptance gate.
## Current caller versus original session reference — 2026-10-18 source
`Executor.admit` now accepts the optional `original_session_reference` for an
exact existing original-run continuation. It is metadata, never current
authentication. The normal `session_evidence` is independently verified as the
current caller's principal/actor/lane proof, including after restart, and remains
the evidence rechecked immediately before every journal write/owner callback.
The optional reference preserves the original run-sheet digest rather than
replacing immutable provenance with the new login. Before admitting it, under
the existing journal lock, the kernel requires an existing matching step journal
and `Journal.original_intent` correspondence: the original running receipt,
attempt, owner/target/principal/actor/lane, all six pins and exact adapter source.
Missing/orphan/legacy context, a changed reference or caller and a stale current
session refuse. The reference must differ from the current evidence identifier;
the actual session owner must additionally establish distinct authenticated
token/session identity, not just two labels. No new original context is created,
no completed operation can replay, and uncertainty is not cleared by readmission.
Omitting this option retains the old admission/pin semantics. Supplying a fresh
session alone still creates a different run sheet and cannot reuse a previous
journal. No existing descriptor, Invocation, Pins or receipt schema changes.
The new source seam does not implement changed-source/catalog/caller migration
or loss of rollback result; those still require the existing owner reconciliation
and recovery evidence. It is not general session management or another issuer.
A source integration fixture runs the actual producer-owned KeyCape status CLI
over HTTPS, the actual Warden kernel and a separately compiled generated Go
consumer. It verifies revoked-parent refusal before writes, distinct inverse
authentication in another Python process, original journal pin retention,
no business replay, exact synthetic target restore and independent read-only
negative cleanup observation. Case/type/catalog/owner attestations and the
target are synthetic; this is not Forgejo/browser/native acceptance or a real
approval. KeyCape's proposed online profile remains unadmitted. The private
unsigned CLI observation is not portable execution authority; actual owner
custody and original grant ownership are still mandatory before an inactive
response can establish revocation. No native verifier or adapter is installed.