PUT-010 DONT: sub-crossing multi-path put is O() prep + wtlog rewrite PER ARG; batch repo-wise

Now
DONT
Sev
HIGH

jab put html/todo/*/*.html (733 sub-crossing args, journal root authority) took 10s; the identical files staged as FLAT args in a scratch clone take 0.18s (55x). PUT-007 hoisted the engine prep + made ONE wtlog write per batch but only for flat args: stageInSub (be/verbs/put/put.js:513) still runs the whole cycle per arg. Fix = the same PUT-007 treatment, repo-wise: group args by their resolved repo (parent or sub), prep ONE engine and commit ONE wtlog write per repo.

Input

Context

Incident 2026-07-17, :put html/todo/*/*.html from the journal tree, 10s wall-clock, 13ms/arg. Per sub-crossing arg, stageInSub does:

Goals

733 sub-crossing puts cost ~1 flat batch (sub-linear in args): one stage.prep, one store.open, one wtlog append per DISTINCT repo touched by the arg batch.

Constraints

WIP

Design decisions

TODOs

Blockers and bummers

Outcome