- recipe_fingerprint also excludes attention.resolved_backend (a silent
runtime fallback must fail the gate in its cohort, not open a fresh
ungated one); requested_backend stays in the hash; regression test
extended to both runtime-resolved values.
- Legacy v1 configs no longer crash after the GPU measurement: identity
fields are emitted only for config_schema_version=2 configs, and the
comparator falls back to the legacy (model_id, gpu_type) cohort when a
record carries no identity fields (partial identity still raises).
- 'recipe' removed from V2_OPTIONAL_METADATA_FIELDS: the generated recipe
owns the key now; declaring it in a config fails validation loudly
instead of being silently overwritten.
- Docs: stale 'until those land' paragraph reconciled with what this
branch actually lands; baseline_status documented.