- A legacy frontend Primitive linked to an editor's text or the Pair's
negative now runs with its value: the graphToPrompt wrapper and the queue
hook fill it in (through virtual reroutes), in new and pre-#343 workflows.
- Moving a linked text and releasing it on the editor keeps it on `text`:
a link being moved counts as free, as the frontend counts it.
- A link dropped on a prompt box (or its link note) fills that box's input,
so the Pair's Negative prompt box takes `negative_text` (Classic through
getInputOnPos, Nodes 2.0 through the box's slot key).
- Only exact STRING links are steered; wildcards keep the frontend choice.
- A linked Classic text box gives its row back and gets it back on
disconnect; the PromptManagerText note uses the theme colour.
- The metadata parsers map positional widget values through the widget
table when an editor's widget-bound inputs do not line up with it.
- Real-host cases for the legacy Primitive (new and saved workflows, a real
Run), the moved link, the Negative box, paste/clone/undo and Split.
The Focused, Split and Pair editors hide their widgets, and ComfyUI only
draws a widget's input socket while the widget is visible. `text` (and the
Pair's `negative_text`) therefore had no socket, and a STRING link dropped
on the editor fell through to the first free STRING input, `prepend_text`,
which is how #342's workflow was wired.
- Detach those inputs from their hidden widgets on create and after a
workflow load, so they are ordinary sockets in Classic and Nodes 2.0. The
schema, widget order and saved values are unchanged.
- A STRING link dropped on the editor body fills the main prompt, then the
negative, before the frontend's own choice.
- Each editor says when its text comes from a link; the typed text is kept
for disconnect. The Classic nodes now save the typed text under a link
instead of null, and "use prompt" no longer overwrites it while linked.
- Real-host tests: mouse drags in both renderers, a workflow saved before
this change, and executions proving the linked text is saved, counted,
recorded in history and linked to the run's image.
Closes#343