Add refresh input to ProjectLoaderDynamic to force re-fetch

Changing the refresh value triggers the node to re-fetch keys from
the API, picking up any new or modified fields in the data.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-01 14:27:51 +01:00
parent 2a6b4f5245
commit dc8f44f02b
2 changed files with 3 additions and 2 deletions

View File

@@ -138,6 +138,7 @@ class ProjectLoaderDynamic:
"project_name": ("STRING", {"default": "", "multiline": False}), "project_name": ("STRING", {"default": "", "multiline": False}),
"file_name": ("STRING", {"default": "", "multiline": False}), "file_name": ("STRING", {"default": "", "multiline": False}),
"sequence_number": ("INT", {"default": 1, "min": 1, "max": 9999}), "sequence_number": ("INT", {"default": 1, "min": 1, "max": 9999}),
"refresh": ("INT", {"default": 0, "min": 0, "max": 9999}),
}, },
"optional": { "optional": {
"output_keys": ("STRING", {"default": ""}), "output_keys": ("STRING", {"default": ""}),
@@ -152,7 +153,7 @@ class ProjectLoaderDynamic:
OUTPUT_NODE = False OUTPUT_NODE = False
def load_dynamic(self, manager_url, project_name, file_name, sequence_number, def load_dynamic(self, manager_url, project_name, file_name, sequence_number,
output_keys="", output_types=""): refresh=0, output_keys="", output_types=""):
# Fetch keys metadata (includes total_sequences count) # Fetch keys metadata (includes total_sequences count)
keys_meta = _fetch_keys(manager_url, project_name, file_name, sequence_number) keys_meta = _fetch_keys(manager_url, project_name, file_name, sequence_number)
if keys_meta.get("error") in ("http_error", "network_error", "parse_error"): if keys_meta.get("error") in ("http_error", "network_error", "parse_error"):

View File

@@ -34,7 +34,7 @@ app.registerExtension({
// Auto-refresh with 500ms debounce on widget changes // Auto-refresh with 500ms debounce on widget changes
this._refreshTimer = null; this._refreshTimer = null;
const autoRefreshWidgets = ["project_name", "file_name", "sequence_number"]; const autoRefreshWidgets = ["project_name", "file_name", "sequence_number", "refresh"];
for (const widgetName of autoRefreshWidgets) { for (const widgetName of autoRefreshWidgets) {
const w = this.widgets?.find(w => w.name === widgetName); const w = this.widgets?.find(w => w.name === widgetName);
if (w) { if (w) {