SIGN IN SIGN UP

feat(status): GET /agentmemory/status and a viewer Health tab (#1408)

* feat(status): GET /agentmemory/status and a viewer Health tab

One report of what is wrong with an install and how to fix it: health
monitor state and alerts, LLM and embedding providers, the circuit
breaker, functions failing on at least 20% of 5+ calls (with a
provider-specific fix for summarize, compress and graph extraction),
observations missing from the search index, graph snapshot age, ports,
uptime, the pinned engine version and every feature flag.

The missing-observation check reuses the boot reconcile scan
(findUnindexedObservations, split out of reconcileIndex), so it counts
exactly what search cannot find instead of comparing approximate
session counters. Every probe is time-boxed at 5 s.

Browsers get an HTML page with no scripts behind a strict nonce CSP;
other clients get JSON, and ?format=json|html forces either. Same
bearer auth as the rest of the API. The flag list moves into
buildConfigFlags() so config/flags and status share it, and the engine
pin moves into src/version.ts so the CLI and the status report read the
same constant.

* chore(skills): regenerate the REST reference for the new endpoint

npm run skills:check fails CI when plugin/skills/agentmemory-rest-api/
REFERENCE.md does not list every registered REST route; regenerated
with npm run skills:gen.

* fix(status): report a missing health snapshot and share one index scan

A status report with no health snapshot (none yet, or the probe timed
out) added no problem and could read ok; it now adds an info-level
health-check-unavailable finding.

Every status request started its own findUnindexedObservations scan,
and the 5 s probe timeout only stopped waiting, so repeated requests
stacked full storage scans. singleFlight() shares one in-flight scan
between overlapping requests and reuses its result for 30 s; a failed
scan is dropped so the next request retries.
R
Rohit Ghumare committed
20f26e4e1026d87125724f1ca430c8100464350c
Parent: bb6cef3
Committed by GitHub <noreply@github.com> on 9/25/2026, 3:24:40 AM