Skip to content

Conversation

@Sg312
Copy link
Contributor

@Sg312 Sg312 commented Nov 15, 2025

Summary

Fix resolution on double <

Type of Change

  • Bug fix

Testing

Manual

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

@vercel
Copy link

vercel bot commented Nov 15, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Preview Comments Updated (UTC)
docs Skipped Skipped Nov 15, 2025 11:05pm

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Nov 15, 2025

Greptile Overview

Greptile Summary

Fixed variable reference resolution for double bracket scenarios by centralizing regex patterns and preventing matches across adjacent angle brackets.

  • Created apps/sim/executor/utils/reference-validation.ts with centralized pattern functions (createReferencePattern, createEnvVarPattern, createCombinedPattern, replaceValidReferences)
  • Changed regex pattern from <([^>]+)> to <([^<>]+)> to prevent greedy matching (e.g., <3 <real.ref> now matches as two separate references instead of one)
  • Refactored all UI components and executor modules to use centralized utilities for consistency
  • The replaceValidReferences function now validates matches using isLikelyReferenceSegment before replacement, ensuring only valid variable references are processed

Confidence Score: 5/5

  • Safe to merge - well-architected refactoring with proper validation logic
  • The changes demonstrate excellent software engineering practices: centralizing duplicated regex patterns into a dedicated utility module, fixing a specific edge case bug (double bracket matching), and consistently applying the fix across all affected files. The solution is backed by existing tests in references.test.ts that validate the expected behavior.
  • No files require special attention

Important Files Changed

File Analysis

Filename Score Overview
apps/sim/executor/utils/reference-validation.ts 5/5 Added new utility module with reference pattern functions to centralize and standardize regex patterns across the codebase
apps/sim/executor/variables/resolver.ts 5/5 Refactored to use centralized replaceValidReferences utility for consistent reference replacement logic
apps/sim/executor/orchestrators/loop.ts 5/5 Updated loop condition evaluation to use replaceValidReferences for proper handling of double bracket scenarios

Sequence Diagram

sequenceDiagram
    participant User as User Input
    participant UI as UI Components
    participant Util as reference-validation
    participant Resolver as Variable Resolver
    participant LoopOrch as Loop Orchestrator
    
    User->>UI: Enter text with double brackets
    UI->>Util: createReferencePattern()
    Util-->>UI: RegExp pattern
    Note over UI,Util: Pattern changed from [^>]+ to [^<>]+<br/>to prevent matching across brackets
    
    UI->>Util: replaceValidReferences(text, replacer)
    Util->>Util: Apply createReferencePattern()
    Util->>Util: Check isLikelyReferenceSegment()
    alt Valid reference
        Util->>UI: Call replacer callback
    else Invalid reference
        Util-->>UI: Return original
    end
    
    Resolver->>Util: replaceValidReferences(template)
    Util->>Resolver: Process valid references
    Resolver->>Resolver: resolveSingleReference()
    
    LoopOrch->>Util: replaceValidReferences(condition)
    Util->>LoopOrch: Process condition
    LoopOrch->>Resolver: resolveSingleReference()

Loading

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

7 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

@Sg312 Sg312 merged commit 949f928 into staging Nov 15, 2025
9 checks passed
waleedlatif1 added a commit that referenced this pull request Nov 17, 2025
* test(pr): hackathon (#1999)

* test(pr): github trigger (#2000)

* fix(usage-indicator): conditional rendering, upgrade, and ui/ux (#2001)

* fix: usage-limit indicator and render conditonally on is billing enabled

* fix: upgrade render

* fix(notes): fix notes, tighten spacing, update deprecated zustand function, update use mention data to ignore block positon (#2002)

* fix(pdfs): use unpdf instead of pdf-parse (#2004)

* fix(modals): fix z-index for various modals and output selector and variables (#2005)

* fix(condition): treat condition input the same as the code subblock (#2006)

* feat(models): added gpt-5.1 (#2007)

* improvement: runpath edges, blocks, active (#2008)

* feat(i18n): update translations (#2009)

* fix(triggers): check triggermode and consolidate block type (#2011)

* fix(triggers): disabled trigger shouldn't be added to dag (#2012)

* Fix disabled blocks

* Comments

* Fix api/chat trigger not found message

* fix(tags): only show start block upstream if is ancestor (#2013)

* fix(variables): Fix resolution on double < (#2016)

* Fix variable <>

* Ling

* Clean

* feat(billing): add notif for first failed payment, added upgrade email from free, updated providers that supported granular tool control to support them, fixed envvar popover, fixed redirect to wrong workspace after oauth connect (#2015)

* feat(billing): add notif for first failed payment, added upgrade email from free, updated providers that supported granular tool control to support them, fixed envvar popover, fixed redirect to wrong workspace after oauth connect

* fix build

* ack PR comments

* feat(performance): added reactquery hooks for workflow operations, for logs, fixed logs reloading, fix subscription UI (#2017)

* feat(performance): added reactquery hooks for workflow operations, for logs, fixed logs reloading, fix subscription UI

* use useInfiniteQuery for logs fetching

* fix(copilot): run workflow supports input format and fix run id (#2018)

* fix(router): fix error edge in router block + fix source handle problem (#2019)

* Fix router block error port handling

* Remove comment

* Fix edge execution

* improvement: code subblock, action bar, connections (#2024)

* improvement: action bar, connections

* fix: code block draggable resize

* fix(response): fix response block http format (#2027)

* Fix response block

* Lint

* fix(notes): fix notes block spacing, additional logs for billing transfer route (#2029)

---------

Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: Emir Karabeg <78010029+emir-karabeg@users.noreply.github.com>
Co-authored-by: Siddharth Ganesan <33737564+Sg312@users.noreply.github.com>
@waleedlatif1 waleedlatif1 deleted the fix/variable-tags branch November 18, 2025 01:27
Sg312 added a commit that referenced this pull request Nov 18, 2025
* Fix variable <>

* Ling

* Clean
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants