The git-format storage floor: pack-log encoding, delta scheme, ingest normalization, and the upload/receive wire. Tickets here migrate the keeper pack log to a single-stream, OFS-only, offset-addressed store (one growing pack per shard, deltas reference earlier objects by offset only, REF_DELTA quarantined at the ingest boundary). The native format core (writer, OFS resolver, OFS varint) lands in dog/git so keeper and the js/JABC binding share one implementation — no pack-log logic in either consumer. Plan-shaped, cleared via the Issues loop. Concept page: PackLog (rewritten by GIT-001).
ZINFInflate wraps next_out on a full output slice instead of returning a NOROOM code, silently corrupting output + reporting 0; latent for pre-sized native callers, surfaced by JS-035's grow-and-retry.4370d67e (HTTPS via spawned curl on pol, ssh untouched, test/wire/http-*); open residue only — git:// still misroutes to ssh (split it off or refuse) + the optional git:// daemon adapter.234b0f54 (A absolute-marker strip, POSTREF empty-segment guard, B POSTNOREF refusal — all in shared/relate.js); open residue — an end-to-end repro test for the defect-B POSTNOREF refusal.?/project/branch); ingest.saveRemoteRef/clone/add strip the query to ?, so branches collapse onto the trunk key and a cached head //origin?branch can't resolve the tip. Split from GIT-016 T3.261680bf (shared/serve.js uploadPack + the jab upload-pack raw-wire CLI entry + test/serve/uploadpack, jab-to-jab via KEEPER_BIN=jab); open — the jab receive-pack serve loop, the TEST-003 get/be + get/cached test flips, and an ssh-remote jab spawn form (classify() still hardcodes ssh host keeper …).
GIT-013/GIT-014 (the JS wire PUSH: shared wire.push() receive-pack client over ssh:+http:, FF-only jab post + force/set jab put, DIS-011 log-only, report-status parse) landed cb3881f8; test/wire/push-*, put-force-*, put-dis011.
GIT-016 (ONE graph-only advertise→resolve→verdict spine shared/relate.js + dag remote wh128 index + the head verb + honest non-FF post; get/post/put rerouted) landed 14924366+c12f6d4b; test/relate/verdict, test/dag/remoteindex, test/wire/head-*, push-nonff-msg. Residue split to GIT-017 (remote-track rows still drop the branch).
GIT-018 (push-pack built in pure JS — markReachable closure + git.pack emit, keeper spawn dropped from buildPushPack) landed e42c94e7; test/wire/push-nokeeper. Pack is RAW for now — OFS_DELTA emit stays PACK-002.
GIT-019 (ONE receive-pack session per push; advertRefs flush-closes, relate advert injectable — no more remote end hung up) landed 3610b643; test/wire/push-1conn.
GIT-010 (pack-log index-emit: new dog/git/PIDX scan/feed-emit (sha→offset) wh128 into a caller buffer, no index owned; keepKeyPack→shared WHIFFKeyPack; git.pack scan(out) / feed(…,out) binding → a JS-022 abc.index) landed 090658bb; PIDXtest + JABCpackidx. Deferred: converge keeper UNPKIndex onto PIDXScan.
GIT-009 (fresh-remote push omitted the .be store-anchor blob → fsck missing blob; pack-closure walks now ship it via a WALK_INCL_ANCHOR flag, on push + serve) landed c4955e5b; test/post/47.
GIT-007 (js/pack.hpp reduced to pure marshalling over dog/git PACKu8sFeedObj/ PACKResolveOfs + new PACKRecordEnd; JABCPackFeedOfs + inline encode/resolve dup deleted, double-header bug gone, keeper↔binding cross-impl vector) landed d8fec51a. GIT-002 (object-by-object OFS-only writer) landed e59a1c91; GIT-003 (ingest re-encoder to OFS-only + per-object dedup) landed fa52117d; GIT-005 (verbatim full-clone blast + thin-pack serve builder) landed 71a31179; GIT-008 (OFS writer chains delta-of-delta, depth cap 50 — fixes 38% fresh-clone bloat) landed b01496da; GIT-004 (OFS-only native resolver via the shared dog/git PACKResolveOfs; REF arm + cross-file recursion + MEM-022 hardening deleted, assert-backstopped) landed cd1e8a00. GIT-006 (migration + crash recovery) DROPPED — not needed: beagle.new is born OFS-only (GIT-003 re-encodes every object on clone-in), so there is no mixed store to migrate.