v2049

ruvnet/RuViewv2049Jul 27, 2026by github-actions[bot]

AI Summary

This release fixes critical bugs in the vital signs extraction logic, specifically handling empty phases and recovering stale windows more quickly.

Key Highlights

  • HeartRateExtractor handles empty phases gracefully
  • BreathingExtractor stale-lock recovery (28.6s -> 6.0s)
  • Fixed regression tests

New Features

  • Improved vital signs extraction robustness
  • Faster recovery from stale states

Full Release Notes

Automated release from CI pipeline

**Changes:**
fix(vitals): HeartRateExtractor weights=[] silent None + BreathingExtractor stale-lock recovery (#1422, #1423) (#1449)

Fixes #1422, Fixes #1423. HeartRateExtractor no longer truncates subcarrier count on empty phases; BreathingExtractor resets immediately on first out-of-band rejection instead of passively draining a stale window (recovery 28.6s -> 6.0s). 64 tests passing, clippy clean, zero regressions workspace-wide.

**Docker Image:**
`ghcr.io/ruvnet/RuView:13015c9d368d9e892a909d23b5737ffa55976f19`