From 8814a50f5200af05b1ec426e344d90c532071e9d Mon Sep 17 00:00:00 2001 From: Erik Date: Sun, 5 Jul 2026 21:59:18 +0200 Subject: [PATCH] docs(pipeline): spec 6.6 - EnvCell geomId-vs-fileId keying note for MP1c MP1b review finding, verified against EnvCellRenderer.GetEnvCellGeomId: runtime dedups interior geometry under a 64-bit content hash (bit 33), not the cell fileId the pak keys by. MP1c maps at the RegisterCell seam (read pak[cellFileId], register under geomId, dedup post-load as today); duplicate blob content on disk is v1-acceptable. GeomId-keyed baking is not viable in format v1 (hash exceeds PakKey's 56 usable bits). Co-Authored-By: Claude Fable 5 --- .../specs/2026-07-05-modern-pipeline-design.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/superpowers/specs/2026-07-05-modern-pipeline-design.md b/docs/superpowers/specs/2026-07-05-modern-pipeline-design.md index fb0d3814..c8978b43 100644 --- a/docs/superpowers/specs/2026-07-05-modern-pipeline-design.md +++ b/docs/superpowers/specs/2026-07-05-modern-pipeline-design.md @@ -214,6 +214,20 @@ listed follow-up, not v1. class gone; user visual gate (no missing/wrong geometry); legacy decode path deleted from the streaming hot path in the gate commit. +### 6.6 MP1c design note — EnvCell keying (recorded 2026-07-05, MP1b review finding) + +The runtime deduplicates interior-cell geometry under a **content hash** +(`EnvCellRenderer.GetEnvCellGeomId(environmentId, cellStructure, surfaces)`, +bit 33 set — verbatim WB), NOT under the cell's dat fileId; many cells share +one geometry. The pak keys EnvCell blobs by cell fileId. MP1c's cutover +therefore maps at the existing seam: `RegisterCell` has the concrete cell in +hand when it wants geometry for a geomId — read `pak[cellFileId]`, register +under the geomId, and post-load dedup continues exactly as today. Cost: +cells sharing geometry duplicate blob content on disk (v1-acceptable; +a one-blob-per-unique-content TOC-alias refinement is a future format +option). Baking under geomId keys directly is NOT viable in format v1 — +the hash is a full 64-bit value and does not fit PakKey's 56 usable bits. + ## 7. MP2 — Distance-degrade port (hide-only first cut) The already-scoped retail port from the 2026-06-23 handoff §3 (read it + the named