git.delta.encode — git delta producer over dog/git/DELTExpose DELTEncode as git.delta.encode(base, target, out), the twin of the
existing git.delta.apply. The missing primitive for delta-compressing objects
in a pure-JS git-wire client (thin packs, push deltas). Method: Issues.
git.delta.apply (JS-024) reconstructs a target from base+delta, but JS
cannot PRODUCE a delta — dog/git/DELT.h::DELTEncode (libdog, already
included by js/pack.hpp) does, and is unbound.git.delta.encode(base, target, out) -> n — append the delta instruction
stream to out (Buf IDLE), advance fed, return n.DELTEncode (libdog). No new abc, NO dog. Caller owns
out; the leaf sizes nothing (rule #4)._delt_encode(base,target,out,outOff) -> n | -1 in js/pack.hpp
(beside _delt_apply); installed via JABCPackInstall.git.delta.encode in cont.cpp beside git.delta.apply; -1
surfaces verbatim (caller's raw fallback), DELT I/O errors throw.test/js/get/delta.js (registered JABCdelta, helpers
from test/js/lib/): encode(base,target) → apply(base,delta) == target for
shared-prefix / insert-only / copy-heavy pairs; incompressible → -1._delt_encode + git.delta.encode; update js/INDEX.md/API.md.js/pack.hpp/js/cont.cpp with JS-037 — land FIRST).742c06ff (manual reconcile onto JS-035): js/cont.cpp
git.delta.encode + js/pack.hpp _delt_encode leaf + test/js/get/delta.js.be get reconcile silently dropped JS-036's edits to the
JS-035-overlapping files (GET-031): js/CMakeLists.txt (JABCdelta
registration) + js/API.md/js/INDEX.md encode docs are MISSING; delta.js
is unwired from ctest. Follow-up edits captured in GET-031's
lost-content.diff (and /tmp/js036-backup).