Skip to content

v0.7.2 β€” the monitor you can trust

Choose a tag to compare

@OrangePeachPink OrangePeachPink released this 12 Jul 02:49
· 391 commits to main since this release
9f95430

Sprout 0.7.2 is the release where the logger became unkillable and the plants got a real registry.

The headline promise, kept: just be a damn logger and never stop. The collection worker now supervises itself, restarts on any death, refuses loudly instead of silently, and every failure it can still hit writes itself into a log in plain words. The dashboard's one button never lies about recording state.

The other half: Plants & Sensors β€” your real fleet in a tab. Add plants and sensors, map any sensor to any plant with a plant-first picker (no channel soup), pause what's resting, and permanently delete what's gone β€” with a receipt showing exactly what left the disk. Classic review-then-save; nothing changes until you say so.

Also aboard: per-channel calibration tiers live on the wire and honest on every chip (a fully-calibrated channel wears no badge at all), an opt-in environment overlay (context, not cause), era-aware provenance that never cries VIOLATION at your own history, a web flasher that offers only what's bench-proven, ed25519 release signing (this release is its first live fire), and the dashboard's old 15-second slowness diagnosed down to ~3.

Grown on a kitchen windowsill. Raw counts + band are the truth. tend well. 🌱


What's Changed

✨ Features

πŸ› Bug fixes

πŸ“– Documentation

  • docs(audit): ADR-0030 display-contract conformance β€” config_id is the one gap (#831) by @OrangePeachPink in #945
  • docs(onboarding): Windows USB-serial driver prep + first-run pio penv retry by @OrangePeachPink in #948
  • docs(adr): ADR-0026 body β€” Phase-0 acknowledgment + maker-first scaling by @OrangePeachPink in #944
  • fix(docs): release-notes template points Discussions at its absolute URL (#911 finding 4) by @OrangePeachPink in #958
  • docs(voice): welcome AI-assisted contributions, without gatekeeping (#920 slice 1) by @OrangePeachPink in #962
  • docs(ux): sweep the settled collection vocabulary to the remaining surfaces (#873) by @OrangePeachPink in #971
  • docs(on-ramp): reference cal_class_defaults.h as the real-anchor source (#550) by @OrangePeachPink in #983
  • docs(voice): plain-language the contributor path β€” de-jargonize merge + review (#920 slice 2) by @OrangePeachPink in #988
  • docs(doctrine): codify the honesty-law pair β€” wear only the caveats you've earned (#977) by @OrangePeachPink in #990
  • docs(experiments): 2026-07-11 watering dose-response β€” first per-pot-cal fleet run (v0.7.2) by @OrangePeachPink in #1037

πŸ”§ Other changes

  • fix(firmware): bump PLANTS_FW_VERSION 0.7.0 β†’ 0.7.1 + OTA fleet (ADR-0030 symptom-1 relabel) by @OrangePeachPink in #902
  • chore(release): sync the product version line to 0.7.1 (pyproject + lock) by @OrangePeachPink in #903
  • ci(public): restore full per-PR CI β€” revert the #740 slim posture (free public minutes) by @OrangePeachPink in #906
  • docs(adr): ratification batch β€” 0026 Β· 0029 Β· 0030 Β· 0031 Proposed β†’ Accepted (maintainer rulings, 2026-07-10) by @OrangePeachPink in #915
  • docs(process): velocity modes V1/V2 β€” the v0.7.2 accelerated pilot + its fence by @OrangePeachPink in #916
  • perf(dashboard): window the read path to the range β€” root opens fast (#918) by @OrangePeachPink in #932
  • fix(analytics): trend + forecast fits exclude fault/sub-rail/OOB rows (#919) by @OrangePeachPink in #935
  • chore(analytics): dedupe the capture-parse β€” watering_arc reuses watering_events (#909) by @OrangePeachPink in #938
  • fix(logger): surface the monitor give-up reason to the operator (#813 loud-give-up) by @OrangePeachPink in #941
  • fix(firmware): board-aware cal-selection seam β€” C5 uses its own cal, not the classic table (#899) by @OrangePeachPink in #933
  • feat(dashboard): render live WiFi RSSI per device β€” real dBm + labeled band (#814) by @OrangePeachPink in #973
  • perf(fleet): last-good-IP-first candidate order β€” kill the flat 4.7s mDNS fetch tax (#953 slice 3) by @OrangePeachPink in #981

Full Changelog: v0.7.1...v0.7.2