Prerequisite for Plan 4 Task 2c (GRN ADOPT). The current
layout_fingerprint_seed() only covers ISV slot names + indices;
param-tensor layout shifts (which GRN insertion will cause) pass
silently through checkpoint load.
Extends the seed string to include all 86 param-tensor positions
by canonical name. Any structural reshuffle (insert/delete/rename
a tensor) now triggers a different fingerprint and fail-fast at
checkpoint load.
Pragmatic scope (Option A): tensor names + positions, not sizes.
Sizes depend on runtime config (shared_h1, shared_h2, etc.) and
can't be embedded in a const fn. Size mismatches between checkpoint
and current binary are caught by safetensors deserialization
separately. Task 2c's GRN insertion is structural (new tensor
names at new positions) — Option A suffices.
This commit IS a checkpoint break: every existing checkpoint's
fingerprint matches the old seed and fails load. Behavior change
zero; cold-start smoke passes at baseline Sharpe range
(fold-2 best Sharpe = 96.65).
New fingerprint value: 0xa504d3c2f275b8af.
Pearl-aligned: complete fingerprint coverage for what it claims
to protect. Partial coverage was worse than no coverage because
it implied safety where there wasn't.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>