mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-08-25 17:02:10 +00:00
Two counters could not answer the question they exist for. pulse_intelligence_patrol_runs_30d was counted from the operator-facing patrol run history, which is capped at MaxPatrolRunHistory (100). On any install patrolling on a normal schedule that cap is reached within hours of a thirty-day window opening, so the field reported the cap rather than the run count, and the calls-per-run ratio derived from it was inflated by a censored denominator. Patrol run history now carries an uncapped daily tally beside the capped list, advanced from a persisted high-water mark so repeated full-list saves cannot double count, pruned to 31 days, and read in preference to the list. An install with no tally yet falls back to the list, so the counter never regresses on upgrade. Schema v8 split agent-side pre-mutation refusals into target-change, prerequisite and contract categories so they would stop hiding in "other". In production all three are zero fleet-wide and "other" still absorbs every refusal, because the dominant reason code is the legacy preflight_refused aggregate recorded when an agent sends no machine reason code at all. Agents older than the typed refusal contract report every refusal that way, so the split is starved rather than broken, and folding the two together made those two states indistinguishable. Schema v9 counts uncoded refusals separately. |
||
|---|---|---|
| .. | ||
| gzip_middleware.go | ||
| gzip_middleware_test.go | ||
| memlimit.go | ||
| memlimit_test.go | ||
| metrics_port.go | ||
| metrics_port_test.go | ||
| metrics_test.go | ||
| server.go | ||
| server_helpers_test.go | ||
| server_test.go | ||
| telemetry_licensed_features.go | ||
| telemetry_licensed_features_guard_test.go | ||
| telemetry_licensed_features_test.go | ||
| telemetry_pulse_intelligence.go | ||
| telemetry_pulse_intelligence_test.go | ||