After the JS modules land, decide whether any hot path warrants a thin libdog/abc native leaf. Part of JS-027. Method: Issues.
be status in pure JS over existing bindings; some paths may betoo slow/awkward. Concrete gaps surfaced during JS-030..033 (all worked around in JS, parity still byte-identical — these are convenience/perf leaves, libdog/abc):
io.stat returns {size,mode,kind} only — NO mtime; classify spawned
stat -c '%Y %n' (chunked ≤200 paths — a 2955-path argv overflowed spawnFds scratch). A thin mtime field on the stat leaf removes the spawn.
io.stat follows symlinks (FILEStat not FILELStat) + no io.readlink — adangling symlink throws; symlink content unconfirmable. Want lstat + readlink leaves.
pack.scan/pack.resolve (PIDXScan/PACKResolveOfs) fail on REF_DELTA — finefor keeper (OFS-only per PackLog invariant), but foreign imports need a sha-base resolver.
io.readdir hidden:false drops dotfiles — needed hidden:true to scan a
tracked .gitignore (only .git/.be should be meta-filtered).
unk where native shows new
(SNIFFAtKnown new branch) — orthogonal; only bites be-redirect files inside a recursed sub.
has(ts)/row(i) index, git/IGNO matcher, HUNKu8sFeedRow(ULOG→HUNK serialize) — currently done in pure JS, would be tidier as libdog leaves.
dog/
or abc/ leaf (never a dog). File a focused ticket per accepted leaf.
be status timing.