Updating a stream with `reset: true` does not update element attributes

Hi, I am either not understanding something or this is a bug. I am rendering a stream and setting the value of class based on a flag. When I flip the flag, the text renders the value of the flag correctly, but the class doesn’t change, so the text is always rendered as red. If I remove reset: true from stream(...) in the "flip" event handler, the color changes correctly. What’s going on here?

  @impl true
  def render(assigns) do
    ~H"""
    <div>
      <button phx-click="flip">FLIP</button>
      <div id="list" phx-update="stream">
        <div
          :for={{id, el} <- @streams.list}
          id={id}
          class={if el.flag, do: "text-red-500", else: "text-green-500"}
        >
          <%= "id: #{el.id} flag: #{el.flag}" %>
        </div>
      </div>
    </div>
    """
  end

  @impl true
  def mount(_params, _session, socket) do
    flag = true
    data = [%{id: 1, flag: flag}]
    {:ok, socket |> assign(flag: flag) |> stream(:list, data, reset: true)}
  end

  @impl true
  def handle_event("flip", _, socket) do
    flag = !socket.assigns.flag
    data = [%{id: 1, flag: flag}]
    {:noreply, socket |> assign(flag: flag) |> stream(:list, data, reset: true)}
  end

You found a LiveView bug!

Thanks for the quick fix. Is there some trick I need to do to get the dom_patch.js change that I can see in my deps folder to end up in my app.js? I have pointed mix.exs to GitHub main but the javascript fix is not getting transpiled into my priv/static/assets/app.js