bin/post.js + decide/commit/conflict — the commit-makerbe post as JS: classify the staged change-set into keep/unlink/add decisions,
build the git tree + commit object, write a keeper pack-log (+ idx), FF-advance the
ref, append the post row + restamp the files. FF-or-refuse — NO rebase/merge.
← JS-047+JS-048. Part of JS-046. Method: Issues.
sniff/POST.c: 5-way merge → decisions (post_classify_step :440),
bottom-up tree build (post_build_tree :789), commit body (tree/parent/author,
git-strict order), pack feed (:2929), REFS CAS (REFSCompareAndAppend),
post row + file restamp (:3228). Conflict pre-scan before any write (POST-017).git.pack.book/feed/finish (bound); idx via
ingest.js::buildIndex (pure JS, transfers whole).bin/lib/decide.js: keep/unlink/add per path (extend classify.js's merge);
bin/lib/commit.js: tree+commit framing + pack-write + idx; conflict.js: the
WEAVE-marker scan. bin/post.js: orchestrate, FF-or-refuse, the post: banner.git fsck rejects the object.test/js/post/*: be put ./f && be post '#msg' → JS post
vs native: identical commit sha, REFS row, wtlog row, banner; empty-commit
POSTNONE; non-FF POSTNOFF (throws, no store write). (Now be/test/post/*,
10 cases incl. agree/refuse/conflict/move/slots.)032debec; landed
as fold-decide.js/fold-commit.js + shared/conflict.js.)032debec (bin/post.js + decide/commit/conflict, FF-or-refuse).
Today at be/verbs/post/{post,fold-decide,fold-commit}.js +
be/shared/conflict.js (beagle-ext shard); parity suite be/test/post/*.be/test/post/patch-absorb,
patch-pat) under later tickets; writePack pairs every pack with an idx run
via ingest.buildIndex (fold-commit.js:192) — its run-name collision is
JS-099. Audited 2026-07-07.