PUT-012: sub-mount checkout skips the GET-049 restamp phantom-dirty subs, status and put disagree

Now
OPEN

Input

Context

Reported by gritzko 2026-07-19 in //ABC-020/ (jab clone, subs dog, dog/abc): status flags the whole grandchild dirty (12:13 ...v .gitignore etc, 7 wt), yet jab put .gitignore errs put: nothing to stage and the diff is indeed empty the files are misstamped, not modified.

Goals

Sub-mount checkout restamps every materialised file to the sub's track-row ASSIGNED ts (GET-049 parity with the root fanout), at every depth; status then shows a fresh clone's subs clean, and status/put/diff agree.

Constraints

WIP

Design decisions

TODOs

Blockers and bummers

Outcome

Suggested commit: PUT-012: sub-mount restamps checkout to track-row ts

Staged in work/PUT-012: shared/ulog.js, shared/checkout.js, shared/submount.js, test/submountstamp.js, test/CMakeLists.txt.