windmill-labs / windmill

Open-source developer platform to power your entire infra and turn scripts into webhooks, workflows and UIs. Fastest workflow engine (13x vs Airflow). Open-source alternative to Retool and Temporal.
https://windmill.dev
Other
9.95k stars 468 forks source link

An app does not initialize without a "Recompute All" component #4159

Closed vibl closed 2 months ago

vibl commented 2 months ago

Describe the bug

After removing the default "Recompute All" component, the app no longer initializes.

To reproduce

  1. Create a brand new app.
  2. Add a JS background script that returns "42".
  3. Add a text component linked to the background script.

Result: The text component displays "42" in preview mode.

(See YAML below)

  1. Delete the default "Recompute All" component.

Result: The text component does NOT display "42" in preview mode.

(See YAML below)

  1. Undo the deletion of the default "Recompute All" component (or add a new one manually).

Result: The app initializes again.

There was no error log in the console (apart from Pane.6nJ6b47B.js:1 Splitpanes: Could not resize panes correctly due to their constraints. which is always there).

Expected behavior

The app should still initialize after removal of the default "Recompute All" component.

Screenshots

No response

Browser information

Brave 1.67

Application version

Windmill Cloud EE v1.371.3-2-gb95337fcb

Additional Context

YAML of a working app ```yaml grid: - "3": fixed: false x: 0 y: 0 fullHeight: false w: 6 h: 2 "12": fixed: false x: 0 y: 0 fullHeight: false w: 12 h: 2 data: type: containercomponent configuration: {} customCss: container: class: "!p-0" style: "" actions: [] numberOfSubgrids: 1 id: a id: a - "3": fixed: false x: 0 y: 2 fullHeight: false w: 1 h: 1 "12": fixed: false x: 0 y: 2 fullHeight: false w: 3 h: 1 data: type: textcomponent configuration: style: type: static value: Body copyButton: type: static value: false tooltip: type: static value: "" disableNoText: type: static value: false componentInput: type: evalv2 fieldType: template eval: Hello ${ctx.username} connections: - componentId: bg_0 id: result expr: bg_0.result actions: [] horizontalAlignment: left verticalAlignment: top id: d id: d fullscreen: false unusedInlineScripts: [] hiddenInlineScripts: - type: runnableByName inlineScript: content: return "42"; language: frontend path: u/vianney/newapp/Background_Runnable_0 suggestedRefreshOn: [] name: Background Runnable 0 fields: {} autoRefresh: true recomputeOnInputChanged: true recomputeIds: [] theme: type: path path: f/app_themes/theme_0 subgrids: a-0: - "3": fixed: false x: 0 y: 0 fullHeight: false w: 6 h: 1 "12": fixed: false x: 0 y: 0 fullHeight: false w: 6 h: 1 data: type: textcomponent configuration: style: type: static value: Body copyButton: type: static value: false tooltip: type: evalv2 value: "" fieldType: text expr: "`Author: ${ctx.author}`" connections: - componentId: ctx id: author disableNoText: type: static value: true fieldType: boolean componentInput: type: templatev2 fieldType: template eval: ${ctx.summary} connections: - id: summary componentId: ctx customCss: text: class: text-xl font-semibold whitespace-nowrap truncate style: "" container: class: "" style: "" actions: [] horizontalAlignment: left verticalAlignment: center id: b id: b - "3": fixed: false x: 0 y: 1 fullHeight: false w: 3 h: 1 "12": fixed: false x: 6 y: 0 fullHeight: false w: 6 h: 1 data: type: recomputeallcomponent configuration: {} actions: [] menuItems: [] horizontalAlignment: right verticalAlignment: center id: c id: c hideLegacyTopBar: true ```
YAML of an app that does not initialize after just removing the default "Recompute All" component. ```yaml grid: - "3": fixed: false x: 0 y: 0 fullHeight: false w: 6 h: 2 "12": fixed: false x: 0 y: 0 fullHeight: false w: 12 h: 2 data: type: containercomponent configuration: {} customCss: container: class: "!p-0" style: "" actions: [] numberOfSubgrids: 1 id: a id: a - "3": fixed: false x: 0 y: 2 fullHeight: false w: 1 h: 1 "12": fixed: false x: 0 y: 2 fullHeight: false w: 3 h: 1 data: type: textcomponent configuration: style: type: static value: Body copyButton: type: static value: false tooltip: type: static value: "" disableNoText: type: static value: false componentInput: type: evalv2 fieldType: template eval: Hello ${ctx.username} connections: - componentId: bg_0 id: result expr: bg_0.result actions: [] horizontalAlignment: left verticalAlignment: top id: d id: d fullscreen: false unusedInlineScripts: [] hiddenInlineScripts: - type: runnableByName inlineScript: content: return "42"; language: frontend path: u/vianney/newapp/Background_Runnable_0 suggestedRefreshOn: [] name: Background Runnable 0 fields: {} autoRefresh: true recomputeOnInputChanged: true recomputeIds: [] theme: type: path path: f/app_themes/theme_0 subgrids: a-0: - "3": fixed: false x: 0 y: 0 fullHeight: false w: 6 h: 1 "12": fixed: false x: 0 y: 0 fullHeight: false w: 6 h: 1 data: type: textcomponent configuration: style: type: static value: Body copyButton: type: static value: false tooltip: type: evalv2 value: "" fieldType: text expr: "`Author: ${ctx.author}`" connections: - componentId: ctx id: author disableNoText: type: static value: true fieldType: boolean componentInput: type: templatev2 fieldType: template eval: ${ctx.summary} connections: - id: summary componentId: ctx customCss: text: class: text-xl font-semibold whitespace-nowrap truncate style: "" container: class: "" style: "" actions: [] horizontalAlignment: left verticalAlignment: center id: b id: b hideLegacyTopBar: true ```
fatonramadani commented 2 months ago

Hi @vibl , thanks for the feedback, it's now fixed!