miloco v2026.7.3
Since v2026.6.18: 120 commits, 26 PRs, 160 files changed (+12,732 / −3,218).
🎯 New Features
- Event-feedback packaging (@Molly-3000): one-click feedback on a perception event that locally packages its trace + gallery assets. The post-feedback view shows the package path, offers an "Open folder" action, and links to a Feishu survey. Backed by fail-closed PII redaction, a 2 GB disk-quota fallback, the real Mi Home uid, and full EN/ZH i18n.
- Conversational first-run setup (
miloco-onboarding) (@LeonJoeeee): on a fresh install the backend proactively sends a setup invitation, delivered straight to the user's IM chat via the owner channel. It guides the user through seven segments (members, device nicknames, usage habits, timezone, …) to register family members and the home profile — writing each entry only after user confirmation — and hooks into system events.
🧠 Perception / Omni Stability
no_personfalse-detection guarding (@ExWang): misdetected objects are no longer treated as people; adds a self-healing path so it can't get permanently stuck, and only lifts suppression on a genuine multimodal verdict.- OmniEventArtifacts container + omni-trace persistence (@Zirconi): removes the legacy
omni_logmodule. - observe: unidentified subjects now uniformly display "Unidentified"; prevents duplicate candidate entries and fabricated identities (@idootop).
- omni no longer misuses injected home-profile names; refreshes
profile.mdafter a member is added/registered (@ExWang). - perception gate hold default 360s→90s, now surfaced explicitly in
settings.yaml(@Zirconi); event text time aligned to the agent prompt's window start (@Molly-3000). - identity: pet
class_idmapped toObjectType.PET(@zackzmai).
📷 Camera / Codec
- Streaming and perception feeding now share the same selection criterion, converging over-quota cameras; camera native sessions are stopped when perception is disabled or the home is removed (@Ada-xia).
- Fixed a race between H264LiveEncoder
close()and_encode_sync(@zackzmai); added G711A/G711U audio decoders (@chliny). - Upgraded onnxruntime to 1.27.0, fixing a KleidiAI convolution workspace memory leak (@ExWang).
- Normalized
sub_devicesso devices with sub-devices no longer crash CameraInfo validation (@Ada-xia); added "Xiaomi Smart Home Screen Pro 8" to the wifispeaker allowlist (@chliny). - Fixed duration overcounting when multiple cameras exit simultaneously (@sqliu07).
⚙️ Improvements: Web / Rules / Patrol / Notify / Devices
- In-dashboard model-config management (@chliny, @ExWang): the Models page now supports editing / enabling / disabling / deleting model configs on top of its previous read-only view, with a two-stage real connectivity check.
- CLI
doctorcommand rework (@Zirconi): split into probe/assess layers with active connectivity probing (UDP exposes the real egress interface; ping sends 3 packets), plus i18n, streaming output, backend-version display, and macOSlo0compatibility. - New
/api/admin/versionendpoint (@Zirconi), with a wheel-deployment fallback. - home-patrol redesigned as a ledger + fixed-lookback (@idootop); rule runner state consolidated into a
RuleRuntimeStatedataclass (@Zirconi). - notify: 60s dedup fallback for identical messages (@idootop).
- MIPS subscribes to device cloud online/offline state (@zackzmai); settings gains a
server.url/ host+port consistency validator (@chliny).
🔒 Network / CI / Supply Chain
- LAN: skip down interfaces instead of aborting socket init (@HCl8).
- All GitHub Actions pinned to commit SHAs; dependency-guard supports
/allow-dependencies-changecomment approval; hardened PR review + fork support (@HCl8). - Backend minimum Python raised to 3.11 (docs + install scripts, @ExWang).
🙏 Acknowledgements
Thanks to everyone who contributed to this release: @Molly-3000, @LeonJoeeee, @ExWang, @Zirconi, @chliny, @Ada-xia, @zackzmai, @idootop, @HCl8, @sqliu07