mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-08-02 11:43:33 +00:00
The 30d window said 18 of 26 approved action attempts failed but carried zero cause information. Every approved attempt that is not a verified success now lands in exactly one content-free bucket: - pre_dispatch: terminally refused before dispatch (plan drift, expiry, emergency stop, policy authorization) - execution: dispatched execution failed or ended inconclusive - unverified: execution succeeded but outcome verification was not confirmed (reads as success in the UI, counted as failure here) - stuck_executing: still executing over an hour after dispatch plus one sanitized machine reason code for the most recent failure. Successes, failure buckets, and recent in-flight attempts partition the attempt count, so the next window explains its own gap. RefuseActionExecution now persists the specific refusal code (plan_drift, action_plan_expired, ...) as the canonical execution reason code instead of the generic pre_dispatch_refused, so audit truth and telemetry distinguish refusal causes without message parsing. Privacy disclosures updated in both PRIVACY.md copies; the adoption report script surfaces the new counters. Contract-Neutral: additive content-free telemetry counters + specific pre-dispatch refusal reason codes; privacy disclosures updated in-commit per security-privacy extension point |
||
|---|---|---|
| .. | ||
| metrics_port.go | ||
| metrics_port_test.go | ||
| metrics_test.go | ||
| server.go | ||
| server_helpers_test.go | ||
| server_test.go | ||
| telemetry_pulse_intelligence.go | ||
| telemetry_pulse_intelligence_test.go | ||