docs(claude): record the M4/M5 close-out — what landed, what was cut, what is owed
ci / check (push) Failing after 17s

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-07 10:29:11 +02:00
co-authored by Claude Opus 5
parent 42577e1f94
commit b3f661fac0
+19
View File
@@ -214,6 +214,25 @@ length dimension on a rectangle edge is not a radius). It is not a gate hole —
`scripts/drive/m3-c-dimensions.json` clicks `chip:⌀ diameter` and asserts the geometry 12 typed
as a diameter produces — but the L2 gate does not exercise it.
**M4 and M5 landed partially on 2026-09-07, in a close-out pass, and what did NOT land was cut
rather than left floating.** Three interrupted lanes were finished to green and merged: **M4-R**
(edge and vertex picking with per-compile ids that are never persisted, hover off the ID buffer
already rendered, `Selection::Edges/EdgeChain/Vertices`, and the section cutaway with an offset
plane), **M4-K** (the kernel and façade half of direct modelling: per-face offsets, defeaturing,
face splitting by imprinted edges, and the general transforms, each written against a K0 probe
number rather than a guess), and **M5-1** (the multi-body compile core: `BodyId` from the document
allocator, `FeatureTarget` replacing `cut: bool`, the `Boolean` feature, `Compiled.bodies` with
`body_of_face`, body-scoped resolution with `BrokenReason::BodyGone`, and document format 27 on a
two-step migration ladder with naming store v5). **The gate is 1306 tests, 44 selftest checks and
18 drive scripts, both negative controls failing at their own step.** What is NOT here: M4's
document glue, gestures and history tools (lanes D, G, H), M5's scene, items panel and gesture
wiring (lanes 2 and 3), and the L3 and L4 ladder gates. The `sole_body()` shims are deliberate
and refuse ambiguity by name rather than guessing a body. Everything the close-out removed or left
owed is listed in the session's follow-up notes, and one item is worth repeating here because it
was a defect on main rather than any lane's: **`SilencedMessenger` mutated a process-global OCCT
singleton with no lock**, which corrupted the heap in three of six workspace runs and could make a
STEP export silently write no file; it is mutex-guarded now.
**M2 (naming completeness) is complete as of 2026-09-07; M2-1/2 and M2-6/7 in brief, M2-3/4/5
below.** `TopoRef` exists as a record in the naming store keyed (holder feature, picked id);
payloads keep the bare id; fingerprints are persisted (store v3) and `OwnerTable::Live` reads the