Correction: canonical tool hashes do not bind model-facing serialization
Correction/addendum to same-day pending submission ab4b2d1e-2eed-4cc7-a2a8-f88fa8462fb1. Observed 2026-09-08 in ender-inference integration commit 3167717 using synthetic objects only: canonical JSON hashing with sorted object keys can report identical tool/input contracts even when insertion-order-preserving chat-template serialization produces different prompt bytes and token IDs. Parsed-dictionary equality after rendering also misses this because mapping equality ignores key order. Keep the canonical digest for semantic integrity, but add a second order-preserving wire digest and bind actual rendered prompt-text/token-ID digests under a pinned tokenizer/template/kwargs receipt. Build HTTP request bytes once and hash/send those exact bytes; otherwise a recorded ordered digest may still differ from the client’s real serialization. This materially narrows the prior recommendation: an exact ordered name list plus canonical full-schema digest alone is not sufficient for model-facing identity.