SIGN IN SIGN UP

fix(chat): grey out "fork from here" mid-reply instead of removing it

One gate answered two questions: whether this surface can fork at all
(live connection, agent supports `session/fork`, conversation persisted)
and whether it can fork right now. Only the second goes false while a
turn is in flight, and it comes back — so every completed reply's fork
icon disappeared for the length of each reply, shifting the icon row
under the reader with nothing to say where it had gone.

Split them. The host gate now spans the whole `prompting` window and the
view renders the button disabled across it, explaining on hover why it
is dead. `aria-disabled` rather than the native attribute, deliberately:
a disabled element receives no pointer events, so that tooltip — the one
thing that says why — would never open.

`handleForkFromTurn` reads liveness off `connStatusRef` instead of
capturing it, so the callback handed to every rendered reply keeps its
identity across both ends of a turn rather than re-rendering the mounted
transcript window for a flag the reply footers now carry themselves. The
click still re-checks, and the backend's `TurnInProgress` remains the
final word on a fork that races a send.
X
xintaofei committed
ea519575c7bd6f84f12dba677fc19c35bb123189
Parent: 8eb05f8