Pulse/pkg
rcourtman 51c5d344ce Plumb operator-state and operational memory into investigation findings
Closes the "has context vs uses context" gap that defines Pulse's
agent-paradigm differentiation. The orchestrator (in pulse-pro) used
to receive a Finding with no awareness of the operator's
commitments — Patrol could investigate a resource the operator had
marked never-auto-remediate and propose a restart fix that the
action broker would refuse downstream. The proposal shouldn't have
happened in the first place.

Adds two optional fields to aicontracts.Finding:

- OperatorContext: intentionally offline, never auto-remediate,
  maintenance window with computed active flag, criticality, note.
  Populated in MaybeInvestigateFinding from the same operator-state
  projection the suppression hot path consumes, so investigation
  reasoning and suppression behavior cannot drift apart.
- OperationalMemory: regression count, previous resolved fix
  summary, last regression timestamp, times raised. Populated in
  ToCoreFinding from fields the internal Finding already carries.

ResourceOperatorStateProjection grew a NeverAutoRemediate field —
the investigation read path needs it (so the orchestrator can avoid
proposing fixes the broker would refuse) even though the
suppression hot path doesn't. Same projection serves both reads.

Both fields are nil when there's no signal (fresh finding, no
operator state) so the orchestrator branches on absence rather
than parsing zero-valued structs. The pulse-pro orchestrator
consumes the fields in a separate slice; this slice ships the
in-repo half of the data path.
2026-05-09 21:03:15 +01:00
..
agents Gate RAID rebuild alerts on mdstat operation 2026-04-30 14:31:14 +01:00
aicontracts Plumb operator-state and operational memory into investigation findings 2026-05-09 21:03:15 +01:00
audit Export restricted outbound HTTP security helpers 2026-04-22 10:05:57 +01:00
auth Split audit log access into dedicated token scope 2026-04-22 07:59:12 +01:00
cloudauth fix(hosted): preserve direct handoff membership continuity 2026-03-26 23:40:02 +00:00
db feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
discovery Pin discovery HTTP probes to captured TLS peers 2026-03-29 19:32:56 +01:00
extensions Restore commercial monitored-system admission hook contract 2026-05-06 18:04:59 +01:00
fsfilters Harden agentexec token binding and disk filtering 2026-04-23 15:54:48 +01:00
licensing Track runtime build in license activation 2026-05-06 23:45:37 +01:00
metrics refactor: split alert config and callbacks 2026-05-06 13:01:32 +01:00
pbs Harden outbound URLs and file-backed storage 2026-03-29 12:47:55 +01:00
pmg Harden outbound URLs and file-backed storage 2026-03-29 12:47:55 +01:00
proxmox Surface per-endpoint reasons in cluster "no healthy nodes" error 2026-05-08 21:10:14 +01:00
pulsecli Add action execution safety contract 2026-05-04 23:19:58 +01:00
reporting Add agentless availability targets 2026-05-06 10:35:34 +01:00
securityutil Allow insecure dev HTTP agent runtime URLs 2026-04-23 13:48:54 +01:00
server Restore commercial monitored-system admission hook contract 2026-05-06 18:04:59 +01:00
tlsutil Fail closed on auth env hashing and TLS floors 2026-04-22 05:53:02 +01:00