-
Notifications
You must be signed in to change notification settings - Fork 3.3k
fix(subflows): tag dropdown + resolution logic #2949
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Greptile SummaryFixed loop and parallel tag dropdown behavior and reference resolution logic in subflows. The tag dropdown now displays contextual tags with block name prefixes (e.g., Key improvements:
Confidence Score: 4/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant User
participant TagDropdown
participant LoopResolver
participant ParallelResolver
participant Workflow
Note over User,Workflow: Inside Loop/Parallel Subflow
User->>TagDropdown: Type < to open dropdown
TagDropdown->>Workflow: Get loop/parallel config
Workflow-->>TagDropdown: Loop/parallel metadata
TagDropdown->>TagDropdown: Build contextual tags with block name prefix<br/>(e.g., loopName.index, loopName.currentItem)
TagDropdown->>TagDropdown: Mark as isContextual=true
TagDropdown-->>User: Show tags: loopName.index, loopName.currentItem, etc.
User->>TagDropdown: Select "loopName.index"
TagDropdown->>TagDropdown: Check if isContextual=true
TagDropdown->>TagDropdown: Convert to generic format: loop.index
TagDropdown-->>User: Insert <loop.index> into input
Note over User,Workflow: Runtime Resolution
User->>Workflow: Execute workflow with <loop.index>
Workflow->>LoopResolver: Resolve <loop.index>
LoopResolver->>LoopResolver: Validate property against KNOWN_PROPERTIES
LoopResolver->>LoopResolver: Return iteration value from loopScope
LoopResolver-->>Workflow: Resolved value (e.g., 2)
Note over User,Workflow: Root Level Reference (Outside Loop)
User->>TagDropdown: Type < outside loop
TagDropdown->>Workflow: Get available blocks
Workflow-->>TagDropdown: Block outputs (e.g., loopName.results)
TagDropdown->>TagDropdown: NOT marked as contextual
TagDropdown-->>User: Show: loopName.results
User->>TagDropdown: Select "loopName.results"
TagDropdown->>TagDropdown: No conversion (not contextual)
TagDropdown-->>User: Insert <loopName.results>
Note over User,Workflow: Reserved Name Protection
User->>Workflow: Attempt to rename block to "loop"
Workflow->>Workflow: Check against RESERVED_BLOCK_NAMES
Workflow-->>User: Error: "loop" is reserved
|
Summary
Tag dropdown + Resolution logic should work correctly.
Maintain existing behavior except with tag dropdown aware of the logic: Within loop maintain selection conversion to "loop" and "parallel". Outside you don't do this conversion -- so <loopName.results> works.
Resolve root level objects correctly for subflow.
Type of Change
Testing
Tested manually
Checklist