Version History
Version v3.1.0 (2026-08-31)
Added
- Query diagnostics expose each stage — The Query Diagnostic Report now breaks a captured operation’s time into Normalize, Plan, Prepare, and Execute stages and shows how much time preparation used. The share covers one executed search or count operation; Execute includes admission wait, database work, and result delivery.
Breaking
-
Memory pressure metric matches documentation — BREAKING: Prometheus now exports JVM memory pressure as
jvm_memory_pressureinstead ofjvm_memory_pressure_ratio— custom dashboards and alerts that queryjvm_memory_pressure_ratiostop receiving samples. Migration: replacejvm_memory_pressure_ratiowithjvm_memory_pressure; the bundled dashboards are already updated. -
Workload evidence separates retained examples — BREAKING: Observe workload responses and support exports now separate aggregate observations from bounded retained examples — clients that read
seenCount, card recurrence fields, orsamplescan no longer parse those removed fields, and workload support exports now use schema 2. Migration: readobservedCount,evidenceCoverage, andretainedExamples; useretainedBecauseto explain each example; update support-export consumers to schema 2. -
Affected entry histories repair automatically — BREAKING: On upgrade, histories affected by the former identity reset are repaired automatically when the stored evidence is unambiguous, restoring the original entry ID as the single identity, removing the false Created event, and reducing later changes to the attributes that actually changed — temporary entry IDs created during affected refreshes no longer resolve. Migration: re-resolve affected entries by UUID or distinguished name and refresh any cached entry IDs; ambiguous histories remain unchanged and available for support diagnostics.
Fixed
-
Entry history survives configuration changes — Existing entries retain their entry ID and complete history when synchronized attributes or other source settings are added, changed, or removed and a full refresh follows. Only real object changes create history events; newly configured attributes that are absent on an object and attributes removed from synchronization update the current view without inventing changes. An interrupted or incomplete refresh remains pending instead of deleting entries that were not safely checked.
-
Attribute Coverage lists every attribute — The Operator UI now lists every stored attribute, including attributes without index or sort coverage. Those rows use a neutral “Not applicable” state and do not report healthy coverage signals.
-
Slow shares use every operation — Observe calculates each slow share from the complete workload seen by the current process. Drill-downs keep a bounded typical comparison beside noteworthy examples, while the overview stays focused on actionable patterns. Slow or failed examples no longer act as the denominator for the aggregate.