GIT-009: push to a fresh git remote omits the .be blob → fsck fails

Pushing a beagle history to a BRAND-NEW / empty git remote produces an inconsistent pack: the committed root trees carry a .be entry (the store anchor — gitignored yet recorded in the tree object), but the pack walk (keeper/WALK.c DPATHVerify) deliberately SKIPS .be, so the blob the tree entry points at is never written. A fresh remote has no copy, so git fsck / git-receive-pack rejects the push with missing blob object. Against any remote that already holds the blob (every incremental fast-forward — the normal path) it is harmless, so it only bites a fresh or empty remote. Found while fixing POST-021 (the push BNOROOM); isolated there by using a .be-free synthetic history for the regression test, so it is unrelated to that fix and gets its own ticket.

Input

Context

The tree references a blob the pack refuses to ship.

Goals

A fresh-remote push yields an fsck-clean pack — no dangling tree references.

Constraints

WIP

Design decisions

(pending — decide: drop .be from trees vs ship its blob)

TODOs

Blockers and bummers

Outcome