Summary
src/ops/lifecycle.js is not Windows-compatible because it shells out to Unix commands like ps, sleep, and tail.
This breaks lifecycle management on Windows in multiple ways:
status reports running: false even when the loop process is alive
check can misclassify health because process discovery fails
stop/restart rely on Unix sleep calls
log relies on Unix tail
- startup troubleshooting becomes confusing because the loop may be running while lifecycle reports otherwise
Environment
- Evolver version:
1.65.0
- Node.js:
node.exe on Windows
- Platform: Windows
- Launch mode:
node index.js --loop
Reproduction
- Start the loop on Windows:
node src/ops/lifecycle.js start
- Confirm the process is really alive from the OS side.
- Run:
node src/ops/lifecycle.js status
- Observe that it may return
{"running":false} even though the loop process is still running.
Root Cause
Current lifecycle implementation uses Unix-only shell commands:
ps -e -o pid,args
ps -p <pid> -o args=
sleep
tail
Those are not portable on standard Windows environments.
What We Observed
Before patching locally, status returned running: false on Windows while the actual process command line was:
node C:\Users\Administrator\<redacted>\skills\evolver\index.js --loop
After applying a local Windows compatibility patch, lifecycle behaved correctly and reported:
{
"running": true,
"pids": [
{
"pid": 2184,
"cmd": "node C:\\Users\\Administrator\\<redacted>\\skills\\evolver\\index.js --loop"
}
],
"log": "logs\\evolver_loop.log"
}
and:
{
"healthy": true,
"pids": [2184]
}
Impact
This is user-visible on Windows because:
- local auto-evolution appears broken even when it is actually running
- restart/stop behavior becomes unreliable
- login-startup debugging is much harder
- operators may accidentally launch duplicate loops or think startup failed
Suggested Fix
Add a Windows code path in src/ops/lifecycle.js for:
- process discovery
- command line lookup
- sleeping/delay
- tailing logs
Examples:
- use PowerShell / CIM /
Get-CimInstance Win32_Process for process discovery and command line lookup
- use PowerShell
Start-Sleep for delays
- use PowerShell
Get-Content -Tail for log tailing
- use
path.delimiter instead of hardcoded : when mutating PATH
Privacy Note
All local paths in this report were redacted manually before submission.
Summary
src/ops/lifecycle.jsis not Windows-compatible because it shells out to Unix commands likeps,sleep, andtail.This breaks lifecycle management on Windows in multiple ways:
statusreportsrunning: falseeven when the loop process is alivecheckcan misclassify health because process discovery failsstop/restartrely on Unix sleep callslogrelies on Unix tailEnvironment
1.65.0node.exeon Windowsnode index.js --loopReproduction
{"running":false}even though the loop process is still running.Root Cause
Current lifecycle implementation uses Unix-only shell commands:
ps -e -o pid,argsps -p <pid> -o args=sleeptailThose are not portable on standard Windows environments.
What We Observed
Before patching locally,
statusreturnedrunning: falseon Windows while the actual process command line was:After applying a local Windows compatibility patch, lifecycle behaved correctly and reported:
{ "running": true, "pids": [ { "pid": 2184, "cmd": "node C:\\Users\\Administrator\\<redacted>\\skills\\evolver\\index.js --loop" } ], "log": "logs\\evolver_loop.log" }and:
{ "healthy": true, "pids": [2184] }Impact
This is user-visible on Windows because:
Suggested Fix
Add a Windows code path in
src/ops/lifecycle.jsfor:Examples:
Get-CimInstance Win32_Processfor process discovery and command line lookupStart-Sleepfor delaysGet-Content -Tailfor log tailingpath.delimiterinstead of hardcoded:when mutating PATHPrivacy Note
All local paths in this report were redacted manually before submission.