Skip to content

Hide internal node IDs and stabilize editor/runtime result references - #3

Draft
jererobles with Copilot wants to merge 7 commits into
masterfrom
copilot/fix-node-editor-flaws
Draft

Hide internal node IDs and stabilize editor/runtime result references#3
jererobles with Copilot wants to merge 7 commits into
masterfrom
copilot/fix-node-editor-flaws

Conversation

Copilot AI commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

The editor was exposing autogenerated node IDs that users do not reason about, while result references across expressions, blocks, and forks were easy to break or resolve inconsistently. This change shifts the authoring model to user-facing names/result keys while keeping stable internal IDs and compatible runtime resolution.

  • Reference model

    • Normalize expression result keys during deserialize, parse, and execution so references resolve consistently regardless of source format.
    • Expose both user-facing keys and normalized aliases in runtime context to preserve compatibility with existing workflows while making references predictable.
    • Keep result as the compatibility alias for the latest expression output without overriding an explicitly named result.
  • Editor UX

    • Remove node ID editing from the properties panel.
    • Show reference chips using block names and result keys instead of internal IDs.
    • Generate upstream references through block aliases, e.g. {{blocks.fetch_user.response}} and $blocks.fetch_user.response.
  • Rename safety

    • Rewrite dependent expression and fork references when a block name or expression result key changes.
    • Update both template-style references ({{...}}) and fork-token references ($...) so refactors do not silently break workflows.
  • Runtime and parsing

    • Add shared reference-key normalization utilities used by the editor and workflow runtime.
    • Make block context available by stable aliases in addition to internal IDs so existing graphs continue to run while new references stay readable.
  • Follow-up cleanup

    • Clarify several ambiguous code paths and comments called out in review.
    • Cache node-width calculation for connection rendering and add a mobile viewport fallback for the sidebar.

Example of the new reference style:

blocks:
  - name: Fetch User
    expressions:
      - type: HTTPRequest
        name: response

  - name: Decide
    expressions:
      - type: ConsoleLog
        parameters:
          - name: data
            value: "user={{blocks.fetch_user.response}}"
    forks:
      - branches:
          - statement: ["==", "$blocks.fetch_user.response.status", "200"]

Copilot AI changed the title Improve node editor workflows and mobile UX Improve node editor workflow composition and mobile editing UX Jun 27, 2026
Copilot AI requested a review from jererobles June 27, 2026 05:45
Copilot AI changed the title Improve node editor workflow composition and mobile editing UX Hide internal node IDs and stabilize editor/runtime result references Jun 27, 2026
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