- library/elements/hostFloor.js holds the decision ProfileLoader uses: probeOnce() at mount, follow() on every
host resize (reads only; at most one flip of the floor).
- A host CAPPED below the floor (max-height) follows its content up to the cap. It is found at mount, or, if
the cap arrives later, by the host shrinking right after a flip; either way it is latched as content-sized
and never flipped again, so it cannot loop. The post-flip check runs before the collapse rule, so a capped
host with empty content is latched rather than flipped back and forth.
- check:host-floor (gates:pre; self-test in gates:post): a stub DOM with a scrolled child that clamps when the
loader collapses. After mount, host resizes never write the loader nor move the child; a sized host fills;
late sizing flips once; a max-height cap (at mount: 0 flips; after mount: at most one flip and one revert)
never loops; a collapsed host gets the floor back; an inline host is left alone. Poisons: the old per-resize
probe, and a missing latch.