feat: add field attribute update semantics and refine template metadata#8504
feat: add field attribute update semantics and refine template metadata#8504edwinjosechittilappilly wants to merge 11 commits into
Conversation
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the WalkthroughThis update introduces new constants for field attribute update semantics and implements a nuanced field update function in the backend, enabling selective preservation and updating of user-customized attributes during template synchronization. Numerous starter project JSON templates are updated to refine input field metadata, UI behavior, and input types, particularly for chat, agent, and memory components. Changes
Sequence Diagram(s)sequenceDiagram
participant Setup as Initial Setup
participant Project as Project Data
participant Template as Latest Template
participant Logger as Change Logger
Setup->>Project: Iterate over nodes and fields
loop For each field
Setup->>Template: Retrieve latest field definition
Setup->>Setup: Call update_field_with_preservation()
alt Field exists in Project
Setup->>Logger: Log preserved/updated attributes by reason
Setup->>Project: Update field with preserved, critical, additive, and format attributes
else Field new in Template
Setup->>Logger: Log field addition
Setup->>Project: Add new field with all attributes
end
end
Setup->>Logger: Group and output change logs by reason
Possibly related PRs
Suggested labels
✨ Finishing Touches🧪 Generate Unit Tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
There was a problem hiding this comment.
Pull Request Overview
This PR standardizes the UI schema across all starter-project JSON definitions by adding new UI configuration flags, updating input types, and refining component outputs.
- Added new UI properties (
copy_field,toggle,list_add_label,real_time_refresh) to input definitions for consistency. - Changed message-related inputs from
"MessageInput"to"HandleInput"and updated their"type"to"other". - Refactored the MemoryComponent code to support both text and DataFrame outputs and introduced a
sender_typeinput.
Reviewed Changes
Copilot reviewed 35 out of 35 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| Pokédex Agent.json | Added UI flags, updated message input type |
| News Aggregator.json | Added UI flags, updated message input type |
| Memory Chatbot.json | Added UI flags, updated MemoryComponent outputs |
| Meeting Summary.json | Added UI flags, updated message input type |
| Market Research.json | Added UI flags, updated input types |
| Invoice Summarizer.json | Added UI flags, updated input types |
| Instagram Copywriter.json | Added UI flags, updated input types |
| Image Sentiment Analysis.json | Added UI flags, updated input types |
| Hybrid Search RAG.json | Added UI flags, updated input types |
| Gmail Agent.json | Added UI flags, updated input types |
| Financial Report Parser.json | Added UI flags, updated input types |
| Financial Agent.json | Added UI flags, updated input types |
| Document Q&A.json | Added UI flags, updated input types |
| Diet Analysis.json | Added UI flags, updated input types |
| Custom Component Maker.json | Added UI flags, updated input types |
| Blog Writer.json | Added UI flags, updated input types |
| PromptComponent (Python) | Switched to PromptInput, refined template UI |
| ChatOutput (Python) | Updated handle/input types and UI flags |
There was a problem hiding this comment.
[nitpick] There's a lot of repetitive UI flag additions across multiple JSON files. Consider abstracting common schema fragments or generating these fields via a shared template to reduce duplication and simplify future updates.
There was a problem hiding this comment.
Actionable comments posted: 14
🔭 Outside diff range comments (7)
src/backend/base/langflow/initial_setup/starter_projects/Social Media Agent.json (1)
1782-1809:⚠️ Potential issue
senderfield mixesMessageTextInputwithDropdown-specific properties — UI may break.
_input_typeis set toMessageTextInput, butoptions,options_metadata, andcomboboxare still present.
Those keys are meaningful only forDropdownInputand will likely be ignored or cause front-end warnings.Decide which behaviour you want:
Option A – keep it free-text: remove the dropdown-only fields.
- "options": [...], - "options_metadata": [...], - "combobox": false,Option B – revert to dropdown:
- "_input_type": "MessageTextInput", + "_input_type": "DropdownInput",Aligning the schema avoids inconsistent rendering and keeps the template maintainable.
src/backend/base/langflow/initial_setup/setup.py (1)
173-209:⚠️ Potential issueIncorrect “old_value” captured for
_typechange
old_valueis read afternode_data["template"]["_type"]has already been overwritten, so the log will always record identical old/new values and hide real template-version migrations.- node_data["template"]["_type"] = latest_template["_type"] - ... - node_changes_log[node_type].append( - { - "attr": "_type", - "old_value": node_data["template"]["_type"], - "new_value": latest_template["_type"], - "reason": "template_version_change", - } - ) + # cache original before mutating + previous_type = node_data["template"]["_type"] + node_data["template"]["_type"] = latest_template["_type"] + ... + node_changes_log[node_type].append( + { + "attr": "_type", + "old_value": previous_type, + "new_value": latest_template["_type"], + "reason": "template_version_change", + } + )src/backend/base/langflow/initial_setup/starter_projects/Image Sentiment Analysis.json (2)
596-598:⚠️ Potential issueRemove
list_add_labelfrom non-list inputsThe
clean_datafield is not a list; remove thelist_add_label.
1287-1289:⚠️ Potential issueRemove
list_add_labelfrom non-list inputsThe
system_messagefield is singular ("list": false);list_add_labelshould be removed.src/backend/base/langflow/initial_setup/starter_projects/Instagram Copywriter.json (1)
1207-1228:⚠️ Potential issueCritical: Changed input type to
HandleInput
InChatOutput, the"input_value"field’s_input_typechanged from"MessageInput"with"type": "str"to"HandleInput"with"type": "other". This alters serialization and data flow. Please validate end-to-end that handle inputs function correctly in both frontend and backend.src/backend/base/langflow/initial_setup/starter_projects/Basic Prompting.json (2)
538-546:⚠️ Potential issueUpdate README note to multi-provider context.
The note still reads "Perform basic prompting with an OpenAI model." but the project now supports multiple providers. Please revise to mention "language model" or "selected provider" generically.
574-582:⚠️ Potential issueAPI key prompt is OpenAI-specific.
The guidance "Add your OpenAI API key here" is outdated under multi-provider support. Update to reflect provider selection (e.g., "Add your API key for the selected provider").
♻️ Duplicate comments (2)
src/backend/base/langflow/initial_setup/starter_projects/Instagram Copywriter.json (1)
1234-1250: Duplicate: dropdown metadata enhancements
This change repeats the pattern of addingdialog_inputs,options_metadata, andtoggleto dropdown fields. See earlier comment on line 478–493 for guidance.src/backend/base/langflow/initial_setup/starter_projects/Vector Store RAG.json (1)
369-382: Inconsistent 'list_add_label' application
Same pattern detected for"chat_icon". See previous comment regardinglist_add_labelon non-list items.
🧹 Nitpick comments (17)
src/backend/base/langflow/base/constants.py (1)
28-50: Prevent accidental drift by making the buckets explicit sets and validating overlaps.Using Python sets lets you:
for name, bucket in BUCKETS.items(): duplicates = set().union(*(b for n, b in BUCKETS.items() if n != name)) & bucket if duplicates: raise ValueError(f"Attribute(s) {duplicates} defined in multiple buckets")This single guard will surface any future collision (like the one above) during unit tests instead of at runtime.
No behaviour change, just tighter safety.Also applies to: 62-90
src/backend/base/langflow/initial_setup/starter_projects/Twitter Thread Generator.json (6)
323-330: Ensurelist_add_labelis appropriate for non-list fields
Adding"list_add_label": "Add More"on fields where"list": falsemay confuse end-users. Confirm that the UI suppresses or ignores list labels on single-value inputs to avoid redundant controls.
346-354: Reviewlist_add_label&tool_modeforchat_icon
Thechat_iconfield now explicitly sets"list_add_label"and"tool_mode": false. Verify that the front end honors the new label only when appropriate and that markingtool_modefalse explicitly is not redundant.
478-486: Assess list label onsender_name
"list_add_label": "Add More"on a single‐value text field may produce redundant UI elements. Confirm whether this label should only appear whenis_listis true.
501-509: Validate list label forsession_id
Applying"list_add_label"to a non-listsession_idinput risks UI clutter. Ensure the label is conditionally rendered only whenlist: true.
521-528: Review boolean input extras onshould_store_message
A boolean toggle now carries"list_add_label": "Add More". Confirm the UI ignores list labels on toggle controls or remove the property for clarity.
542-550: Confirm list label ontext_color
The single‐valuetext_colorinput includes a list label. Verify no unintended UI affordance appears for non-list fields.src/backend/base/langflow/initial_setup/starter_projects/Custom Component Maker.json (1)
319-324: Consistent list UI: addlist_add_labelfor memory input
Introducing"list_add_label": "Add More"enhances UX for multi-entry fields. Consider auditing other list-enabled inputs in this project to ensure they all expose a clear "Add More" action.src/backend/base/langflow/initial_setup/starter_projects/Sequential Tasks Agents.json (3)
394-400: Inconsistentlist_add_labelon a non-list field
Theadd_current_date_toolinput is declared with"list": falseyet includes"list_add_label": "Add More". Thelist_add_labelproperty only applies when"list": true. Please either removelist_add_labelor switch the field to"list": true"if multiple entries are intended.
408-417: Reviewagent_descriptioninput metadata
You’ve added"copy_field": falseand"list_add_label": "Add More"foragent_description. While disabling copy (copy_field: false) is valid, thelist_add_labelon a single-entry field ("list": false) will be ignored. Please removelist_add_labelor enable multiple entries by setting"list": true.
533-593: Bulk: Removelist_add_labelfrom single-entry inputs
Fields such ashandle_parsing_errors,input_value,json_mode, andmax_iterationshave"list_add_label": "Add More"despite"list": false". Since they aren’t lists, this label has no effect. Please removelist_add_labelor mark them"list": true"where multi-entry behavior is required:
handle_parsing_errors(line 533)input_value(line 554)json_mode(line 575)max_iterations(line 593)src/backend/base/langflow/initial_setup/setup.py (1)
55-139: Function complexity creeping up
update_field_with_preservationnow exceeds the cyclomatic-complexity threshold flagged by pylint (13 branches).
Splitting the “critical”, “format”, and “additive” passes into tiny helpers will improve readability and testability without altering behaviour.
No immediate bug, but consider refactor.🧰 Tools
🪛 Pylint (3.3.7)
[refactor] 55-55: Too many branches (13/12)
(R0912)
src/backend/base/langflow/initial_setup/starter_projects/Blog Writer.json (1)
1612-1617: Refine URLComponent ‘max_depth’ slider spec
Currentstep_type: "float"and float bounds may not align with integer-only depth values. Consider switching to integer specs (step_type: "int").src/backend/base/langflow/initial_setup/starter_projects/Image Sentiment Analysis.json (1)
440-442: Consider removing redundanttool_mode
tool_modedefaults tofalseon BoolInput—explicitly setting it is optional and can be omitted.src/backend/base/langflow/initial_setup/starter_projects/SaaS Pricing.json (1)
400-446: Uniformlist_add_labelapplied to Chat Output nested fields
background_color,chat_icon, andclean_datanow include"list_add_label": "Add More". Approves consistency, but please verify the UI ignoreslist_add_labelwhen"list": false.src/backend/base/langflow/initial_setup/starter_projects/Vector Store RAG.json (1)
402-407: Enhance consistency on 'files' input metadata
TheChatInputJSON forfilesis missinglist_add_label(given it's a list input) and explicit"tool_mode": false. Adding them will align this field with the rest of the starter projects’ UI metadata.src/backend/base/langflow/initial_setup/starter_projects/Market Research.json (1)
355-374: Review empty metadata placeholders in sender input
You’ve addeddialog_inputs: {},options_metadata: [], andtoggle: falseto thesenderDropdownInput. Consider populating these or removing them if not used to avoid clutter.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (35)
src/backend/base/langflow/base/constants.py(3 hunks)src/backend/base/langflow/initial_setup/setup.py(7 hunks)src/backend/base/langflow/initial_setup/starter_projects/Basic Prompt Chaining.json(33 hunks)src/backend/base/langflow/initial_setup/starter_projects/Basic Prompting.json(44 hunks)src/backend/base/langflow/initial_setup/starter_projects/Blog Writer.json(17 hunks)src/backend/base/langflow/initial_setup/starter_projects/Custom Component Maker.json(14 hunks)src/backend/base/langflow/initial_setup/starter_projects/Diet Analysis.json(7 hunks)src/backend/base/langflow/initial_setup/starter_projects/Document Q&A.json(33 hunks)src/backend/base/langflow/initial_setup/starter_projects/Financial Agent.json(31 hunks)src/backend/base/langflow/initial_setup/starter_projects/Financial Report Parser.json(8 hunks)src/backend/base/langflow/initial_setup/starter_projects/Gmail Agent.json(17 hunks)src/backend/base/langflow/initial_setup/starter_projects/Hybrid Search RAG.json(12 hunks)src/backend/base/langflow/initial_setup/starter_projects/Image Sentiment Analysis.json(25 hunks)src/backend/base/langflow/initial_setup/starter_projects/Instagram Copywriter.json(60 hunks)src/backend/base/langflow/initial_setup/starter_projects/Invoice Summarizer.json(13 hunks)src/backend/base/langflow/initial_setup/starter_projects/Market Research.json(51 hunks)src/backend/base/langflow/initial_setup/starter_projects/Meeting Summary.json(59 hunks)src/backend/base/langflow/initial_setup/starter_projects/Memory Chatbot.json(39 hunks)src/backend/base/langflow/initial_setup/starter_projects/News Aggregator.json(18 hunks)src/backend/base/langflow/initial_setup/starter_projects/Pokédex Agent.json(13 hunks)src/backend/base/langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json(8 hunks)src/backend/base/langflow/initial_setup/starter_projects/Price Deal Finder.json(21 hunks)src/backend/base/langflow/initial_setup/starter_projects/Research Agent.json(51 hunks)src/backend/base/langflow/initial_setup/starter_projects/Research Translation Loop.json(10 hunks)src/backend/base/langflow/initial_setup/starter_projects/SEO Keyword Generator.json(17 hunks)src/backend/base/langflow/initial_setup/starter_projects/SaaS Pricing.json(38 hunks)src/backend/base/langflow/initial_setup/starter_projects/Search agent.json(12 hunks)src/backend/base/langflow/initial_setup/starter_projects/Sequential Tasks Agents.json(96 hunks)src/backend/base/langflow/initial_setup/starter_projects/Simple Agent.json(7 hunks)src/backend/base/langflow/initial_setup/starter_projects/Social Media Agent.json(15 hunks)src/backend/base/langflow/initial_setup/starter_projects/Text Sentiment Analysis.json(8 hunks)src/backend/base/langflow/initial_setup/starter_projects/Travel Planning Agents.json(46 hunks)src/backend/base/langflow/initial_setup/starter_projects/Twitter Thread Generator.json(31 hunks)src/backend/base/langflow/initial_setup/starter_projects/Vector Store RAG.json(95 hunks)src/backend/base/langflow/initial_setup/starter_projects/Youtube Analysis.json(27 hunks)
🧰 Additional context used
🪛 Pylint (3.3.7)
src/backend/base/langflow/initial_setup/setup.py
[refactor] 55-55: Too many branches (13/12)
(R0912)
⏰ Context from checks skipped due to timeout of 90000ms (2)
- GitHub Check: Ruff Style Check (3.13)
- GitHub Check: Optimize new Python code in this PR
🔇 Additional comments (318)
src/backend/base/langflow/initial_setup/starter_projects/Simple Agent.json (12)
15-23: EdgetargetHandle.typeupdated to"other"
Changing thetypefor thetargetHandleon the ChatOutput edge to"other"aligns with the newHandleInputsemantics for generic payloads.
930-938: Add toggle flag to ChatInputsenderinput
Introducing"toggle": falseon the ChatInput’ssenderfield aligns it with the standardized dropdown behavior across nodes.
1037-1040: Hide ChatInput node by default
Setting"showNode": falsecleans up the graph initial view. Please verify that hiding this node does not break the out-of-the-box starter flow.
1214-1233: Switch ChatOutput input toHandleInput
UsingHandleInputwith"type": "other"standardizes the ChatOutput’s payload handling for mixed data types.
1235-1242: Add toggle flag to ChatOutputsenderinput
Disabling toggle ("toggle": false) on the ChatOutput’ssenderdropdown ensures consistent UI behavior with other components.
1350-1353: Hide ChatOutput node by default
Applying"showNode": falsestreamlines the UI. Double-check that this doesn’t hide needed functionality for new users.
1530-1536: Add toggle flag to Agentagent_llmselector
The new"toggle": falseon the Model Provider dropdown matches the updated UX spec.
1801-1806: Add toggle flag to Agentmodel_nameselector
Disabling toggle onmodel_namekeeps the dropdown behavior uniform with other inputs.
1807-1813: Hide Agent’sn_messagesinput
Switching"show": falsehides the deprecated message-count field as per the updated guidelines.
1930-1936: Hide Agent’ssender_nameinput
Marking"show": falseforsender_nameremoves an optional filter and declutters the form.
2055-2063: Hide Agent’stemplateinput
Deprecating the legacytemplatefield by setting"show": falsealigns with the move to dynamic data templating.
1887-1897: Convert Agentsenderinput toMessageTextInput
Replacing theDropdownInputwithMessageTextInputand adding"input_types": ["Message"]and list metadata increases flexibility for custom senders.src/backend/base/langflow/initial_setup/starter_projects/Twitter Thread Generator.json (14)
409-416: Validate list label on thefileslist input
For thefilesfield ("list": true),"list_add_label": "Add More"matches expected behavior. Ensure the UI renders the custom label correctly alongside thetemp_fileflow.
422-430: Reviewcopy_field,list_add_label, andtool_modeoninput_value
The multilineinput_valuenow disables copying, adds a list label, and forcestool_mode: false. Confirm disablingcopy_fieldis intentional and that these metadata flags don’t interfere with editing or trace functionality.Also applies to: 438-440
443-451: Check empty dropdown metadata onsender
Added"dialog_inputs": {},"options_metadata": [],"toggle": false, and"tool_mode": false. Verify that empty containers are supported by the rendering engine and that toggling behavior remains unchanged.Also applies to: 457-463
748-755: Validatelist_add_labelon ChatOutputbackground_color
The ChatOutputbackground_colortemplate now has a list label despite"list": false. Check for proper suppression in the UI or consider removing it.
771-779: Evaluatelist_add_labelon ChatOutputchat_icon
Confirm that adding a list label to a non-listchat_iconfield does not surface an extraneous control.
791-798: Verifylist_add_labelonclean_databoolean input
The booleanclean_datanow carries a list label. Ensure boolean inputs ignore or hide this label in the UI.
843-851: Confirm input type change for ChatOutputinput_value
Switched from_input_type: "MessageInput"/type: "str"to"HandleInput"/"other". Validate that downstream code and the UI support the new handler type and that deserialization still works.Also applies to: 864-866
867-875: Review dropdown metadata for ChatOutputsender
The ChatOutput dropdown now includes empty"dialog_inputs","options_metadata", and"toggle": false. Confirm these are necessary defaults and that they integrate cleanly with existing dropdown logic.Also applies to: 880-886
901-908: Ensure list/tool flags for ChatOutputsender_name
sender_namenow haslist_add_labeland explicittool_mode: false. Verify that single-value message inputs handle these flags correctly.
923-932: Validate metadata flags for ChatOutputsession_id
Check thatsession_idsuppresses list labels on non-list fields and respectstool_mode: false.
938-947: Review boolean input extras for ChatOutputshould_store_message
Confirm"list_add_label"and"tool_mode": falseare properly ignored for boolean toggles.Also applies to: 951-953
964-973: Confirmlist_add_labelon ChatOutputtext_color
Ensure that adding a list label to a non-list text color input does not alter the control layout.
1789-1796: Validatelist_add_labelon Prompttemplateinput
ThePromptInputtemplate now has a list label. Since it isn’t a list, verify that the label is either hidden or remove it to reduce metadata noise.
2091-2093: Approvereal_time_refreshon OpenAI model selector
Enabling"real_time_refresh": truefor themodel_namedropdown improves UX by updating options dynamically. Ensure no performance regressions occur.src/backend/base/langflow/initial_setup/starter_projects/Hybrid Search RAG.json (10)
432-432: Consistent toggle default for ChatInput.sender
Adding"toggle": falseensures the Sender Type dropdown respects the unified toggle pattern across inputs.
1062-1066: Enable dynamic refresh & toggle for OpenAIModel.model_name
"real_time_refresh": truekeeps the model list current;"toggle": falsematches the default toggle state for dropdowns.
1531-1533: Hide collection selector until database is chosen
Setting"show": falseand"toggle": falseforcollection_namecorrectly hides it by default.
1656-1656: Disable toggle for AstraDB.database_name
Adding"toggle": falsealigns the database selector with other non-toggleable inputs.
1782-1782: Disable toggle for AstraDB.keyspace
"toggle": falseprovides consistent UI behavior for the keyspace dropdown.
1804-1804: Hide lexical_terms by default
"show": falseensures the lexical terms input only appears when relevant.
1847-1849: Update default visibility for reranker
"show": falsehides the reranker until hybrid search is active;"toggle": trueallows it to be enabled.
1874-1874: Disable toggle for search_method selector
Adding"toggle": falsemaintains consistency with other dropdown inputs.
2371-2371: Add toggle default for ChatOutput.sender
Applying"toggle": falsealigns ChatOutput dropdown metadata with the new UI schema.
2606-2606: Ensure ParserComponent.pattern is visible
Adding"show": trueguarantees the template field is displayed by default in Parser mode.src/backend/base/langflow/initial_setup/starter_projects/Research Translation Loop.json (9)
330-330: Addtoggleflag tosearch_typeinput
Consistently disabling the UI toggle for dropdown inputs ensures unified behavior across starter projects.
557-557: Includetoggleflag inmodel_nameinput
This matches the standardized dropdown configuration applied elsewhere.
606-606: Disable copy onsystem_messagemultiline input
Addingcopy_field: falseprevents unintended clipboard actions, aligning with other multiline fields.
958-979: Switch ChatOutputinput_valuetoHandleInputwith typeother
UsingHandleInputandothercorrectly reflects the component’s expected handle-based inputs.
1000-1000: Addtoggle: falseto ChatOutputsenderdropdown
Ensures dropdown inputs have consistent toggle behavior.
1265-1265: Mark ChatInputfilesas temporary
Thetemp_file: trueflag correctly signals ephemeral file handling in the UI.
1274-1274: Disable copy on ChatInputinput_valuefield
copy_field: falsealigns with the pattern for multiline inputs to avoid accidental content copying.
1312-1312: Addtoggleflag to ChatInputsenderdropdown
Standardizes the dropdown UI across components.
1606-1606: Make ParserComponentpatterninput visible by default
Changingshowtotruealigns with the requirement to display the template field when needed.src/backend/base/langflow/initial_setup/starter_projects/Custom Component Maker.json (6)
339-346: Hide and label the message input for list support
You've added"list_add_label": "Add More"and set"show": falseon the message field—good for keeping the UI clean and conveying multi-entry intent. Ensure downstream logic handles an initially hidden field correctly.
380-386: Enhance “Number of Messages” input with list UI
Adding"list_add_label": "Add More"alongside hiding this advanced input by default aligns with the Memory component’s UX pattern. No concerns here.
395-410: Enable dropdown metadata for order input
New properties—"dialog_inputs": {},"options_metadata": [], and"toggle": false—prepare this field for richer frontend behaviors. This aligns with other components’ patterns.
452-458: Standardize list label and visibility forsender_name
Adding"list_add_label": "Add More"and hiding the field by default keeps it consistent with other hidden advanced inputs. Looks good.
500-502: Add list label tosession_idinput
The"list_add_label": "Add More"addition is consistent with the Memory component’s multi-entry support. No issues.
517-531: Enhance template input with copy and list controls
You've introduced"copy_field": false,"list_add_label": "Add More", and set"show": falseon the templating field—this is a useful UI refinement. Ensure the copy behavior is correctly wired in the frontend.src/backend/base/langflow/initial_setup/starter_projects/Diet Analysis.json (6)
254-254: Addedcopy_field: false to multiline input metadata
This ensures that the original value isn’t duplicated when copying fields, aligning with other starter projects.
292-292: Addedtoggle: false to dropdown input metadata
Explicitly disabling the toggle for the sender field matches the standardized UI behavior across templates.
777-777: Addedtoggle: false to themodel_namedropdown
Consistent with other dropdowns, this flag prevents unintended UI toggling.
842-842: Addedcopy_field: false tosystem_messagemultiline input
Prevents accidental field duplication in the UI, matching the pattern for other multiline inputs.
1068-1091: Switched ChatOutputinput_valuetoHandleInputwithtype: other
This change allows the component to accept diverse upstream data types. Please verify that downstream rendering and validation logic supportsHandleInputand the updatedothertype.
1110-1110: Addedtoggle: false to ChatOutput sender dropdown
Aligns the sender field behavior with the rest of the UI configuration.src/backend/base/langflow/initial_setup/starter_projects/Basic Prompt Chaining.json (19)
268-268: Standardize list-add affordance on Prompt template inputThe addition of
"list_add_label": "Add More"to thetemplatefield in the Prompt node ensures consistent UI labeling for list inputs. This aligns with other components’ patterns.
290-290: Add list-add label to tool_placeholder in Prompt nodeIncluding
"list_add_label": "Add More"ontool_placeholdermaintains uniformity for list-enabled inputs across Prompt components.
388-396: Enhance ChatInput background_color metadataAdded
"list_add_label": "Add More"and explicitly set"tool_mode": falseforbackground_color. Confirm thattool_mode: falsedoesn’t conflict with other UI contexts.
412-419: Add list-add and disable tool mode for chat_iconThe
chat_iconfield now includes"list_add_label": "Add More"and sets"tool_mode": false. This mirrors the background_color update.
476-476: Add list-add label to files inputThe
filesFileInput now has"list_add_label": "Add More", improving the prompt for adding multiple entries.
490-504: Refine ChatInput input_value metadata
input_value(MultilineInput) now has"copy_field": false,"list_add_label": "Add More", and"tool_mode": false. Validate that disabling copy suits cases where values shouldn’t be duplicated.
514-528: Explicit dropdown metadata for ChatInput senderThe
senderDropdownInput adds"dialog_inputs": {},"options_metadata": [], and"toggle": false. These defaults prevent null-field issues and standardize toggle behavior.
544-552: Standardize list-add on sender_name
sender_namenow includes"list_add_label": "Add More", aligning with other text inputs.
567-575: Add list-add label to session_id
session_idgets"list_add_label": "Add More"to clarify how multiple entries are handled.
587-594: Question list-add on a boolean field
should_store_messagenow has"list_add_label": "Add More", but being a single boolean input, this label may be extraneous. Please verify that the list affordance is intended here.
607-614: Question list-add on a single-value color field
text_colorincludes"list_add_label": "Add More". Confirm this label is meaningful for a non-list input.
705-705: Add list-add on ChatOutput background_color
background_colorin ChatOutput now has"list_add_label": "Add More", matching ChatInput’s pattern.
729-729: Add list-add label to ChatOutput chat_icon
chat_iconfield now includes"list_add_label": "Add More", ensuring consistency across components.
749-749: Question list-add on clean_data boolean
clean_databool input now has"list_add_label": "Add More". Verify that list affordance makes sense for a toggle.
786-786: Add list-add on data_template
data_templateinput now includes"list_add_label": "Add More". Check relevancy for a single template field.
802-822: Switch ChatOutput input_value to handle-type and update metadataChanged
_input_typeto"HandleInput", updated"type"to"other", and added"list_add_label": "Add More". Ensure the frontend supportsHandleInputwithotherand the new list-add label.
833-842: Refine ChatOutput sender dropdown metadataAdded
"dialog_inputs": {},"options_metadata": [], and"toggle": falsefor thesenderfield, aligning with ChatInput’s dropdown defaults.
1531-1536: Enable real-time refresh on OpenAI model_name and explicit toggle
model_nameDropdownInput now has"real_time_refresh": trueand"toggle": false, improving dynamic model list updates without unintended toggles.
1599-1607: Disable copy and add list-add on system_message MultilineInputInserted
"copy_field": falseand"list_add_label": "Add More"forsystem_message. Confirm that disabling copy aligns with expected UX for system messages.src/backend/base/langflow/initial_setup/starter_projects/Text Sentiment Analysis.json (3)
1057-1061: Added real_time_refresh and toggle properties to model_name dropdowns
Themodel_nameDropdownInputnow includes"real_time_refresh": trueand"toggle": falsefor immediate UI updates and consistent rendering. This aligns with the broader pattern of dynamic dropdown behavior across starter projects.Also applies to: 1450-1454
1125-1125: Controlled copy behavior on system_message inputs
Introducing"copy_field": falseonsystem_messagemultiline inputs prevents unintended copying in the UI. This enhances user control without impacting data flow.Also applies to: 1517-1517
2351-2351: Disabled toggle on sender dropdown in ChatOutput
ThesenderDropdownInputnow sets"toggle": false, ensuring dropdown consistency and matching other UI metadata updates.Also applies to: 2659-2659
src/backend/base/langflow/initial_setup/starter_projects/Search agent.json (10)
462-462: Addtemp_fileflag to FileInput
The new"temp_file": truesetting correctly enables ephemeral file uploads in the ChatInput component.
471-471: Disable copy button on multiline input
Adding"copy_field": falseto theinput_valuefield prevents unintended duplication, aligning with other templates.
509-509: Standardize toggle setting on DropdownInput
The"toggle": falseflag for thesenderdropdown ensures consistent UI behavior across inputs.
1179-1179: Applytoggle: falseto model provider dropdown
Consistent use of"toggle": falseon theagent_llmdropdown aligns with other starter projects.
1374-1374: Hide internalmessagefield in Agent template
Changing"show": falsefor themessageproperty cleans up the UI by hiding this internal field.
1450-1450: Disable toggle on model name field
Adding"toggle": falseformodel_namematches the standardized input metadata.
1466-1466: Hiden_messagesinput in Agent template
Setting"show": falseforn_messageshides this advanced setting from end users.
1535-1546: Convert Agentsenderfrom DropdownInput to MessageTextInput
Switching toMessageTextInputwith"input_types": ["Message"],"list": false, and"list_add_label": "Add More"provides a free-form sender entry that matches other templates.
1578-1578: Hide Agentsender_namefield by default
The"show": falseflag cleans up the UI by removing this optional input from the main view.
1704-1704: Hidetemplatefield in Agent template
Applying"show": falseto thetemplateproperty declutters the UI for typical use cases.src/backend/base/langflow/initial_setup/starter_projects/Document Q&A.json (6)
207-438: Approve ChatInput UI metadata enhancementsAdded
list_add_label,tool_mode, andcopy_fieldproperties across ChatInput template fields for unified list management and tool-mode toggles. No issues detected.
524-559: Approve ChatOutput UI metadata enhancementsChatOutput component fields now include consistent
list_add_labelandtool_modeflags to align with updated backend field‐update semantics.
877-1012: Approve File component UI metadata enhancementsFileComponent inputs (
path,file_path, etc.) have been enriched withlist_add_label,temp_file, and associated metadata flags. UI behavior remains consistent and no logic changes.
1188-1201: Approve Prompt component UI metadata enhancementsPromptInput entries now define
list_add_labelandtool_modeto support selective preservation during template sync. Configuration is correct and low‐risk.
1488-1499: Approve OpenAIModel UI metadata dynamic refresh settingsThe
model_nameDropdownInput now usesreal_time_refreshfor instant option updates and maintainstoggle/tool_modeconsistency.
1742-1751: Approve Parser component UI metadata enhancementsParser inputs (
pattern,mode, etc.) includelist_add_labelandreal_time_refreshflags, standardizing UX without altering parsing logic.src/backend/base/langflow/initial_setup/starter_projects/Sequential Tasks Agents.json (1)
434-486: DropdownInput enhancements for model provider (agent_llm)
The new"dialog_inputs": {}, enrichedoptions_metadata(icons per provider), and explicit"toggle": falseimprove UI consistency and iconography in the dropdown. These align with updates in other starter projects. Ensure that each entry inoptions_metadatacorrectly maps to its provider key.src/backend/base/langflow/initial_setup/starter_projects/Pokédex Agent.json (17)
254-254: Disable copy_field on ChatInputinput_value.Consistently prevents the copy icon from appearing for multi-line chat inputs.
292-292: Disable toggle on ChatInputsender.Stops the dropdown from being collapsible, matching the intended static sender selection.
564-564: Switch ChatOutputinput_valuetoHandleInput.Aligns with downstream handling of diverse data types (
Data,DataFrame,Message).
585-585: Update ChatOutputinput_valuetype to"other".Reflects the broader set of allowed input types beyond plain strings.
606-606: Disable toggle on ChatOutputsender.Ensures the message sender field remains fixed in the UI.
873-873: Enable real-time refresh on APIRequestbody.Improves UX by synchronizing table edits immediately when pasting cURL or switching modes.
988-988: Enable real-time refresh on APIRequestheaders.Parallel behavior to
bodyfor consistent live updates of header tables.
1070-1070: Disable toggle on APIRequestmethod.Locks the HTTP method dropdown open for immediate visibility.
934-934: Disable copy_field on APIRequestcurl_input.Prevents unnecessary copy actions on the multi-line cURL command input.
1361-1361: Disable copy_field on Agentagent_description.Removes copy affordance for the deprecated description field.
1633-1633: Hide Agent fieldmessageby default.Reduces clutter by only showing the stored message field when necessary.
1725-1725: Hide Agent fieldn_messagesby default.Keeps the message retrieval count concealed unless explicitly toggled on.
1838-1838: Hide Agent fieldsender_nameby default.Streamlines the UI by hiding advanced sender name configurations.
1914-1914: Disable copy_field on Agentsystem_prompt.Prevents accidental copying of the core system prompt instructions.
1951-1951: Disable copy_field on Agenttemplate.Removes the copy button for the templating input to avoid unintended duplication.
1964-1964: Hide Agent fieldtemplateby default.Conceals the formatting template until explicitly needed.
1794-1805: Convert Agentsenderto MessageTextInput with explicit list metadata.Switches from a dropdown to a text input allowing free-form message types, enforces
input_types: ["Message"], disables toggling, and standardizes list behavior (list: false,list_add_label: "Add More").src/backend/base/langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json (9)
271-271: Approve: Disable copy on multiline inputs
Adding"copy_field": falseto the TextInput multiline field correctly disables the copy button in the UI, aligning with the updated metadata schema across other starter projects.
514-514: Approve: Disable toggle on model_name dropdown
Introducing"toggle": falsefor themodel_namedropdown in the AnthropicModel component ensures consistent, static selection behavior per the new UI metadata conventions.
564-564: Approve: Disable copy on system_message multiline field
Adding"copy_field": falseto thesystem_messageinput correctly prevents copying of system prompt text, matching the intended UX improvements.
854-854: Approve: Disable toggle on model_name dropdown (second instance)
The second AnthropicModel node also correctly applies"toggle": falsetomodel_name, ensuring uniform dropdown behavior.
905-905: Approve: Disable copy on system_message multiline field (second instance)
Consistently applying"copy_field": falseacross both AnthropicModel definitions solidifies the UI metadata pattern.
1152-1173: Approve: Convert ChatOutput input to HandleInput
Changinginput_valuefromMessageInput/strtoHandleInput/otheraligns with the component’s signature and its usage of handle-based I/O.
1194-1194: Approve: Disable toggle on sender dropdown
Adding"toggle": falseto thesenderdropdown field in ChatOutput ensures it behaves as a standard dropdown without toggle semantics, consistent with other dropdown updates.
2179-2179: Approve: Disable copy on parser pattern field
Introducing"copy_field": falsefor the parser’spatterninput is correct and matches the UX standard for multiline inputs.
2354-2354: Approve: Disable copy on parser pattern field (second parser)
Consistent use of"copy_field": falseacross all parser instances ensures uniform behavior in the template settings.src/backend/base/langflow/initial_setup/starter_projects/Research Agent.json (11)
387-387: Add consistent "Add More" label to prompt template field
Introducinglist_add_label: "Add More"aligns this field with the new additive attribute semantics for list controls.
409-409: Enable "Add More" prompt on tool placeholder field
Addinglist_add_label: "Add More"ensures the tool-mode placeholder matches the updated UI pattern.
508-509: Define "Add More" label and explicit tool_mode on background_color input
The newlist_add_labelandtool_mode: falseproperties bring this field into alignment with the updated UI metadata.Also applies to: 515-515
531-531: Define "Add More" label and explicit tool_mode on chat_icon input
Consistent use oflist_add_labeland explicittool_mode: falseimproves metadata clarity.Also applies to: 538-538
595-595: Define "Add More" label on files input
Addinglist_add_label: "Add More"updates this list-type field to match the new UI conventions.
609-609: Add copy_field, list_add_label, and explicit tool_mode to input_value
copy_field: falsedisables the copy icon.list_add_label: "Add More"standardizes the add action.tool_mode: falseensures correct mode behavior.Also applies to: 615-615, 623-623
633-633: Add dialog_inputs, options_metadata, and toggle to sender dropdown
Introducing these empty metadata arrays aligns dropdown inputs with the enhanced UI schema.Also applies to: 642-642, 647-647
663-663: Define "Add More" label on sender_name input
Addinglist_add_labelkeeps this input in sync with the new additive attribute pattern.
686-686: Define "Add More" label on session_id input
Consistent addition oflist_add_labelmaintains UI uniformity.
706-706: Define "Add More" label on should_store_message input
Applyinglist_add_label: "Add More"standardizes the list controls across inputs.
727-727: Define "Add More" label on text_color input
This update brings the text_color field into conformity with the new UI metadata scheme.src/backend/base/langflow/initial_setup/starter_projects/Gmail Agent.json (12)
181-185: Disable copy on agent description
Added"copy_field": falseto theagent_descriptionmultiline input to prevent users from copying deprecated agent descriptions, matching the new field‐preservation semantics.
206-238: Standardize dropdown toggle for model provider
Inserted"toggle": falseon theagent_llmdropdown to disable toggle UI by default, consistent with other starter projects.
689-693: Disable copy on system prompt input
Added"copy_field": falseto thesystem_promptmultiline input to disable copying of system instructions, in line with updated UI behavior.
742-760: Refine template field metadata
- Added
"copy_field": falseto thetemplatemultiline input.- Changed
"show": falseto hide the template field by default.
These adjustments align with the selective preservation/update pattern for less frequently used fields.
500-505: Disable toggle on model name selector
Added"toggle": falseunder themodel_namedropdown to disable inline toggling, ensuring consistency with other dropdown inputs.
517-522: Hiden_messagesby default
Set"show": falsefor then_messagesinteger input to hide it unless explicitly enabled, matching the pattern for optional advanced fields.
561-566: Disable toggle on message order input
Added"toggle": falseto theorderdropdown to standardize its UI behavior alongside other dropdown inputs.
587-602: Update sender input to text with list support
- Changed
_input_typetoMessageTextInput.- Added
input_types: ["Message"],list: false, andlist_add_label: "Add More"to enable text entry of a single message sender.
This matches the refined sender configuration in other agent templates.
1003-1008: Disable copy on chat input value
Added"copy_field": falseto the ChatInput’sinput_valuemultiline input, preventing copy functionality on user-entered chat messages.
1041-1046: Disable toggle on chat input sender
Inserted"toggle": falseon the ChatInput’ssenderdropdown to align with the standardized dropdown behavior.
1315-1340: Switch ChatOutput input to handle arbitrary types
- Updated
_input_typefromMessageInputtoHandleInput.- Changed
"type": "str"to"type": "other".
This enables ChatOutput to acceptData,DataFrame, orMessageinputs per the new semantics.
1354-1360: Disable toggle on ChatOutput sender
Added"toggle": falseto the ChatOutput’ssenderdropdown, ensuring UI consistency with other dropdown fields.src/backend/base/langflow/initial_setup/starter_projects/Invoice Summarizer.json (4)
434-458: Align ChatOutput input type with component APIThe
_input_typechange toHandleInputand"type": "other"broadens accepted inputs (Data,DataFrame,Message). Please verify this matches theChatComponent’smessage_responselogic and that the UI renders correctly for heterogeneous inputs.
465-482: Disable toggle on ChatOutput sender dropdownAdding
"toggle": falseremoves the toggle control for thesenderfield. Confirm this UX decision is intentional for this starter project and consistent with other templates.
1004-1008: Disable copy for ChatInput multiline fieldThe new
"copy_field": falseprevents copying theinput_valueby default, which streamlines the initial prompt interface. This aligns with patterns in other components.
1044-1044: Disable toggle on ChatInput sender dropdownThe added
"toggle": falsehides the toggle on thesenderfield in ChatInput. Ensure this matches the desired UX and that sender selection remains clear.src/backend/base/langflow/initial_setup/starter_projects/SEO Keyword Generator.json (6)
308-308: Addedlist_add_labelto Prompttemplateandtool_placeholderThe
templateandtool_placeholderinputs in the first Prompt node now include"list_add_label": "Add More"for consistent list‐entry behavior in the UI.Also applies to: 330-330
473-474: Enabled list growth on second Prompt nodeThe second Prompt node’s
template(lines 473–474) andtool_placeholder(lines 494–496) now each include"list_add_label": "Add More", matching the metadata pattern across starter projects.Also applies to: 494-496
690-690: Upgraded ChatOutputinput_valueto HandleInput with list supportSwitched
_input_typetoHandleInput(line 690), added"list_add_label": "Add More"(line 701), and updated"type"to"other"(line 710) for the ChatOutputinput_valuefield. This change correctly handles heterogeneous inputs and supports multi-entry.Also applies to: 701-701, 710-710
717-717: Enhanced ChatOutputsenderdropdown metadataAdded
"dialog_inputs": {}(line 717),"options_metadata": [](line 726), and"toggle": false(line 731) to thesenderfield in ChatOutput to enrich frontend interactions.Also applies to: 726-726, 731-731
594-594: Consistentlist_add_labelon ChatOutput fieldsApplied
"list_add_label": "Add More"to these ChatOutput inputs:
background_color(line 594)chat_icon(line 617)clean_data(line 637)data_template(line 676)should_store_message(line 791)text_color(line 811)This ensures a uniform “Add More” affordance across list-capable fields.
Also applies to: 617-617, 637-637, 676-676, 791-791, 811-811
1001-1001: Standardized OpenAIModel input metadataAcross the OpenAIModel template, the following UI properties have been enriched:
- Added
"list_add_label": "Add More"toinput_value(1001),json_mode(1020),max_retries(1038),max_tokens(1056),model_kwargs(1081),openai_api_base(1132),seed(1151), andstream(1169).- Enabled
"real_time_refresh": true(1115) and"toggle": false(1119) on themodel_namedropdown.- Introduced
"copy_field": false(1183) onsystem_message.These changes align with the new metadata conventions for dynamic list and UI behaviors.
Also applies to: 1020-1020, 1038-1038, 1056-1056, 1081-1081, 1115-1115, 1119-1119, 1132-1132, 1151-1151, 1169-1169, 1183-1183
src/backend/base/langflow/initial_setup/starter_projects/News Aggregator.json (10)
336-336: Consistent toggle setting formodeinput
Adding"toggle": falseunder themodefield aligns with other dropdown inputs by explicitly disabling the toggle UI.
345-345: Explicitly disable copy forprompt
The"copy_field": falseflag on thepromptmultiline input prevents unwanted duplication and matches the pattern elsewhere.
985-985: Disable copy for deprecatedagent_description
Adding"copy_field": falseto theagent_descriptionmultiline input follows the new UX conventions for de-emphasized/deprecated fields.
1033-1033: Disable toggle on model provider selection
The"toggle": falseproperty on theagent_llmdropdown ensures consistent toggle behavior across provider inputs.
745-745: Disable copy for ChatInputinput_value
Adding"copy_field": falseto the ChatInput multiline field prevents copy controls and keeps the UI lean.
784-784: Disable toggle on ChatInputsender
The"toggle": falseaddition for thesenderdropdown matches the standard of hiding toggle switches for these controls.
1771-1771: Disable toggle on SaveToFilefile_format
Adding"toggle": falseto thefile_formatdropdown is consistent with disabling toggle UIs for format selectors.
1804-1810: Enrich SaveToFileinputfield with list metadata
Introducing"input_types": ["Data","DataFrame","Message"],"list": false, and"list_add_label": "Add More"on the SaveToFileinputhandle input brings it in line with other handle‐input configurations.
1826-1826: Change SaveToFileinput_typetoother
Updating theinput_typefield’s"type"from"str"to"other"properly reflects its handle‐input semantics.
2045-2045: Disable toggle on ChatOutputsender
Adding"toggle": falsefor the ChatOutputsenderdropdown maintains consistency in hiding toggle controls.src/backend/base/langflow/initial_setup/starter_projects/Meeting Summary.json (11)
586-590: Consistent copy behavior for ParseData template
Adding"copy_field": falseto thetemplateinput prevents unintended field duplication, aligning with other multiline inputs.
863-870: Enable live refresh and disable toggle on model selection
Introducing"real_time_refresh": trueensures the model dropdown updates downstream, and"toggle": falseremoves the toggle UI—both match intended UX enhancements.
931-935: Prevent copying on system message input
The"copy_field": falseflag onsystem_messagestops copying the default system prompt, consistent with other multiline inputs.
1235-1240: Add UI affordance for background color
Including"list_add_label": "Add More"onbackground_colorgives users a clear hint to add multiple entries where supported.
1257-1262: Add UI affordance for chat icon
The"list_add_label": "Add More"label onchat_iconmaintains consistency with other configurable fields.
2836-2840: Hide message count by default
Setting"show": falseforn_messagesensures it’s hidden until ‘Retrieve’ mode is active. Please verify thatupdate_build_configcorrectly toggles its visibility at runtime.
2969-2973: Prevent copying on memory template input
Adding"copy_field": falseto the Memorytemplateinput aligns with expected behavior for multiline templates.
3158-3162: Add UI affordance for file list
The"list_add_label": "Add More"on the ChatInputfilesinput clarifies how to attach multiple files.
3171-3175: Prevent copying on ChatInput text field
The"copy_field": falseflag oninput_valueupholds consistency for all multiline or text inputs.
3559-3563: Explicit temp file behavior for audio input
Defining"temp_file": falsefor theaudio_fileinput clarifies storage semantics and avoids unexpected cleanup.
3904-3908: Prevent copying on Parser template
The"copy_field": falseaddition to the Parserpatterninput ensures users can’t inadvertently duplicate the template text.src/backend/base/langflow/initial_setup/starter_projects/Blog Writer.json (15)
266-283: Enhance Prompt ‘template’ field metadata
Added_input_type,list_add_label, and explicittool_modeflags to the Prompt template input for improved UI affordances and consistency with other starter projects.
285-295: Annotate Prompt ‘tool_placeholder’ with input metadata
Including_input_typeandlist_add_labelensures the tool placeholder input renders correctly in advanced and tool-mode contexts.
393-412: Refine TextInput ‘input_value’ settings
Addingcopy_field,list_add_label, andtool_modemetadata aligns the multiline text input with standardized UI behaviors.
133-140: Change edge targetHandle type to “other” for Parser input
Switching the edge’stypefromstrtootheraccurately reflects that the ParserComponent accepts Data/DataFrame payloads, not plain strings.
490-507: Improve ChatOutput ‘background_color’ input metadata
Addedlist_add_labeland explicittool_modeflags to the background color input for UI clarity, matching patterns in other MessageTextInput fields.
513-530: Standardize ChatOutput ‘chat_icon’ input metadata
Includinglist_add_labelandtool_modeproperties ensures consistent handling of icon inputs in the chat component.
536-543: Annotate ChatOutput ‘clean_data’ Boolean input
Addinglist_add_labelcompletes the BoolInput metadata set, keeping it in line with other advanced toggles.
573-590: Enrich ChatOutput ‘data_template’ field metadata
The new_input_type,list_add_label, andtool_modeflags improve the editing experience for the data-to-text template.
595-618: Define ChatOutput ‘input_value’ as HandleInput of type “other”
Switching toHandleInputwith typeotherand addinglist_add_labelensures the chat output can accept diverse payloads (Data, DataFrame, Message).
619-637: Add metadata to ChatOutput ‘sender’ dropdown
Introducing_input_type,combobox,dialog_inputs,options_metadata, andtoggleflags standardizes the dropdown configuration for sender selection.
643-661: Annotate ChatOutput ‘sender_name’ input
Including_input_type,list_add_label, andtool_modefor the sender name field to align with other MessageTextInput definitions.
667-684: Annotate ChatOutput ‘session_id’ input
Added_input_type,list_add_label, andtool_modeto the session ID field to maintain consistency across advanced text inputs.
689-704: Standardize ChatOutput ‘should_store_message’ toggle
Addinglist_add_labeland explicittool_modeflags completes the BoolInput metadata for storing messages.
708-724: Enrich ChatOutput ‘text_color’ input metadata
Insertedlist_add_labelandtool_modeto the text color field to match the rest of the MessageTextInput inputs.
1026-1030: Enable real_time_refresh on model_name dropdown
Addingreal_time_refreshand explicittoggleflags to the OpenAI model selector ensures dynamic UI updates when switching models.src/backend/base/langflow/initial_setup/starter_projects/Image Sentiment Analysis.json (8)
323-325: Correct use oflist_add_labelfor list inputsThe
filesfield is configured as a list ("list": true), so adding"list_add_label": "Add More"is appropriate here.
336-338: Appropriatecopy_fieldon MultilineInputThe
input_valueuses aMultilineInput, so explicitly setting"copy_field": falseis valid to define its copy behavior.
361-363: Addeddialog_inputsenhances dropdown metadataIncluding an empty
"dialog_inputs": {}aligns this dropdown with the standardized UI schema for dialog-based selects.
370-372: Addedoptions_metadataaligns with schema patternProviding
"options_metadata": []ensures consistency with other dropdown inputs that leverage metadata for each option.
375-377: Explicittoggle: falseclarifies dropdown behaviorDefining
"toggle": falsemakes the intended UI interaction explicit and matches existing dropdown semantics.
1211-1213: Enablereal_time_refreshon model_name dropdownAdding
"real_time_refresh": trueensures the model options update dynamically when the API base changes.
1215-1217: Explicittoggle: falseclarifies dropdown UIDefining
"toggle": falseformodel_nameclearly indicates its dropdown behavior.
1279-1281: Appropriatecopy_fieldon MultilineInputThe
system_messageuses aMultilineInput; specifying"copy_field": falseis valid.src/backend/base/langflow/initial_setup/starter_projects/Instagram Copywriter.json (5)
376-384: Confirm explicittool_mode: falsesemantics
Multiple inputs now have"tool_mode": false, preventing them from appearing in tool mode. Verify that none of these inputs are required in tool-mode flows, and update the flag only where intended.
438-445: Approvelist_add_labelfor true-list inputs
On the"files"input ("list": true), the addition of"list_add_label": "Add More"correctly enhances multi-file UX.
452-470: Evaluatecopy_fieldoverride on multiline inputs
The multiline inputs gain"copy_field": falseandlist_add_labeleven when not list-enabled. Confirm that disabling the copy button aligns with UX goals and that the label logic is consistent.
478-493: Review dropdown metadata defaults
For the"sender"field, you’ve addeddialog_inputs: {}, an emptyoptions_metadataarray, and"toggle": false. Ensure that passing empty/default metadata will not break downstream UI code expecting populated entries.
2010-2038: Verify slider configuration for temperature
The"temperature"input has been converted to aSliderInputwith new keys (range_spec,slider_buttons, etc.). Confirm the slider’s min/max/step, button options, and icons match design requirements.src/backend/base/langflow/initial_setup/starter_projects/Travel Planning Agents.json (7)
254-293: Standardize ChatInput template fields with "Add More" and disabled tool mode
The additions oflist_add_label: "Add More"andtool_mode: falsetobackground_colorandchat_iconalign with other starter project conventions.
341-380: Enhance files and input_value ChatInput metadata
Addinglist_add_label: "Add More", disablingtool_mode, and settingcopy_field: falsefor thefilesandinput_valuefields improves list UX consistency and prevents unwanted copying.
380-405: Enable dynamic entries for ChatInput sender fields
The inclusion ofdialog_inputs,options_metadata,toggle: false, andtool_mode: falseproperties on thesenderdropdown paves the way for future extensibility and keeps the UI consistent across components.
414-491: Apply "Add More" and disable tool mode across ChatInput advanced fields
Consistentlist_add_labelandtool_mode: falseflags onsender_name,session_id,should_store_message, andtext_colormaintain template uniformity and expected user interaction patterns.
565-611: Standardize ChatOutput template with "Add More" affordance
Introducinglist_add_label: "Add More"tobackground_colorandchat_iconin ChatOutput mirrors the ChatInput pattern and enhances the consistency of the UI.
668-696: Update ChatOutput input_value to HandleInput for flexible types
Switching_input_typetoHandleInputand changingtypeto"other", along with addinglist_add_label, enables the field to accept multiple schemas (Data,DataFrame,Message) and improves UX.
695-721: Refine ChatOutput sender dropdown metadata
Adding emptydialog_inputs,options_metadata, disablingtoggle, and ensuringtool_mode: falsefor thesenderdropdown aligns it with the new input metadata standards.src/backend/base/langflow/initial_setup/starter_projects/Youtube Analysis.json (17)
383-390: Aligncolumn_nameinput to message type.
Updated_input_typetoMessageTextInputand added"input_types": ["Message"]forcolumn_nameinBatchRunComponent—this ensures the field only accepts message-style inputs, matching frontend expectations.
488-491: Prevent unintended copying on multilinesystem_message.
Introduced"copy_field": falsefor thesystem_messageinput inBatchRunComponenttemplate to stop automatic duplication of large instruction blocks.
687-690: Disable toggle forsort_by.
Added"toggle": falseon thesort_bydropdown inYouTubeCommentsComponentto enforce standard dropdown behavior and avoid confusion with toggle controls.
975-979: Enhancemodel_namedynamic loading.
Enabled"real_time_refresh": trueand set"toggle": falseformodel_nameinOpenAIModelComponentso that model options refresh on API key changes while preserving dropdown semantics.
1041-1044: Prevent copy onsystem_messagein OpenAIModel.
Added"copy_field": falsefor thesystem_messagefield in the OpenAI model component, keeping multiline content safe from accidental duplication.
1078-1080: Constraintemperatureslider to [0.0,1.0].
Adjusted the slider’smaxto 1.0 and explicitly setminto 0.0 for thetemperatureinput inOpenAIModelComponent, aligning with the valid API range.
1218-1221: Lock copy onagent_description.
Inserted"copy_field": falsefor the deprecatedagent_descriptioninAgentComponentto control multiline input behavior consistently.
1461-1464: Hide internalmessageinput in Agent.
Set"show": falsefor themessagefield within theAgentnode template to declutter the UI and surface only essential controls.
1553-1556: Hiden_messagesby default.
Changed"show": falseonn_messagesinAgentComponenttemplate, removing non-critical settings from the primary view.
1624-1635: Standardizesenderinput in Agent.
Switched toMessageTextInputwith"input_types": ["Message"]and ensured"list": false/"list_add_label"consistency for thesenderfield, improving message-based filtering.
1725-1727: Prevent copy onsystem_prompt.
Added"copy_field": falseforsystem_promptin theAgentComponenttemplate, avoiding accidental duplication of instructions.
1778-1780: Lock copy ontemplatein Prompt node.
Introduced"copy_field": falsefor the multilinetemplateinput inPromptComponent, ensuring large prompt templates aren’t auto-copied.
2213-2235: Broadeninput_valuehandling in ChatOutput.
Changed_input_typefromMessageInputtoHandleInputand updated"type": "other"forinput_value, allowing the output component to acceptData,DataFrame, orMessageseamlessly.
2595-2599: Disable toggle fortranslation.
Added"toggle": falseto thetranslationdropdown inYouTubeTranscriptsComponent, keeping the UI consistent with other dropdown inputs.
2606-2608: Prevent copy on transcripturl.
Inserted"copy_field": falsefor theurlfield inYouTubeTranscriptsComponent, avoiding unintentional duplication of video URLs.
3168-3171: Disable toggle ondefault_route.
Set"toggle": falsefordefault_routeinConditionalRouter, preserving expected dropdown semantics in conditional paths.
3421-3422: Prevent copy onpatternin Parser.
Added"copy_field": falsefor thepatternmultiline input inParserComponentto avoid accidental duplication of template strings.src/backend/base/langflow/initial_setup/starter_projects/Basic Prompting.json (15)
5-11: Explicit edge metadata additions look good.
Settinganimatedandselectedflags explicitly on edges improves UI consistency and matches other starter projects.Also applies to: 25-31
33-40: Consistent metadata on additional edges.
The addeddataType,fieldName, and complex edgeidstructures align with the newLanguageModelComponentpattern and maintain consistency across the graph.Also applies to: 45-52, 53-59, 61-69, 73-82
96-105: Node ID and version bump are correct.
Updatingidto match the generated identifier and bumpinglf_versionto1.4.3ensures the ChatInput node aligns with the updated component definitions.Also applies to: 119-119
151-182: Repeated input/template metadata additions.
These changes uniformly introducelist_add_label,tool_mode,copy_field, and other UI flags across ChatInput fields. They follow the pattern established in other starter projects.Also applies to: 206-214, 238-246, 250-259, 266-269, 272-280, 283-292, 296-305, 319-327, 329-337, 342-350
389-393: Adjusted node width for ChatInput.
Settingwidthto320matches the standard node size for a uniform layout.
410-430: Prompt node version bump and UI metadata.
Thelf_versionupdate and addedlist_add_labelensure the Prompt node aligns with v1.4.3 and the new UI conventions.Also applies to: 478-478
761-784: ChatOutputHandleInputupdate is correct.
Switchinginput_valuetoHandleInputwithtype: "other"aligns with the new handling of Data/DataFrame/Message inputs.Also applies to: 785-785
906-913: Visual tweaks on ChatOutput node.
The selection state and measured dimensions updates are standard UI adjustments and look consistent.Also applies to: 919-920
937-947: LanguageModelComponent field order updated.
Introducingprovider,model_name, andapi_keyin the correct order supports the multi-provider pattern in the UI.
998-1003: SecretStrInput enhancements.
The newinfomessage andreal_time_refreshflag on theapi_keyfield improve usability when switching providers.Also applies to: 1009-1009
1020-1032: Multi-provider imports in code template.
The code correctly imports and configuresChatOpenAI,ChatAnthropic, andChatGoogleGenerativeAI, enabling seamless provider switching.
1089-1102: Provider dropdown options metadata.
Addingoptions_metadatawith provider icons enhances the selector UX and aligns with new component inputs.Also applies to: 1103-1113
1198-1205: Node rendering and positioning tweaks.
Adjustments toshowNode, dimensions, and position are minor UI refinements.Also applies to: 1207-1208
1215-1217: Viewport settings updated.
Tweakingzoomand coordinates is expected when repositioning the graph and does not introduce regressions.
1224-1224:last_tested_versionbump is correct.
Updating to1.4.3aligns the project metadata with the new component versions.src/backend/base/langflow/initial_setup/starter_projects/SaaS Pricing.json (6)
279-281: Addedlist_add_labelto Prompttemplatefield
The"Add More"label standardizes multi-entry UI across starter projects.
301-303: Standardizedlist_add_labelon Prompttool_placeholder
Consistent with the new metadata conventions for tool-mode inputs.
482-620: Enhanced Chat Output input metadata
Thedata_template,input_value,sender,sender_name,session_id,should_store_message, andtext_colorfields were all updated withlist_add_label, and dropdowns now includedialog_inputs/options_metadata. Confirm these additions render correctly for both list and non-list inputs.
760-788: Refined Agentadd_current_date_tooland deprecatedagent_description
Addedlist_add_labelfor uniformity andcopy_field: falseto mark deprecation. These changes align with the updated field-preservation semantics.
803-858: Augmented Agent LLM dropdown metadata
Introduceddialog_inputs: {}, expandedoptions_metadatawith provider icons, and settoggle: falsefor consistency. This enhances UI clarity for model selection.
1538-1564: Aligned Calculator component metadata
Theexpressioninput andtools_metadatanow includelist_add_label: "Add More", matching the standard across other components.src/backend/base/langflow/initial_setup/starter_projects/Vector Store RAG.json (2)
346-359: Validate 'list_add_label' usage on non-list inputs & confirm 'tool_mode' defaults
These fields, like"background_color", have"list": falsebut define alist_add_label. Confirm if this label should only appear when lists are enabled. Also, adding"tool_mode": falseis consistent with disabling tool-mode UX—ensure this aligns globally.
433-4861: The subsequent changes are repetitive metadata additions (list_add_label,tool_mode,copy_fieldtoggles, etc.) that follow the same pattern applied across many fields. No further per-segment comments are necessary.src/backend/base/langflow/initial_setup/starter_projects/Market Research.json (10)
233-240: Consistent UI affordance for background_color input
You’ve addedlist_add_label: "Add More"and explicitly settool_mode: falseto thebackground_colorinput. This aligns it with other inputs — good for consistency.
256-263: Consistent UI affordance for chat_icon input
Similar tobackground_color, you’ve addedlist_add_label: "Add More"and settool_mode: falseon thechat_iconinput. This maintains uniform behavior.
318-321: Enable list label for Files input
Addinglist_add_label: "Add More"tofilesclarifies the UI affordance for list inputs. Looks good.
332-349: Enhance input_value metadata
You’ve introducedcopy_field: false,list_add_label: "Add More", andtool_mode: falseto theinput_valuefield. This ensures copy behavior is controlled and UI labels are consistent.
385-395: Consistent UI affordance for sender_name input
Addinglist_add_label: "Add More"and explicitly settingtool_mode: falseimproves consistency across inputs.
409-419: Consistent UI affordance for session_id input
The addition oflist_add_label: "Add More"andtool_mode: falseis consistent with the design pattern.
430-438: Consistent UI affordance for should_store_message input
Includinglist_add_label: "Add More"andtool_mode: falseensures uniform controls across boolean inputs.
450-460: Consistent UI affordance for text_color input
Thelist_add_label: "Add More"andtool_mode: falseflags here mirror other message-style inputs.
549-552: Enable list label on ChatOutput background_color
Addinglist_add_label: "Add More"to the ChatOutput’sbackground_colortemplate enhances clarity.
571-576: Enable list label on ChatOutput chat_icon
Thelist_add_label: "Add More"on ChatOutput’schat_icontemplate keeps the UI consistent.src/backend/base/langflow/initial_setup/starter_projects/Memory Chatbot.json (17)
208-209: Approve: Added list_add_label for background_color in ChatInput template.This aligns the ChatInput UI with other components by providing a clear “Add More” affordance for list inputs.
231-232: Approve: Added list_add_label for chat_icon in ChatInput template.Consistent with the list input pattern across the UI.
294-296: Approve: Added list_add_label for files in ChatInput template.Ensures uniform list control behavior.
308-310: Approve: Explicitly set copy_field to false for input_value in ChatInput.Clarifies that the input value isn’t inadvertently copied elsewhere.
314-316: Approve: Added list_add_label for input_value in ChatInput template.
333-334: Approve: Enhanced sender dropdown in ChatInput with dialog_inputs, options_metadata, and toggle flags.These additions improve configurability and future extensibility.
Also applies to: 342-347
526-527: Approve: Added list_add_label for background_color in ChatOutput template.
549-550: Approve: Added list_add_label for chat_icon in ChatOutput template.
568-570: Approve: Added list_add_label for clean_data in ChatOutput template.
607-609: Approve: Added list_add_label for data_template in ChatOutput template.
621-623: Critical: Updated input_value type from MessageInput to HandleInput in ChatOutput.Verify that all downstream logic and renderers handle the new HandleInput type correctly, including serialization and validation.
633-635: Approve: Added list_add_label for input_value in ChatOutput template.
649-650: Approve: Enhanced sender dropdown in ChatOutput with dialog_inputs, options_metadata, and toggle flags.Also applies to: 658-659, 663-664
937-939: Approve: Added list_add_label for external memory input in ChatOutput template.
999-1005: Approve: Standardized list_add_label, show, and tool_mode flags for n_messages input in ChatOutput.
1019-1024: Approve: Added options_metadata and toggle flags for order dropdown in ChatOutput template.
881-905: Approve: Expanded Memory component outputs to include both text (messages_text) and dataframe formats.This aligns with the new dual-output semantics and enriches template functionality.
src/backend/base/langflow/initial_setup/starter_projects/Price Deal Finder.json (20)
274-277: Addtemp_fileflag to ChatInputfiles
The new"temp_file": trueensures uploaded files are treated as temporary in the Playground, preventing unintended persistence.
282-287: Disable copy on ChatInputinput_value
Adding"copy_field": falseprevents users from copying the entire input value, matching other multiline fields’ behavior.
321-324: Hide toggle for ChatInputsender
Setting"toggle": falseremoves the toggle UI on the dropdown, simplifying the sender selection.
594-616: Switch ChatOutputinput_valueto HandleInput
Changing_input_typeto"HandleInput"and"type"to"other"allows ChatOutput to accept multiple data sources consistently.
635-638: Hide toggle for ChatOutputsender
Disabling the toggle on thesenderdropdown keeps the UI consistent with other components.
1028-1032: Hide toggle for TavilySearchComponentsearch_depth
Adding"toggle": falsestreamlines the component by removing an unnecessary toggle control.
1056-1058: Hide toggle for TavilySearchComponenttime_range
Consistency fix: thetime_rangedropdown no longer shows a toggle switch.
1176-1180: Hide toggle for TavilySearchComponenttopic
Disabling the toggle in the topic selector simplifies the UI.
1698-1701: Disable copy on Agentagent_description
The deprecated multilineagent_descriptionnow has"copy_field": falseto match other fields.
1748-1750: Hide toggle for Agentagent_llm
Removing the toggle from the model provider dropdown keeps the interface clean.
2005-2020: Hide toggle for Agentmodel_name
The model name dropdown no longer displays a toggle, aligning with other dropdown inputs.
2030-2033: Hide Agentn_messagesfield
Changing"show": falseconceals this internal setting from end users.
1942-1945: Hide Agentmessageoutput field
The stored message output is now hidden with"show": false, preventing confusion in the UI.
2105-2115: Convert Agentsenderto MessageTextInput
Switching_input_typeto"MessageTextInput"with proper"input_types": ["Message"],"list": false, and"list_add_label": "Add More"ensures consistency with other message fields.
2143-2146: Hide Agentsender_namefield
Setting"show": falseremoves the sender name input from the default view.
2206-2208: Disable copy on Agentsystem_prompt
Adding"copy_field": falseavoids unintended duplication of the system prompt.
2260-2261: Disable copy on Agenttemplate
The multilinetemplateinput now uses"copy_field": falsefor consistency.
2272-2274: Hide Agenttemplatefield
Concealing thetemplateinput by setting"show": falsesimplifies the user interface.
2078-2081: Hide toggle for Agentorder
Removing the toggle switch from the order dropdown keeps controls uniform.
2171-2176: Hide toggle for Agentsender_type
Disabling the toggle on the sender type selector maintains consistency.src/backend/base/langflow/initial_setup/starter_projects/Financial Agent.json (11)
477-477: Disable copy for ChatInput multiline value
Adding"copy_field": falseto theinput_valuefield disables the copy button. Ensure this is applied consistently for all multiline inputs where copying should be restricted.
515-515: Disable toggle UI on ChatInput sender dropdown
The added"toggle": falseon thesenderfield ensures the dropdown isn’t rendered as a toggle. Good for consistency with other dropdown inputs.
909-909: Disable toggle on TavilySearchComponent search depth
The"toggle": falseaddition onsearch_depthaligns this dropdown with the new UI defaults.
935-935: Disable toggle on TavilySearchComponent time range
Turning off the toggle UI fortime_rangekeeps the dropdown behavior consistent across the component.
1503-1525: Use HandleInput and type “other” for ChatOutput input_value
Switching_input_typetoHandleInputand setting"type": "other"correctly configures the forward link connector for ChatOutput.
1545-1545: Disable toggle on ChatOutput sender dropdown
Adding"toggle": falsehere maintains consistency with dropdown styling and behavior in ChatOutput.
2803-2803: Hide the internal “message” field in Agent UI
The flag"show": falseon themessageinput prevents exposing internal storage fields in the UI. Confirm this field is only used programmatically.
3067-3067: Disable copy for Agent system_message multiline input
Applying"copy_field": falseto thesystem_messagefield is correct to prevent accidental duplication of what should be an immutable system instruction.
3105-3106: Restrict Agent temperature slider range
Updating thetemperaturerange_specto amaxof 1.0 andminof 0.0 aligns the slider with standard softmax sampling bounds.
3308-3312: Disable toggle on Agent model_name dropdown
The new"toggle": falseentry onmodel_nameprevents it being rendered as a toggle switch, consistent with other dropdowns.
3138-3138: Hide Agent template field in the UI
Setting"show": falseon thetemplateinput hides this field from end-users while still using it internally.src/backend/base/langflow/initial_setup/starter_projects/Financial Report Parser.json (9)
361-365: Add UI metadata to model_name DropdownInputAdding
real_time_refresh: trueandtoggle: falsefor themodel_namedropdown ensures it updates dynamically and follows the project-wide toggle convention.
429-429: Disable copy on system_message MultilineInputSetting
"copy_field": falsefor thesystem_messagefield correctly prevents users from copying its contents, matching other multiline inputs.
676-697: Switch ChatOutput input_value to HandleInput with type "other"Changing
_input_typefrom"MessageInput"to"HandleInput"andtypeto"other"broadens accepted input types and aligns with the component’s design.
718-719: Add toggle flag to sender DropdownInput in ChatOutputIncluding
"toggle": falsefor thesenderdropdown standardizes toggle behavior across all dropdown inputs.
994-994: Disable copy on ChatInput input_value MultilineInputAdding
"copy_field": falseto theChatInput’sinput_valuefield correctly prevents copying input text in the UI.
1032-1032: Add toggle flag to sender DropdownInput in ChatInputSetting
"toggle": falsefor thesenderdropdown inChatInputmaintains consistency with other dropdown components.
1429-1429: Disable copy on StructuredOutput system_prompt MultilineInputApplying
"copy_field": falseto thesystem_promptmultiline input aligns its behavior with other prompt fields.
1570-1570: Enable real_time_refresh on Parser mode TabInputThe
"real_time_refresh": trueflag for themodeTabInput ensures the UI updates pattern visibility dynamically when switching modes.
1581-1581: Disable copy on Parser pattern MultilineInputAdding
"copy_field": falseto thepatternfield prevents direct copying of template text, consistent with other multiline inputs.
| "_input_type": "MessageTextInput", | ||
| "advanced": true, | ||
| "combobox": false, | ||
| "display_name": "Sender", | ||
| "dynamic": false, | ||
| "info": "The sender of the message. Might be Machine or User. If empty, the current sender parameter will be used.", | ||
| "input_types": [ | ||
| "Message" | ||
| ], | ||
| "list": false, | ||
| "list_add_label": "Add More", |
There was a problem hiding this comment.
Input type mismatch on sender field
Switched _input_type to MessageTextInput but retained an options list—MessageTextInput doesn't consume options. This will break the UI. Either revert to DropdownInput or remove the options array.
🤖 Prompt for AI Agents
In src/backend/base/langflow/initial_setup/starter_projects/Custom Component
Maker.json around lines 417 to 427, the sender field uses _input_type
"MessageTextInput" but still includes an options list, which is incompatible and
breaks the UI. To fix this, either change _input_type back to "DropdownInput" to
match the options list or remove the options array entirely if you want to keep
"MessageTextInput".
| updated_field = existing_field.copy() | ||
|
|
||
| # Always preserve user-specific attributes | ||
| for attr in USER_PRESERVED_ATTRIBUTES: | ||
| if attr in existing_field: | ||
| updated_field[attr] = existing_field[attr] | ||
|
|
There was a problem hiding this comment.
🛠️ Refactor suggestion
Use deepcopy when cloning a field
updated_field = existing_field.copy() is only a shallow clone; nested dictionaries/lists still alias the original object inside project_data.
Sub-attribute updates later in the pipeline will silently mutate the original template, causing surprising side-effects across nodes that share references.
- updated_field = existing_field.copy()
+ from copy import deepcopy
+ updated_field = deepcopy(existing_field)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| updated_field = existing_field.copy() | |
| # Always preserve user-specific attributes | |
| for attr in USER_PRESERVED_ATTRIBUTES: | |
| if attr in existing_field: | |
| updated_field[attr] = existing_field[attr] | |
| from copy import deepcopy | |
| updated_field = deepcopy(existing_field) | |
| # Always preserve user-specific attributes | |
| for attr in USER_PRESERVED_ATTRIBUTES: | |
| if attr in existing_field: | |
| updated_field[attr] = existing_field[attr] |
🤖 Prompt for AI Agents
In src/backend/base/langflow/initial_setup/setup.py around lines 83 to 89,
replace the shallow copy of existing_field with a deep copy to avoid shared
references in nested structures. Import the deepcopy function from the copy
module and use updated_field = deepcopy(existing_field) instead of updated_field
= existing_field.copy(). This ensures that nested dictionaries and lists are
fully cloned, preventing unintended mutations of the original template data.
There was a problem hiding this comment.
is this relevant?
There was a problem hiding this comment.
In this particular helper the shallow .copy() is adequate:
• existing_field comes from project_data_copy, which was already created with a deepcopy of the whole project. Every node therefore has its own independent field dictionary to start with.
• Inside update_field_with_preservation we never mutate nested structures in-place. When a value needs to change we overwrite the whole attribute (updated_field[attr] = …) rather than editing sub-keys of a nested dict or list.
• After all edits we assign the rebuilt updated_field back to node_data["template"][field_name], so no other reference keeps pointing to the earlier object.
Because no shared nested references survive beyond the function call, a deep copy would add overhead without preventing any real risk of accidental aliasing.
So the suggestion, while generally good defensive practice, doesn’t materially change behaviour here.
| "list": false, | ||
| "list_add_label": "Add More", | ||
| "load_from_db": false, |
There was a problem hiding this comment.
Remove list_add_label from non-list inputs
The sender_name field is singular ("list": false); drop the list_add_label property.
🤖 Prompt for AI Agents
In src/backend/base/langflow/initial_setup/starter_projects/Image Sentiment
Analysis.json around lines 391 to 393, the field "sender_name" is marked as
non-list with "list": false, but it incorrectly includes the "list_add_label"
property. Remove the "list_add_label" property from this field since it only
applies to list inputs.
There was a problem hiding this comment.
Do not review JSON since they are autogenerated.
There was a problem hiding this comment.
@edwinjosechittilappilly Understood—JSON files will be excluded from future review comments.
If you’d like CodeRabbit to ignore them automatically, you can also add a path_filters rule (e.g. "*.json": { "review": false }) to your project configuration.
✏️ Learnings added
Learnt from: edwinjosechittilappilly
PR: langflow-ai/langflow#8504
File: src/backend/base/langflow/initial_setup/starter_projects/Image Sentiment Analysis.json:391-393
Timestamp: 2025-06-12T15:25:01.043Z
Learning: The repository owner prefers CodeRabbit not to review or comment on JSON files because they are autogenerated.
Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.
| "list_add_label": "Add More", | ||
| "load_from_db": false, | ||
| "name": "session_id", |
There was a problem hiding this comment.
Remove list_add_label from non-list inputs
The session_id field is singular; list_add_label is not applicable here.
🤖 Prompt for AI Agents
In src/backend/base/langflow/initial_setup/starter_projects/Image Sentiment
Analysis.json around lines 415 to 417, remove the "list_add_label" property from
the "session_id" field because it is a singular input and "list_add_label" only
applies to list inputs.
| "list_add_label": "Add More", | ||
| "load_from_db": false, | ||
| "name": "text_color", |
There was a problem hiding this comment.
Remove list_add_label from non-list inputs
The text_color field is singular; list_add_label should not be present.
🤖 Prompt for AI Agents
In src/backend/base/langflow/initial_setup/starter_projects/Image Sentiment
Analysis.json around lines 456 to 458, remove the "list_add_label" property from
the "text_color" field because it is not a list input. This property is only
applicable to list inputs, so deleting it will correct the configuration.
| "list": false, | ||
| "list_add_label": "Add More", | ||
| "load_from_db": false, | ||
| "name": "template", |
There was a problem hiding this comment.
Remove list_add_label from non-list inputs
The Prompt component’s template input is singular; list_add_label should not be applied.
🤖 Prompt for AI Agents
In src/backend/base/langflow/initial_setup/starter_projects/Image Sentiment
Analysis.json around lines 914 to 917, remove the "list_add_label" property from
the input named "template" because it is not a list input. Since "list" is
false, "list_add_label" is not applicable and should be deleted to avoid
confusion or errors.
| "list": false, | ||
| "list_add_label": "Add More", | ||
| "load_from_db": false, |
There was a problem hiding this comment.
Remove list_add_label from non-list inputs
The background_color field in ChatOutput is not a list; this label should be removed.
🤖 Prompt for AI Agents
In src/backend/base/langflow/initial_setup/starter_projects/Image Sentiment
Analysis.json around lines 554 to 556, the property "list_add_label" is set on
the "background_color" field which is not a list type. Remove the
"list_add_label" property from this field to correctly reflect that it is not a
list input.
| "list": false, | ||
| "list_add_label": "Add More", | ||
| "load_from_db": false, | ||
| "name": "background_color", | ||
| "placeholder": "", | ||
| "required": false, | ||
| "show": true, | ||
| "title_case": false, | ||
| "tool_mode": false, | ||
| "trace_as_input": true, |
There was a problem hiding this comment.
Validate list_add_label on non-list inputs
You've added "list_add_label": "Add More" to fields where "list": false. This label should only be shown for actual list inputs. Please ensure the UI logic ignores list_add_label when list is disabled or update the list flag accordingly.
🤖 Prompt for AI Agents
In src/backend/base/langflow/initial_setup/starter_projects/Instagram
Copywriter.json around lines 352 to 361, the field has "list_add_label" set
despite "list" being false. To fix this, either remove or disable the
"list_add_label" property for fields where "list" is false, or update the "list"
flag to true if the field is intended to be a list. Ensure the UI logic only
displays "list_add_label" when "list" is true.
| "zoom": 0.74075714647776 | ||
| } | ||
| }, | ||
| "description": "Perform basic prompting with an OpenAI model.", |
There was a problem hiding this comment.
Outdated top-level description.
The description still refers to an "OpenAI model" despite multi-provider support. Please update to a generic "language model" or "selected provider" to reflect the new functionality.
🤖 Prompt for AI Agents
In src/backend/base/langflow/initial_setup/starter_projects/Basic Prompting.json
at line 1220, update the top-level "description" field to replace the phrase
"OpenAI model" with a more generic term like "language model" or "selected
provider" to accurately reflect support for multiple providers instead of just
OpenAI.
Summary by CodeRabbit
New Features
Refactor
Style
Bug Fixes