docs/solutions/logic-errors/2026-04-04-block-geometry-should-flatten-recursive-text-leaves-before-rebasing-richer-inline-shapes.md
The earlier mixed-inline work still leaned on a hidden shortcut:
That was good enough until richer inline descendants showed up:
At that point the old geometry model was bullshit.
The durable fix was to flatten each block into recursive text-leaf entries:
Then reuse that one geometry source for:
That let the existing transform stack survive richer inline descendant trees without a new algorithm for every wrapper shape.
The hard part is not “how many inline wrappers exist.” The hard part is “what is the linear text geometry of this block?”
Once that geometry is represented as ordered text leaves, deeper wrappers stop being special.
They become:
That is the right abstraction level for the current v2 proof shape.
When a block starts supporting richer inline descendants:
If the geometry helper still talks like the block has only one level of inline children, it is already lying.