源自 PR #1613(#796)内置 review。
F3(Medium→Hard 路径):CACHING-SESSION-REVOKE-AFTERCOMMIT-DEL-01 当前 Medium(archtest type-aware callee 解析 + AST 位置包含判断「cache 写仅许在 RegisterAfterCommit hook 内」;有 helper-one-level / TypesInfo==nil 盲区)。Hard-化路径 = sealed construction,使「Revoke 体内 out-of-hook 的 cache 写」在 type system 层不可表达(如 CachingSessionStore 的 cache 字段只暴露一个「仅可在 after-commit hook 内调用」的 sealed handle)。
D2(Revoke caller-in-tx guard):CachingSessionStore.Revoke 经 RegisterAfterCommit 要求 ambient RunInTx,否则 panic(kernel-sanctioned programmer-error,loud 非 silent)。当前唯一生产 caller = sessionlogout(in-tx)。新增 archtest 验证所有 session.Store.Revoke 生产 caller 在 RunInTx closure 内,把 runtime panic 提前到 CI(Medium,caller-allowlist 或 data-flow)。
触发:CachingSessionStore.Revoke 出现第二个生产 caller 时优先级升 P2。
源自 PR #1613(#796)内置 review。
F3(Medium→Hard 路径):
CACHING-SESSION-REVOKE-AFTERCOMMIT-DEL-01当前 Medium(archtest type-aware callee 解析 + AST 位置包含判断「cache 写仅许在 RegisterAfterCommit hook 内」;有 helper-one-level / TypesInfo==nil 盲区)。Hard-化路径 = sealed construction,使「Revoke 体内 out-of-hook 的 cache 写」在 type system 层不可表达(如 CachingSessionStore 的 cache 字段只暴露一个「仅可在 after-commit hook 内调用」的 sealed handle)。D2(Revoke caller-in-tx guard):
CachingSessionStore.Revoke经 RegisterAfterCommit 要求 ambient RunInTx,否则 panic(kernel-sanctioned programmer-error,loud 非 silent)。当前唯一生产 caller = sessionlogout(in-tx)。新增 archtest 验证所有session.Store.Revoke生产 caller 在 RunInTx closure 内,把 runtime panic 提前到 CI(Medium,caller-allowlist 或 data-flow)。触发:CachingSessionStore.Revoke 出现第二个生产 caller 时优先级升 P2。