v0.7.31
Hotfix: the Hunyuan preserved-thinking reasoning carrier no longer binds the catalog GENERATION (alias_revision_id + catalog_sha256) into its AEAD key and claims (schema 2->3). Those digests change on every catalog write and differ across per-worker catalog generations, so a genuine gateway-issued carrier failed authentication on the very next turn — the deterministic pre-dispatch 400 on multi-turn tool loops. The carrier still binds full routing/credential/tenant identity (a real repoint still fails closed); an operator-only WARNING at the continuation seams names the rejection stage. Python-only; exp-gateway-native unchanged at 0.3.29. (#772)