{% from "_macros.html" import icon %} {# The step still being written: everything past the last mark. These two are the only things that move at streaming speed. Everything above them is closed and is re-sent only when a round ends, which is what keeps a forty-round reply from re-rendering its whole transcript twelve times a second. Both carry the complete block each time rather than a delta -- that is what makes reattaching to a reply in progress work at all, since a follower arriving late has no earlier fragments to append to. The reasoning wrapper is static and only its body is swapped, so a reader who opens it keeps it open for as long as this step lasts. When the round closes it becomes a `think-…` block above and comes back collapsed; that is a real seam and it is left visible rather than papered over with a mapping from an ephemeral id to a permanent one. #}
{{ icon("sparkle", "icon--sm reasoning__icon") }} Thinking… {{ icon("chevron-down", "icon--sm reasoning__chevron") }}