GET-051: cheap pre-discard guard in every tree update size-check a file before taking theirs/ours over it

Now
OPEN
Sev
HIGH

Input

Context

Ordered by gritzko 2026-07-19 after the STATUS-008 data loss: classify false-cleaned dirty files, so today's bare get in //STATUS-008-f21 took the base version of core/loop.js and silently discarded an uncommitted edit (blob in no store, unrecoverable). BOTH lost/spared files differed from the baseline IN SIZE (29376 vs 29343 B; 19078 vs 16770 B) a size compare alone would have refused the discard.

Goals

Every tree-update write path (get checkout/weave, post, any theirs/ours decision that discards on-disk bytes) double-checks, immediately before overwriting or discarding a file it believes clean, that the on-disk file actually matches the presumed baseline blob by SIZE at minimum.

Constraints

WIP

Design decisions

TODOs

Blockers and bummers

Outcome