fix: use etime-based sorting instead of PID ordering for process guards

Addresses Greptile review feedback:
- ChromaSync: replace PID-based sort with ps etime column + parseElapsedTime()
  for reliable age ordering (PIDs wrap and don't guarantee ordering)
- ProcessManager: filter out entries with unparseable etime (-1) before
  sorting to prevent sort corruption in cleanupExcessChromaProcesses()
This commit is contained in:
Rod Boev
2026-02-11 06:40:45 -05:00
parent a3f9e7f638
commit 2c5c99c0c7
2 changed files with 21 additions and 11 deletions
@@ -369,6 +369,8 @@ export async function cleanupExcessChromaProcesses(maxAllowed: number = 2): Prom
if (!Number.isInteger(pid) || pid <= 0 || pid === process.pid) continue;
const ageMinutes = parseElapsedTime(etime);
// Skip entries with unparseable etime (-1) to avoid sort corruption
if (ageMinutes < 0) continue;
processes.push({ pid, ageMinutes });
}