This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
Summary
AI summaryAnomaly detection expanded, latency P99 regression guard added, bulk delete-by-pattern implemented, webhook retries made adaptive, and telemetry reliability improved across retrieval, agent-cache, and MCP.
Full changelog
Anomaly-detection expansion (three new Valkey-issue-backed detectors), a P99 latency regression guard, client-side bulk delete-by-pattern, and faster webhook retries.
✨ Added
Anomaly detection
- Split-brain - duplicate primaries in a shard (#305, valkey#2261 (https://github.com/valkey-io/valkey/issues/2261)) - flags a hash-slot range claimed by more than one master-flagged node and names the phantom primary (lower configEpoch). Emits a CRITICAL CLUSTER_TOPOLOGY anomaly, deduped per conflict signature and re-armed once resolved.
- Stalled BGSAVE / AOF persistence forks (#294, valkey#2322 (https://github.com/valkey-io/valkey/issues/2322)) - tracks RDB/AOF fork children from INFO persistence. CRITICAL when progress freezes (MONITOR_PERSISTENCE_STALL_SEC, 60s), elapsed exceeds the ceiling (MONITOR_PERSISTENCE_CRIT_SEC, 600s), or last-save status flips ok → err; WARNING past MONITOR_PERSISTENCE_WARN_SEC (120s) while still advancing.
- Data-loss guard for empty-primary full resync (#302, valkey#579 (https://github.com/valkey-io/valkey/issues/579), Pro) - Rule A alerts when a persistence-less primary restarts empty with restart evidence (replid change / uptime reset / offset regression); Rule B confirms a replica whose keyspace collapsed ≥90% after a replid change. Same-replid FLUSHALL is not flagged. Adds the data.loss.detected webhook + dashboard banner.
Latency
- P99 regression guard for version upgrades (#304, valkey#3527 (https://github.com/valkey-io/valkey/issues/3527), Pro) - a version change opens a 24h window; when a command's P99 stays ≥1.5× its pre-upgrade baseline (and ≥1ms above) for 5 consecutive samples, fires one aggregated command_p99 anomaly + the latency.regression.detected webhook. Adds a latencystats poller (60s/7d), the latency_stats_samples store across all adapters, and GET /metrics/latencystats/summary + /history (Community).
Data management
- Bulk delete-by-pattern (client-side SCANDEL) (#308, valkey#2623 (https://github.com/valkey-io/valkey/issues/2623), Pro) - client-driven SCAN + per-key UNLINK with dry-run preview, maxKeys cap + truncation reporting, pacing, cooperative cancel, and cluster fan-out (per-key UNLINK avoids CROSSSLOT). Catch-all * requires explicit confirmation. Gated behind the bulkDelete feature.
🔧 Changed
- Adaptive webhook retry polling (#157) - self-scheduling loop: 2s while retries pend, 10s when idle (same DB load), with a shutdown guard. Backoff retries (1s/2s/4s) now picked up in ~2s instead of up to 10s.
- Centralized ENV_DEFAULT_ID (#156) - replaces 28+ hardcoded 'env-default' literals with one constant.
🐛 Fixed
- MCP info endpoint (#280) - passes the section parameter through to the underlying INFO call.
Full changelog: v0.25.0...v0.26.0
What's Changed
- fix(telemetry-py): reliable event delivery and per-install identity by @KIvanow in https://github.com/BetterDB-inc/monitor/pull/292
- fix(telemetry): reliable delivery + per-install identity in TS packages by @KIvanow in https://github.com/BetterDB-inc/monitor/pull/293
- fix(telemetry): serverless-aware event delivery for TS SDKs by @KIvanow in https://github.com/BetterDB-inc/monitor/pull/301
- feat(retrieval): LongMemEval lever ablation foundation by @jamby77 in https://github.com/BetterDB-inc/monitor/pull/284
- feat(retrieval): structured context assembly (Issue 1) by @jamby77 in https://github.com/BetterDB-inc/monitor/pull/285
- feat(retrieval): query-time temporal resolver (Issue 2, slim) by @jamby77 in https://github.com/BetterDB-inc/monitor/pull/287
- fix(mcp): pass section param through to info endpoint by @AruneshDwivedi in https://github.com/BetterDB-inc/monitor/pull/280
- fix(mcp): report package version from metadata by @RitwijParmar in https://github.com/BetterDB-inc/monitor/pull/222
- feat(agent-cache/ai): cache streaming LLM responses via wrapStream by @amitkojha05 in https://github.com/BetterDB-inc/monitor/pull/262
- chore(agent-cache): release v0.11.0 (streaming cache) + fix TS build by @KIvanow in https://github.com/BetterDB-inc/monitor/pull/306
- feat(anomaly): detect duplicate primaries in a shard (split-brain) by @KIvanow in https://github.com/BetterDB-inc/monitor/pull/305
- feat(anomaly): detect stalled BGSAVE/AOF persistence forks by @KIvanow in https://github.com/BetterDB-inc/monitor/pull/294
- feat(retrieval): LongMemEval question-type filter + stratified slice by @KIvanow in https://github.com/BetterDB-inc/monitor/pull/300
- refactor: replace hardcoded 'env-default' strings with ENV_DEFAULT_ID by @Vswaroop04 in https://github.com/BetterDB-inc/monitor/pull/156
- feat(webhooks): implement adaptive polling in WebhookProcessorService by @Vswaroop04 in https://github.com/BetterDB-inc/monitor/pull/157
- feat(agent-memory): opt-in write-time fact consolidation by @KIvanow in https://github.com/BetterDB-inc/monitor/pull/299
- feat(anomaly): data-loss guard for empty-primary full resync (valkey#579) by @KIvanow in https://github.com/BetterDB-inc/monitor/pull/302
- feat(bulk-delete): incremental delete-by-pattern (client-side SCANDEL) by @KIvanow in https://github.com/BetterDB-inc/monitor/pull/308
- feat(latency): P99 latency regression guard for version upgrades (valkey#3527) by @KIvanow in https://github.com/BetterDB-inc/monitor/pull/304
New Contributors
- @AruneshDwivedi made their first contribution in https://github.com/BetterDB-inc/monitor/pull/280
- @RitwijParmar made their first contribution in https://github.com/BetterDB-inc/monitor/pull/222
Full Changelog: https://github.com/BetterDB-inc/monitor/compare/v0.25.0...v0.26.0
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About BetterDB-inc/monitor
Valkey-first observability with Redis compatibility. Query real-time metrics, analyze slow commands, detect hot keys, and investigate performance issues directly from AI coding assistants.
Related context
Related tools
Earlier breaking changes
- vagent-cache-py-v0.7.0 Cache keys changed for tool-using requests on the LlamaIndex adapter; existing cached entries will miss once after upgrade.
- vagent-cache-v0.7.0 Cache keys for tool-using requests changed on Vercel and LlamaIndex adapters; existing entries become one-time misses.
- vagent-v1.5.0 TLS is now mandatory; agent exits with error if `--valkey-tls true` is not set for IAM auth mode.
Beta — feedback welcome: [email protected]