Skip to content

v1.18.0 — capture-anomaly alarm + identity-addressed ADR writes

Choose a tag to compare

@goldenwo goldenwo released this 24 Aug 17:30
· 20 commits to main since this release
195ccb5

v1.18.0 — the capture-anomaly alarm + identity-addressed ADR writes

The alarm (#267, PR #282):

  • stop.sh now self-reports its six measured-zero silent-death reasons as signal.capture_anomaly counter rows via POST /api/capture-anomaly (pure bash+curl helper um_signal_anomaly — a no-python client still reports; 429 carved as http-429 ahead of the server-too-old residual).
  • skip=empty-delta split into -stalled / -filtered (exhaustive shape classification; pass-2 always emits EMPTY).
  • /api/stats exposes an independent anomalies section (fail-isolated to anomalies:null; always-present signals key: absent ⇔ old server / null ⇔ degraded / {} ⇔ healthy).
  • um-alert SIGNALS escalation (ABSENT/DEGRADED/ERROR/ALERT/OK; ALERT = any surface count_7d>0) with print-all on every exit path — also fixed the pre-existing LAYERS-masks-LEDGER and the STALE arm's silent LEDGER drop.
  • Version skew is safe both orders: a new hook against an old server logs signal=server-too-old quietly.
  • Residual (crash-dead class) deliberately unalarmed pending its measured base rate — #283.

Identity-addressed ADR writes (#279, PR #281):

  • type:'adr' writes with a usable adr_id get a deterministic point id from (repo_path, adr_id, userId) — idempotent full-replace, dedup bypassed, verbatim title, createdAt preserved, suppression-state carry-forward. A re-synced ADR no longer mints a duplicate point.

Also riding:

  • ADR graph derived from decision files (#266, PR #270) + a corrected header rationale (#278).
  • Memory link audit CLI (cli/memory-audit.mjs, #273).
  • Safe half of the #258 dependency batch (#274); the three measured-bad majors stay ignored.

Registry verification (2026-08-24, pre-announce): both published arches pulled and booted from GHCR against a scratch qdrant — amd64 and arm64 (QEMU): 1 patch warn each, /health 200, in-image v22.23.2. Deployed same day: /health 200 with the full corpus intact.

Post-deploy checklist: #279 legacy cleanup (list-first, ≤8 expected; ungates #275) → #267 §14 ritual (mount probe → deliberate fire → D4 read → CLEANUP) → #283 measurement SQL → alarm-or-park decision.