You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PR #372 (logger .status() API bridging log calls into the ComponentStatusRegistry, plus system health checks and a hierarchical get_status view) is the right foundation for status-first monitoring: problems become durable, queryable, alertable state with explicit resolution, instead of inferences over log text. The PR is from April and now stale (merge conflicts, CI red, and the status registry has evolved on main), so re-land it in phases rather than rebasing wholesale.
Design extensions on top of the original #372 design
audience: operator | user on status entries and the .status() call (see the audience issue) — operator vs customer responsibility split from day one.
remediation field — a short action string and, where applicable, a machine-usable hint (operation name like repair_blob_data, config key, or doc link). Statuses become actionable: get_status tells you what's wrong and what to do; Studio can render a "fix" affordance; Harper Eye gets structured input instead of log archaeology.
Summary
PR #372 (logger
.status()API bridging log calls into the ComponentStatusRegistry, plus system health checks and a hierarchicalget_statusview) is the right foundation for status-first monitoring: problems become durable, queryable, alertable state with explicit resolution, instead of inferences over log text. The PR is from April and now stale (merge conflicts, CI red, and the status registry has evolved on main), so re-land it in phases rather than rebasing wholesale.Design extensions on top of the original #372 design
audience: operator | useron status entries and the.status()call (see the audience issue) — operator vs customer responsibility split from day one.remediationfield — a short action string and, where applicable, a machine-usable hint (operation name likerepair_blob_data, config key, or doc link). Statuses become actionable:get_statustells you what's wrong and what to do; Studio can render a "fix" affordance; Harper Eye gets structured input instead of log archaeology.occurrenceCount+ first/last-seen (already in the Add integrated logger-status system with .status() API, health checks and hierarchical view #372 design) — the status entry absorbs repetition, complementing log dedup (harper-pro#262).Phasing
.status({problem|resolves, expires, audience, remediation})bridge + registry field extensions. Convert the highest-value call sites, priority ordered by the 2026-07-06 Datadog audit: replication connection/auth path (top noise + real incidents), blob receive/pending paths (multiple silent-divergence incidents: harper-pro#386, add acl-connect component integration test #426, Built-in Harper Agent Component #502), MQTT auth, storage reclamation.get_status(worst-of-children), consumed by Studio/central-manager.Related
PR #372 (original design + code), harper-pro#437, audience issue, auth-flap issue (first Phase-1 conversion target).
🤖 Filed by Claude on behalf of Kris.