docs(sync): merge the commit handoff into the staging tradeoff curve

The bench phase the handoff was written for is closed (splice benched,
fast-seek landed, cache removed, decision made), so the note's live half —
the firmware plumbing plan — moves into sync-commit-staging.md as "The fix —
wiring the O(depth) splice into the firmware", reconciled to the run-5 state.
The duplicated TL;DR/measurement summaries are dropped in favor of the
curve's own trail; inbound references (notes index, git_bench comments)
now point at the curve.
This commit is contained in:
Julien Calixte
2026-07-13 00:29:07 +02:00
parent 9309f3f239
commit e86a3b8254
5 changed files with 158 additions and 234 deletions

View File

@@ -6,7 +6,7 @@
//!
//! HEADLINE OP (since the 2026-07-12 real-repo run): `splice stage→tree` — the
//! O(depth) TreeBuilder walk that replaces the index-based commit entirely
//! (docs/notes/sync-commit-handoff.md). It runs FIRST so its first iteration is
//! (docs/tradeoff-curves/sync-commit-staging.md). It runs FIRST so its first iteration is
//! the cold number; acceptance bar: **sub-second cold on the real 570 MB-pack
//! clone, heap staying healthy**. The index paths it supersedes run LAST, for
//! regression tracking — they previously OOM'd, and a late crash can't cost the
@@ -81,7 +81,7 @@ fn run() -> Result<()> {
log_map_stats("open");
// 1) THE FIX — `splice stage→tree`, the O(depth) TreeBuilder walk
// (docs/notes/sync-commit-handoff.md): patch the edited file's ancestor
// (docs/tradeoff-curves/sync-commit-staging.md): patch the edited file's ancestor
// subtree chain onto HEAD's tree; never materialise the 1179-entry index,
// never index.write(), never read_tree the whole tree. Runs FIRST so
// iteration #1 is genuinely cold (only `open` has touched the pack).