mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-05 08:02:18 +00:00
fix(cli): phantom diffs, flow safety, trigger DX, lint watch, error clarity (#8588)
* fix(cli): phantom diffs, flow push safety, error messages, digest stability Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): differentiate stale vs missing metadata warnings on script push Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): job list --limit off-by-one, deps push double error Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): flow get shows nested steps, lint works on specific directories Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(cli): add lint --watch mode for continuous validation Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): email trigger template missing local_part, trigger get shows all fields Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): fix CI — flow push warns instead of failing, lint subdir detection Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
37799574d8
commit
c6ce3197a7
@@ -126,20 +126,25 @@ async function push(opts: PushOptions, filePath: string) {
|
||||
|
||||
await requireLogin(opts);
|
||||
|
||||
// Warn if metadata appears stale (content changed since last generate-metadata)
|
||||
// Warn about metadata state before pushing
|
||||
try {
|
||||
const content = await readFile(filePath, "utf-8");
|
||||
const remotePath = removeExtensionToPath(filePath).replaceAll(SEP, "/");
|
||||
const contentHash = await generateHash(content + remotePath);
|
||||
const conf = await readLockfile();
|
||||
if (!(await checkifMetadataUptodate(remotePath, contentHash, conf))) {
|
||||
const hasLockEntry = conf.locks && (conf.locks[remotePath] !== undefined || conf.locks[`${remotePath}.ts`] !== undefined);
|
||||
if (!hasLockEntry) {
|
||||
log.warn(colors.yellow(
|
||||
`No metadata generated yet for ${filePath}. Run 'wmill generate-metadata' to generate schema and lock.`
|
||||
));
|
||||
} else if (!(await checkifMetadataUptodate(remotePath, contentHash, conf))) {
|
||||
log.warn(colors.yellow(
|
||||
`Metadata for ${filePath} appears stale (content changed since last 'wmill generate-metadata').\n` +
|
||||
`The schema and lock may not match the current code. Consider running 'wmill generate-metadata' first.`
|
||||
));
|
||||
}
|
||||
} catch {
|
||||
// Don't block push if staleness check fails
|
||||
// Don't block push if check fails
|
||||
}
|
||||
|
||||
const codebases = await listSyncCodebases(opts as SyncOptions);
|
||||
@@ -1584,11 +1589,11 @@ async function history(
|
||||
|
||||
const command = new Command()
|
||||
.description("script related commands")
|
||||
.option("--show-archived", "Enable archived scripts in output")
|
||||
.option("--show-archived", "Show archived scripts instead of active ones")
|
||||
.option("--json", "Output as JSON (for piping to jq)")
|
||||
.action(list as any)
|
||||
.command("list", "list all scripts")
|
||||
.option("--show-archived", "Enable archived scripts in output")
|
||||
.option("--show-archived", "Show archived scripts instead of active ones")
|
||||
.option("--json", "Output as JSON (for piping to jq)")
|
||||
.action(list as any)
|
||||
.command(
|
||||
|
||||
Reference in New Issue
Block a user