--- tools/server/server-models.cpp 2026-07-11 04:07:29.000000000 +0800 +++ tools/server/server-models.cpp 2026-07-11 22:44:53.000000000 +0800 @@ -29,7 +29,7 @@ #include #include -#ifndef _WIN32 +#ifndef __APPLE__ extern char **environ; #endif @@ -37,6 +37,8 @@ // macOS: use _NSGetExecutablePath to get the executable path #include #include +#include +#define environ (*_NSGetEnviron()) #endif #define DEFAULT_STOP_TIMEOUT 10 // seconds --- tools/server/server-mcp.cpp 2026-08-07 01:46:40.000000000 +0800 +++ tools/server/server-mcp.cpp 2026-08-07 12:08:46.000000000 +0800 @@ -18,7 +18,12 @@ # include # include # include +# ifdef __APPLE__ +# include +# define environ (*_NSGetEnviron()) +# else extern char ** environ; +# endif #endif // read NDJSON lines from a child pipe, calling on_line per line until `running` clears, EOF/error, or on_line returns false. --- vendor/sheredom/subprocess.h 2026-06-13 21:44:15.000000000 +0800 +++ vendor/sheredom/subprocess.h 2026-06-14 00:55:19.000000000 +0800 @@ -44,6 +44,11 @@ #include #include +#ifdef __APPLE__ +#include +#define environ (*_NSGetEnviron()) +#endif + #if defined(_MSC_VER) #pragma warning(pop) #endif @@ -1157,7 +1162,9 @@ int saved_errno = 0; int posix_error; pid_t child = 0; +#ifndef __APPLE__ extern char **environ; +#endif char *const empty_environment[1] = {SUBPROCESS_NULL}; posix_spawn_file_actions_t actions; char *const *used_environment;