feat(canvas): allow locked block outbound connections#3229
Merged
waleedlatif1 merged 2 commits intostagingfrom Feb 18, 2026
Merged
feat(canvas): allow locked block outbound connections#3229waleedlatif1 merged 2 commits intostagingfrom
waleedlatif1 merged 2 commits intostagingfrom
Conversation
- Modified isEdgeProtected to only check target block protection - Outbound connections (from locked blocks) can now be added/removed - Inbound connections (to locked blocks) remain protected - Updated notification messages and comments to reflect the change Co-authored-by: Emir Karabeg <[email protected]>
|
Cursor Agent can help with this pull request. Just |
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Collaborator
|
@cursor review |
Collaborator
|
@greptile |
Contributor
Greptile SummaryThis PR modifies the block protection logic so that only inbound connections to a locked block are protected — outbound connections from a locked block can now be freely added or removed. The change is implemented in two files:
The change is logically consistent, minimal, and all four usage points ( One minor issue found:
Confidence Score: 4/5
Important Files Changed
Flowchartflowchart TD
A[User attempts edge operation] --> B{Operation type?}
B --> |Add connection| C[onConnect called]
B --> |Remove via ReactFlow| D[onEdgesChange called]
B --> |Remove via delete button| E[handleEdgeDelete called]
B --> |Remove via keyboard| F[handleKeyDown Delete/Backspace]
C --> G[isEdgeProtected check]
D --> H[isEdgeProtected filter]
E --> I[isEdgeProtected check]
F --> J[isEdgeProtected filter]
G --> K{isBlockProtected target?}
H --> K
I --> K
J --> K
K --> |target is locked or in locked container| L[Block operation\nShow notification]
K --> |target is unlocked| M{Source check?}
M --> |OLD: also check source| N[Block if source locked]
M --> |NEW: skip source check| O[Allow operation\nEven if source is locked]
style N fill:#ffcccc
style O fill:#ccffcc
style L fill:#fff3cd
Last reviewed commit: b64d851 |
apps/sim/app/workspace/[workspaceId]/w/[workflowId]/workflow.tsx
Outdated
Show resolved
Hide resolved
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR modifies the block protection logic to allow adding and removing outbound connections from locked blocks. Previously, all connections involving a locked block (both inbound and outbound) were protected. Now, only inbound connections to a locked block are protected, ensuring that a locked block's internal state cannot be altered by external connections, while still allowing its outputs to be freely managed.
Fixes # (issue) - Assuming this is an improvement, not a specific bug fix, but linking to an issue if one exists would be good.
Type of Change
Testing
The
isEdgeProtectedfunction was updated to only consider the target block for protection. This allows operations on outbound connections from locked blocks while maintaining protection for inbound connections.Reviewers should verify:
tscandlintchecks passed.Checklist
Screenshots/Videos
Slack Thread