mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-08-27 09:52:24 +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 |
||
|---|---|---|
| .. | ||
| agents | ||
| aicontracts | ||
| audit | ||
| auth | ||
| cloudauth | ||
| db | ||
| discovery | ||
| edition | ||
| extensions | ||
| fsfilters | ||
| licensing | ||
| metrics | ||
| pbs | ||
| pmg | ||
| proxmox | ||
| pulsecli | ||
| reporting | ||
| securityutil | ||
| server | ||
| tlsutil | ||