GET-050: get must stamp carried/woven files by PATCH's band rules stale put stamps false-clean them

Now
DONE

RULING (gritzko, chat 2026-07-19): GET uses the SAME stamping rules PATCH uses for merged files (the DIS-057 band) the follow-up GET-049's constraint explicitly anticipated ("route merge outputs to the DIS-057-style band"). Today a bare get that carries an uncommitted edit leaves the file wearing its OLD put row's restamp; that ts stays in the wtlog stamp-set, so the STATUS-011 has(mtime) fast path validates the file clean against a base that moved dirt that status and bare diff HIDE, and a post would silently not commit.

Input

Context

Incident 2026-07-19, work/STATUS-016: wtlog put shared/wtlog.js (row 26719BQw09, BE-011 restamp mtime 11:26:59.009), then a user bare get ///be/#27d03a26 (row 26719BkGEg) carried the edit per GET-048 §4.

Goals

After ANY get, no file can read clean while differing from the new base: carried/woven outputs are stamped into a DIS-057-style band under the get row's ceiling and classify buckets them by offset.

Constraints

WIP

Design decisions

TODOs

Blockers and bummers

Outcome

LANDED 64525364 (2026-07-19 12:42, "GET-050: get must follow same rules for merged files as patch"); work/GET-050 clean at tip. The DECISION-side hole (stamp false-clean at get's pending check on a base-moved file clean-overwrite discard) is split out as GET-052.

Original staging note (historical):

Changed (staged):

Evidence: manual repro RED (post-get status/bare diff EMPTY for f.txt, only targeted diff f.txt showed it) GREEN (...v f.txt, bare diff lists it). Suites green: test/get/* (35 pass / 6 env-skip, GET-049 stamp + weave/conflict incl.), test/status/* (12), test/patch/* (26, stampband incl.), test/work/view, statusfast.js, patchband.js. Pre-existing unrelated red: test/work/getctx (pty frame goldens identical FAIL on pristine baseline).

Suggested commit message:

GET-050: get band-restamps carried files so stale put stamps can't false-clean