fix(adoption): the baseline backfill cures hydration-law drift — existing brains reach the crash-safe default with zero operator steps
The last rung of the default-flip ruling: with the sentinel exemption in, real production-shaped brains still refused adoption over state-differs mismatches the backfill could not cure — rows written before the hydration law carry denormalized wrapper fields that disagree with their own metadata leg, and the previous as-is identity re-commit PRESERVED that drift, so the oracle re-flagged it every pass and the flip never happened. In practice the crash-safe default reached zero existing brains: the exact outcome the hold ruling forbade. The cure: the backfill now rewrites canonical in the LAW SHAPE — exactly the wrapper the log's reconstruction produces (denormalized enumeration fields derived from the metadata leg, which is their authority under the field-addressing law; the embedding floats ride through byte-identical; adjacency residue keeps its own rebuild path). The oracle then verifies the rewrite before the flip — the same safety, no operator chore. Log-ahead divergence classes (a log the witness denies) still refuse loudly, exactly as before. Classification note for the record: the flagged uuid-v7 rows postdate the fact log's introduction, so they classify as state-differs (in-log, drift-shaped) rather than pre-log — both classes ride the same backfill. Pins: a manufactured depot-shape drifted wrapper adopts green with floats preserved and metadata intact; log-ahead still refuses typed. Gates: unit 2065/2065 · integration 832 · conformance 31/31.
This commit is contained in:
parent
2abe8b3806
commit
25f0dd964e
3 changed files with 134 additions and 19 deletions
|
|
@ -423,7 +423,7 @@ function reconstructTimestamp(value: unknown): number | undefined {
|
|||
* wrapper digests byte-equal to canonical. A drifted denormalized copy
|
||||
* surfaces as an oracle `state-differs` — named, never silently absorbed.
|
||||
*/
|
||||
function reconstructNounWrapper(
|
||||
export function reconstructNounWrapper(
|
||||
id: string,
|
||||
metadataLeg: unknown,
|
||||
floats: number[]
|
||||
|
|
|
|||
Reference in a new issue