hippo-memory 1.10.0 → 1.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -57,7 +57,7 @@ import { buildProvenanceCoverage } from './provenance-coverage.js';
57
57
  import { buildCorrectionLatency } from './correction-latency.js';
58
58
  import * as api from './api.js';
59
59
  import * as client from './client.js';
60
- import { detectServer, removePidfile } from './server-detect.js';
60
+ import { detectServer, removePidfileIfOwned } from './server-detect.js';
61
61
  import { resolveTenantId } from './tenant.js';
62
62
  import { runEval, bootstrapCorpus, compareSummaries } from './eval.js';
63
63
  import { runFeatureEval, formatResult, resultToBaseline, detectRegressions } from './eval-suite.js';
@@ -137,7 +137,8 @@ function failIfServerRequired(reason) {
137
137
  * was already surfaced to stdout/stderr by `httpFn`),
138
138
  * - false if no server was detected, or if the detected pidfile turned out
139
139
  * to be stale (connection refused). On stale, the pidfile is removed
140
- * and the caller should fall back to the direct path.
140
+ * if it still names that dead server (a newer one may have replaced
141
+ * it) and the caller should fall back to the direct path.
141
142
  *
142
143
  * Per the A1 plan footgun #1: stale pidfiles must self-heal, not crash.
143
144
  * H2: when HIPPO_REQUIRE_SERVER is set, both fallback paths throw instead of
@@ -159,7 +160,9 @@ async function runViaServerIfAvailable(hippoRoot, httpFn) {
159
160
  if (client.isConnectionRefused(err)) {
160
161
  failIfServerRequired('the server pidfile was stale (connection refused)');
161
162
  console.error('hippo: stale server pidfile detected, falling back to direct mode');
162
- removePidfile(hippoRoot);
163
+ // Clear the pidfile only if it still names the dead server we just
164
+ // probed — a newer server may have rewritten it (removePidfileIfOwned).
165
+ removePidfileIfOwned(hippoRoot, { pid: info.pid, startedAt: info.started_at });
163
166
  return false;
164
167
  }
165
168
  throw err;