From c0200bfdae58decd0f6723da289b18ed5cb056e2 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Sun, 30 Nov 2025 13:15:33 +0000 Subject: [PATCH] update app locks when pulling them --- cli/src/commands/app/raw_apps.ts | 2 +- cli/src/commands/sync/sync.ts | 14 +++++--------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/cli/src/commands/app/raw_apps.ts b/cli/src/commands/app/raw_apps.ts index 18361819e5..cb2d42f05b 100644 --- a/cli/src/commands/app/raw_apps.ts +++ b/cli/src/commands/app/raw_apps.ts @@ -39,7 +39,7 @@ async function collectAppFiles( if (entry.isDirectory) { // Skip the runnables and node_modules subfolders - if (entry.name === "runnables" || entry.name === "node_modules" || entry.name === "dist") { + if (entry.name === "runnables" || entry.name === "node_modules" || entry.name === "dist" || entry.name === ".claude") { continue; } await readDirRecursive(fullPath + SEP, relativePath + SEP); diff --git a/cli/src/commands/sync/sync.ts b/cli/src/commands/sync/sync.ts index ff0d6b64c0..4282b42298 100644 --- a/cli/src/commands/sync/sync.ts +++ b/cli/src/commands/sync/sync.ts @@ -69,6 +69,7 @@ import { import { extractInlineScripts as extractInlineScriptsForFlows } from "../../../windmill-utils-internal/src/inline-scripts/extractor.ts"; import { generateFlowLockInternal } from "../flow/flow_metadata.ts"; import { isExecutionModeAnonymous } from "../app/apps.ts"; +import { generateAppLocksInternal } from "../app/app_metadata.ts"; // Merge CLI options with effective settings, preserving CLI flags as overrides function mergeCliWithEffectiveOptions< @@ -758,7 +759,7 @@ export async function* readDirRecursiveWithIgnore( for await (const e2 of e.c()) { if (e2.isDirectory) { const dirName = e2.path.split(SEP).pop(); - if (dirName == "node_modules" || dirName?.startsWith(".")) { + if (dirName == "node_modules" || dirName == ".claude" || dirName?.startsWith(".")) { continue; } } @@ -1697,14 +1698,9 @@ export async function pull( ) ); } - if (tracker.rawApps.length > 0) { - log.info( - colors.gray( - `Raw apps ${tracker.rawApps.join( - ", " - )} inline scripts were changed but ignoring metadata regeneration for now` - ) - ); + for (const change of tracker.rawApps) { + log.info(`Updating lock metadata for raw app ${change}`); + await generateAppLocksInternal(change, false, workspace, opts, true, true); } if (opts.jsonOutput) { const result = {