From eb397c1087ecd59e6aa77d7155fde4fea53a177b Mon Sep 17 00:00:00 2001 From: Mark Lester Bolotaolo Date: Fri, 5 Jun 2026 15:14:11 +0800 Subject: [PATCH] fix: resolve MCP server startup crash on macOS (issue #46) - Skip 0-byte cached binaries in cli.js by adding fs.statSync size check to prevent spawn ENOEXEC when a corrupted/incomplete download is cached - Fix Dart fallback import in dart/bin/server.dart to use the correct local package name flutter_skill_npm (matches dart/pubspec.yaml) Co-Authored-By: Claude Sonnet 4.6 --- packaging/npm/bin/cli.js | 2 +- packaging/npm/dart/bin/server.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/npm/bin/cli.js b/packaging/npm/bin/cli.js index a908d55a..825cd1f9 100755 --- a/packaging/npm/bin/cli.js +++ b/packaging/npm/bin/cli.js @@ -84,7 +84,7 @@ async function main() { const localBinaryPath = getLocalBinaryPath(); // Try to use existing native binary - if (localBinaryPath && fs.existsSync(localBinaryPath)) { + if (localBinaryPath && fs.existsSync(localBinaryPath) && fs.statSync(localBinaryPath).size > 0) { // Always ensure the execute bit is set before spawning. // postinstall chmodSync can silently fail on some npm configurations // (e.g. restricted sandbox, npm run as root on certain macOS setups), diff --git a/packaging/npm/dart/bin/server.dart b/packaging/npm/dart/bin/server.dart index 65dd8b6d..11469ef1 100644 --- a/packaging/npm/dart/bin/server.dart +++ b/packaging/npm/dart/bin/server.dart @@ -1,3 +1,3 @@ -import 'package:flutter_skill/src/cli/server.dart'; +import 'package:flutter_skill_npm/src/cli/server.dart'; void main(List args) => runServer(args);