git.delta.encode — git delta producer over dog/git/DELT
Expose 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.
never throws on the expected "store raw instead" path.
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; -1surfaces 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).