diff --git a/backend/windmill-api-flows/src/flows.rs b/backend/windmill-api-flows/src/flows.rs index 652d22bed0..b5f8e2f285 100644 --- a/backend/windmill-api-flows/src/flows.rs +++ b/backend/windmill-api-flows/src/flows.rs @@ -2109,8 +2109,7 @@ mod tests { }, "stop_after_if": { "expr": "foo = 'bar'", - "skip_if_stopped": false, - "error_message": null + "skip_if_stopped": false } }, { @@ -2131,8 +2130,7 @@ mod tests { }, "stop_after_if": { "expr": "previous.isEmpty()", - "skip_if_stopped": false, - "error_message": null + "skip_if_stopped": false } } ], @@ -2145,8 +2143,7 @@ mod tests { }, "stop_after_if": { "expr": "previous.isEmpty()", - "skip_if_stopped": false, - "error_message": null + "skip_if_stopped": false } }, }); diff --git a/backend/windmill-api/openapi.yaml b/backend/windmill-api/openapi.yaml index 0ef88e96fe..4ba9f4e734 100644 --- a/backend/windmill-api/openapi.yaml +++ b/backend/windmill-api/openapi.yaml @@ -21167,8 +21167,6 @@ components: # NOTE: Not so many generators and validators support this format: # $ref: "../../openflow.openapi.yaml#/components/schemas" # This is why it is better to inline each of schemas for better compat - # Do not change next line. It is used by python-client for pre-processing - # -- INLINE START -- UserDraftOverlay: type: object description: | @@ -21244,6 +21242,8 @@ components: - trigger_nextcloud - trigger_google - trigger_github + # Do not change next line. It is used by python-client for pre-processing + # -- INLINE START -- OpenFlow: $ref: "../../openflow.openapi.yaml#/components/schemas/OpenFlow" FlowValue: diff --git a/cli/src/commands/sync/sync.ts b/cli/src/commands/sync/sync.ts index 594fbeb43c..e0e4e73659 100644 --- a/cli/src/commands/sync/sync.ts +++ b/cli/src/commands/sync/sync.ts @@ -2099,7 +2099,8 @@ export function preservePendingScriptLocks( ): void { // A multi-module script keeps its metadata in the folder layout // `…__mod/script.{yaml,json}` instead of `….script.{yaml,json}`. - const modMeta = getModuleFolderSuffix() + SEP + "script"; + // Map keys are always forward-slash normalized, on every platform. + const modMeta = getModuleFolderSuffix() + "/script"; for (const metaKey of Object.keys(remote)) { const isYaml = metaKey.endsWith(".script.yaml") || metaKey.endsWith(modMeta + ".yaml"); @@ -2134,9 +2135,9 @@ export function preservePendingScriptLocks( // Derive the lock-file key from the `!inline` reference itself, not from the // metadata path: a multi-module script keeps its lock at `…__mod/script.lock`, - // which a `.script.yaml -> .script.lock` rewrite would miss. The reference is - // always forward-slash; map keys use the OS separator. - const lockKey = localLock.slice("!inline ".length).replaceAll("/", SEP); + // which a `.script.yaml -> .script.lock` rewrite would miss. The reference and + // the map keys are both forward-slash, so no separator rewrite is needed. + const lockKey = localLock.slice("!inline ".length); if (local[lockKey] === undefined) continue; // committed lock already gone remoteParsed["lock"] = localLock;