@@ -551,7 +551,6 @@ async function runWatchdog(options) {
|
551 | 551 | } |
552 | 552 | await retryRpcCall("health", {}, options); |
553 | 553 | assertNoPostReadyRuntimeDepsWork(options.logPath, readyIndex); |
554 | | -assertNoRuntimeDepsLocks(); |
555 | 554 | await assertNoPackageManagerChildren(options.child.pid); |
556 | 555 | } |
557 | 556 | |
@@ -572,47 +571,6 @@ function assertNoPostReadyRuntimeDepsWork(logPath, readyIndex) {
|
572 | 571 | } |
573 | 572 | } |
574 | 573 | |
575 | | -function assertNoRuntimeDepsLocks() { |
576 | | -const roots = [path.join(process.cwd(), "dist", "extensions")]; |
577 | | -for (const root of roots) { |
578 | | -if (!fs.existsSync(root)) { |
579 | | -continue; |
580 | | -} |
581 | | -const locks = findDirs(root, ".openclaw-runtime-deps.lock", 8); |
582 | | -if (locks.length > 0) { |
583 | | -throw new Error(`runtime dependency lock still exists: ${locks.join(", ")}`); |
584 | | -} |
585 | | -} |
586 | | -} |
587 | | - |
588 | | -function findDirs(root, basename, maxDepth) { |
589 | | -const results = []; |
590 | | -const visit = (dir, depth) => { |
591 | | -if (depth > maxDepth) { |
592 | | -return; |
593 | | -} |
594 | | -let entries; |
595 | | -try { |
596 | | -entries = fs.readdirSync(dir, { withFileTypes: true }); |
597 | | -} catch { |
598 | | -return; |
599 | | -} |
600 | | -for (const entry of entries) { |
601 | | -if (!entry.isDirectory()) { |
602 | | -continue; |
603 | | -} |
604 | | -const full = path.join(dir, entry.name); |
605 | | -if (entry.name === basename) { |
606 | | -results.push(full); |
607 | | -continue; |
608 | | -} |
609 | | -visit(full, depth + 1); |
610 | | -} |
611 | | -}; |
612 | | -visit(root, 0); |
613 | | -return results; |
614 | | -} |
615 | | - |
616 | 574 | async function assertNoPackageManagerChildren(pid) { |
617 | 575 | if (!pid || process.platform === "win32") { |
618 | 576 | return; |
|