From c298c352b334ea7ed6ff47174c158f1413d96f7c Mon Sep 17 00:00:00 2001 From: Lucio Lelii Date: Tue, 8 Sep 2026 10:53:01 +0200 Subject: [PATCH] Let a configurable field take a global input, and show its own tip The small parameter editor offered two sources for a configurable-as-input field: a static value, or a workflow input. A global input was reachable only by typing ${{global.}} by hand into the value box - and on a provider whose model list is closed there is no value box to type into, which left the one flow-level way of deciding such a field unreachable from the editor. There is now a third source that lists the flow's declared globals and writes the placeholder for you, with a plain sentence when the flow declares none rather than an empty select. The modal also never rendered a field's description, so every tip written on one of these fields was invisible. Co-Authored-By: Claude Opus 5 (1M context) --- .../nodes/generic-node/generic-node.html | 32 +++- .../nodes/generic-node/generic-node.spec.ts | 179 ++++++++++++++++++ .../shared/nodes/generic-node/generic-node.ts | 87 ++++++++- 3 files changed, 291 insertions(+), 7 deletions(-) diff --git a/src/app/shared/nodes/generic-node/generic-node.html b/src/app/shared/nodes/generic-node/generic-node.html index 4ba1a31..2e61ea5 100644 --- a/src/app/shared/nodes/generic-node/generic-node.html +++ b/src/app/shared/nodes/generic-node/generic-node.html @@ -581,11 +581,14 @@
@if (localEditorUseInput) {
@@ -594,6 +597,29 @@ }
} + + + @if (localEditorFromGlobal) { +
+ + + @if (!localEditorGlobalInputs.length) { +
This flow declares no global inputs yet. Add one to the flow to use it here.
+ } +
+ }
@@ -660,6 +686,10 @@ } @else if (localEditorDefaultHint(); as hint) { {{ hint }} } + + @if (localEditorTip) { + {{ localEditorTip }} + }
diff --git a/src/app/shared/nodes/generic-node/generic-node.spec.ts b/src/app/shared/nodes/generic-node/generic-node.spec.ts index 6e310d6..3318cd5 100644 --- a/src/app/shared/nodes/generic-node/generic-node.spec.ts +++ b/src/app/shared/nodes/generic-node/generic-node.spec.ts @@ -505,6 +505,185 @@ describe('GenericNodeComponent', () => { }); }); + describe('taking a field from a global input', () => { + /** + * The third Source choice. It exists because on a provider with a closed model list the field + * is a