Releases
v2.5.0
Compare
Sorry, something went wrong.
No results found
2.5.0 (2026-07-12)
✨ Features
autopilot: consume persisted cap frames for backtest + zone replay (#648 ) (9406d52 ), closes #645
autopilot: reactive rules engine + builder UI (nav hidden until P2) (#637 ) (d31df6d )
🐛 Bug fixes
automation,scheduler: low-severity review items 4.12-4.13 (f3adeea )
automation: honor manual overrides and missing setpoints (0c87deb )
automation: propagate timezone changes to the running engine (d78b8be )
biometrics-pruner: use POSIX df/ls so busybox pods actually prune (#659 ) (a4dadcc )
biometrics: stop archive pruner dying on SIGPIPE (/persistent filling past target) (#640 ) (8ef6474 )
calibrator: gate daily fallback on persisted profile age and DAILY_HOUR (43e8da7 )
complete review and temperature unit fixes (c44da6a )
db,scripts: low-severity review items 4.14-4.18 (878e7d0 )
db: restore monotonic ordering in biometrics migration journal (b30a8bf )
environment-monitor: gate RAW timestamps to a sane wall-clock window (0efa528 )
export: unwedge archive endpoint on client disconnect or hung tar (9a63c45 )
hardware: back sideLock mutex with globalThis (afad9f2 )
hardware: prevent permanent command/response misalignment after read timeout (8f5184f )
hardware: re-baseline gesture counters on degraded-to-running recovery (99d065d )
hardware: stop pump stall guard false-tripping on firmware-commanded stops (#663 ) (613b69a )
health: stop phantom scheduler-drift reloads for non-schedule jobs (3ac3c78 )
homekit: reconcile intendedPower latch with observed firmware state (8f00fd4 )
install: grant service user journal read so log viewer works on all pods (#662 ) (cf895d7 )
modules: Python low-severity review items 4.7-4.11 + 6-value capSense2 (fc797ae )
piezo-processor: share one DBHolder across side processors (4ce7ae7 )
piezoStream: eliminate file-tailing race that flaked CI (#652 ) (9e0d076 ), closes #650 #315 #1
raw-follower: survive RAW file rotation between find and open (fe5576d )
scheduler: tear down partially-initialized JobManager on loadSchedules failure (7639756 )
server,ui: low-severity review items 4.2, 4.21-4.23 (920f3c1 )
server: gate tRPC panel out of production; drop misleading protect flag (5df41c9 )
sleep-detector: debounce presence to stop session fragmentation + runaway durations (#639 ) (1906475 )
sleep-detector: make pump movement gate per-side (aa15134 )
stop reporting 83°F on an off pod side (level-0 neutral phantom) (#636 ) (35f0fba )
streaming,hardware: low-severity review items 4.3-4.6 (2bd95fa )
streaming: skip SEQNO and prefer biometrics RAW (#608 ) (7593463 )
ui: hold optimistic temp/power state until a status frame confirms it (a78d868 )
ui: make snoozed alarm Cancel button clear the snoozed sides (a3e8edd )
ui: resume HTTP polling when the device-status WebSocket dies or stalls (beb415c )
📝 Documentation
review: add actionable fix plan for 2026-07-01 code review (88eef99 )
review: add repo-wide code review report (2026-07-01) (e48996e )
🧪 Tests
db: kill src/db/schema.ts mutants via getTableConfig structural assertions (#641 ) (257891b ), closes #591
streaming: kill mqttBridge HA discovery mutants via full payload assertions (#626 ) (7598a90 )
streaming: kill piezoStream surviving mutants (#591 hit list) (#665 ) (9316e94 ), closes #635
streaming: kill surviving mutants in mqttBridge (#635 ) (960cbf5 ), closes #591 #591
system: kill surviving mutants in system router (#591 ) (#653 ) (f698549 )
💚 CI
mutation: bump github-script to v9 for Node 24 runtime (#625 ) (d397ab1 )
🔧 Chores
deps: Update @base-ui/react all non-major dependencies (#654 ) (9a2418b )
deps: Update @eslint/css all non-major dependencies (#661 ) (420b875 )
deps: Update @formatjs/intl-localematcher all non-major dependencies (#638 ) (39e1dfb )
deps: Update @tanstack/react-query all non-major dependencies (#655 ) (caf4283 )
deps: Update @types/node all non-major dependencies (#647 ) (b972ddb )
deps: Update node Node.js to v24 (#416 ) (5093703 )
deps: Update typescript dependency typescript to v6 (#315 ) (215bd43 )
docs: plan remaining 2026-07-03 review fixes; retire completed 2026-07-01 review docs (7945fee )
gitignore pycache (7f3a82c )
pin pod runtime to Node 24 (match .node-version) (#650 ) (d9fafa0 ), closes #416
repo: review items 4.24-4.26 — hygiene, CLAUDE.md, audit tracking (34d1cb5 )
review: mark Batch 1 complete; fix non-null assertion in transport test (308b4f0 )
review: mark Batch 2 complete; lint fixes in sideLock test (0d0570a )
review: mark Batch 3 complete; lint fixes in new hooks/tests (dc7d040 )
sp-bundle-logs: capture streamer attach log and archive/disk pressure (#660 ) (821ac78 ), closes #608
You can’t perform that action at this time.