Commit Graph

420 Commits

Author SHA1 Message Date
rcourtman edae6d1edc refactor: split alert config and callbacks
Extract alert config types, normalization, and identity helpers into internal/alerts/config while preserving the existing alerts package API through aliases and wrappers.

Move Manager callback lifecycle state into a same-package callbackBus, keeping public Set/Subscribe methods unchanged.

Harden metrics SQLite artifacts to owner-only permissions and cover permissive umask behavior.

Proof: go test -json ./internal/api -count=1; go test ./internal/alerts/... ./internal/monitoring ./internal/ai/... ./internal/websocket ./internal/config ./pkg/metrics; go test ./internal/alerts/... ./pkg/metrics
2026-05-06 13:01:32 +01:00
rcourtman 01474a18b6 Fail closed on incomplete OpenAI SSE streams
Keep the buffered EOF compatibility path for OpenAI-compatible streams that omit [DONE] but provide a terminal finish_reason, while rejecting truncated tool-call streams before they can produce executable tool calls.

Refs #1411

Refs #1412
2026-05-05 22:10:50 +01:00
rcourtman 235e7343b2 Align AI action audits with execution lifecycle 2026-05-04 23:35:39 +01:00
rcourtman 53838d8f93 Fix RC3 backend release blockers 2026-05-01 21:36:28 +01:00
rcourtman 6127d412d3 Align Patrol prober with agent command policy 2026-05-01 20:28:11 +01:00
rcourtman af7d727d45 Gate RAID rebuild alerts on mdstat operation
Parse the /proc/mdstat operation keyword for mdadm arrays and propagate it through host reports, models, unified resources, monitoring views, alert metadata, and AI storage summaries.

Treat recovery and reshape as rebuild signals while silencing routine check and resync maintenance, with fallback rebuild detection only when no mdstat operation is available.

Tests cover mdstat operation parsing plus recovery, check, and resync alert behavior.

Fixes #1446
2026-04-30 14:31:14 +01:00
rcourtman 01ea5ebb6e Pass keep_alive=30s to Ollama requests
Pass keep_alive=30s on both Chat and ChatStream requests so Ollama unloads the model shortly after Patrol or one-shot analysis bursts instead of refreshing the default 5-minute residency window on every request.

Tests assert both streaming and non-streaming Ollama request bodies include the keep_alive field.

Fixes #1425
2026-04-30 14:20:12 +01:00
rcourtman f67f877f95 Clamp AI control settings to entitlements 2026-04-30 12:38:17 +01:00
rcourtman ded190dcab Retire hosted AI quickstart runtime 2026-04-28 16:11:27 +01:00
rcourtman b1e179479d Retire self-hosted AI quickstart surfaces 2026-04-28 15:49:18 +01:00
rcourtman ecf8fd4299 Keep self-hosted Pro prompts opt-in 2026-04-28 11:23:49 +01:00
rcourtman d36f465b7c Preserve uncapped self-hosted commercial continuity 2026-04-26 14:32:00 +01:00
rcourtman acbed82d75 Add governed action audit preflight 2026-04-25 22:35:19 +01:00
rcourtman 94a5ab1b59 Enforce data policy at AI model boundary 2026-04-25 21:13:53 +01:00
rcourtman dc8208cc00 Enforce data handling in AI context 2026-04-25 20:41:13 +01:00
rcourtman 0ee95a6a42 Keep self-hosted commercial copy opt-in 2026-04-25 15:26:11 +01:00
rcourtman bd138beeca Improve Pulse Assistant approval continuity 2026-04-24 09:13:39 +01:00
rcourtman 72945d04f4 Harden Pulse Assistant approval planning
Persist approval requests as governed planned actions with context confidence and stream that plan into Pulse Assistant approvals.
Reuse the planned action identity when approved actions execute so the unified audit trail stays continuous.
2026-04-23 23:36:57 +01:00
rcourtman f8fd641978 Harden Pulse Assistant action governance 2026-04-23 23:01:51 +01:00
rcourtman 60d7db6ef9 Harden agentexec token binding and disk filtering 2026-04-23 15:54:48 +01:00
rcourtman 160d8126f2 Restrict Ollama provider outbound transport 2026-04-22 05:25:57 +01:00
rcourtman 3ec2c0779e Harden agent command and deploy trust boundaries 2026-04-21 23:50:34 +01:00
rcourtman 62ec34ef02 Route hostname lookups through canonical equivalence 2026-04-21 22:47:23 +01:00
rcourtman a170692683 Align AI discovery lifecycle with discovery settings
Refs #1425
2026-04-21 16:06:49 +01:00
rcourtman 5e83877503 Flush OpenAI SSE buffers on EOF
Share OpenAI ChatStream finalization across DONE and clean EOF so buffered final chunks still produce tool calls and done events for OpenAI-compatible providers.\n\nFixes #1411
2026-04-15 17:37:51 +01:00
rcourtman 3e09fd4493 Bound discovery AI response size 2026-04-15 14:51:50 +01:00
rcourtman 05fa111ca1 Stabilize backend race tests for v6 RC publish 2026-04-11 22:46:34 +01:00
rcourtman 347a013e79 Stabilize RC release proof contracts 2026-04-11 14:51:10 +01:00
rcourtman 81fef82bdd Restore RC backend proof regressions 2026-04-09 20:15:17 +01:00
rcourtman a41c956320 fix(ai): fail closed on unknown v6 read commands 2026-04-09 19:21:16 +01:00
rcourtman ac4872c8d6 Support entitlement-backed quickstart bootstrap 2026-04-03 21:09:41 +01:00
rcourtman 12c30da168 Own quickstart state and bill Patrol per run 2026-04-03 19:45:38 +01:00
rcourtman 830215e4c3 Bill quickstart by Patrol execution 2026-04-03 19:00:40 +01:00
rcourtman b9d8f79740 Harden quickstart contract compatibility 2026-04-03 18:11:33 +01:00
rcourtman 7062f556dc Resolve BYOK models from live provider catalogs 2026-04-03 11:33:03 +01:00
rcourtman 0d25939921 Use a Pulse-owned alias for hosted quickstart models 2026-04-03 10:44:58 +01:00
rcourtman 8b667654d6 Align AI enablement with secure quickstart state 2026-04-03 02:06:47 +01:00
rcourtman 57c8757011 Require installation auth for Patrol quickstart 2026-04-03 00:45:05 +01:00
rcourtman 57cc212f34 Replace Patrol quickstart with server bootstrap 2026-04-02 23:15:06 +01:00
rcourtman 87aafb86c4 Retry Patrol with provider-derived seed budgets 2026-04-01 23:09:32 +01:00
rcourtman 76ba35a3a9 Cap AI patrol history and correlation reads 2026-04-01 14:47:58 +01:00
rcourtman 73597f8b1a Forward-port Ollama runtime auth continuity 2026-04-01 14:38:39 +01:00
rcourtman 21fa343fa1 Enable structured AI auto-recovery paths 2026-03-31 09:24:56 +01:00
rcourtman 046a0e92c0 Normalize pulse_read native log denial paths 2026-03-31 09:07:57 +01:00
rcourtman 984bc7c636 Normalize API-backed AI read routing hints 2026-03-31 08:56:22 +01:00
rcourtman d9d9dd9585 Normalize pulse_query agent and storage floor 2026-03-31 00:26:04 +01:00
rcourtman c1509103f8 Fix VMware assistant read-only guidance 2026-03-31 00:00:32 +01:00
rcourtman ac9375a34b Tighten VMware control wording boundaries 2026-03-30 23:47:38 +01:00
rcourtman dd5f099cda Lock VMware phase-1 exclusion integrity 2026-03-30 23:42:32 +01:00
rcourtman 16b9e079a6 Implement VMware assistant mention floor 2026-03-30 22:44:34 +01:00