Pulse/docs
rcourtman 2f967406df perf(ai): gate and batch Patrol's per-alert auto-resolve model calls
Production telemetry (30d) shows Patrol averaging ~9.4 billed AI calls
per run while only ~1-2 come from the analysis passes. The remainder is
the alert auto-resolve review: one QuickAnalysis call per active alert
(>=10min old) on every run, re-asking the model about the same standing
alert every interval even when the trigger condition demonstrably still
holds.

Two structural changes, both resolution-neutral:

- Still-firing gate: skip the model review for alerts whose current
  snapshot still shows the trigger condition (metric at/above threshold,
  offline resource still offline). A correct review could only answer
  KEEP, so the question is not worth a billed call. The gate never
  resolves anything locally - uncertain cases (unknown types, missing
  resources, unmapped metrics) still go to the model, which retains
  sole authority over resolution.
- Batched review: the remaining candidates are reviewed in one model
  call per 20 alerts (numbered verdict lines, unparseable -> KEEP,
  bare-RESOLVE fallback for single-alert batches) instead of one call
  per alert.

Steady-state runs with standing alerts drop from N review calls to 0;
runs where conditions may have cleared pay ceil(K/20) instead of K.
QuickAnalysisRequest gains a TargetType tag (recorded on the usage
event) so cost telemetry can decompose alert-review spend from the
main patrol pass going forward. Contract updated in-commit
(ai-runtime: model-owned resolve direction, cost-gated keep direction,
batched review, fail-safe parsing, alert_autoresolve usage tagging).
2026-07-17 23:23:38 +01:00
..
api docs: standardize markdown syntax and remove deprecated sensor-proxy docs 2026-01-20 09:43:49 +00:00
architecture Govern commercial offer and lifecycle 2026-07-14 11:54:22 +01:00
i18n Publish the sshsig key as an allowed_signers line so the documented verify command works 2026-07-13 16:17:25 +01:00
images docs: add social preview image for GitHub 2025-12-25 20:24:45 +00:00
monitoring Fix security scan findings 2026-07-01 09:55:35 +01:00
operations Rename retired trial acquisition proof assets 2026-04-28 18:38:10 +01:00
release-control perf(ai): gate and batch Patrol's per-alert auto-resolve model calls 2026-07-17 23:23:38 +01:00
releases fix(release): fail closed on malformed release notes 2026-07-17 11:12:22 +01:00
security Prefer agent temperatures over SSH fallback 2026-07-03 10:43:28 +01:00
AGENT_SECURITY.md Surface v5 agent migration security guidance 2026-06-03 09:18:07 +01:00
AGENT_SUBSTRATE.md backend and governance: MCP contract, agent capabilities, API, and release-control 2026-06-23 17:26:15 +01:00
AI.md Bound automatic Patrol inference allowances 2026-07-16 19:55:44 +01:00
AI_AUTONOMY.md Separate Patrol evidence and model-turn budgets 2026-07-16 17:50:08 +01:00
AI_PATROL_QUALIFICATION.md Separate Patrol evidence and model-turn budgets 2026-07-16 17:50:08 +01:00
API.md Document the -1 disk usage sentinel in the API reference 2026-07-14 09:46:12 +01:00
AUDIT_LOGGING.md Label legacy Pro Plus in customer docs 2026-04-26 22:01:24 +01:00
AUTO_UPDATE.md Self-test the new binary before the in-app update swaps it in 2026-07-10 00:44:01 +01:00
CANONICAL_ALERT_ENGINE_MIGRATION_2026-03-10.md feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
CENTRALIZED_MANAGEMENT.md Clarify agent upgrade and notification docs 2026-06-12 19:26:26 +01:00
CLOUD.md Correct stale Settings/Alerts nav labels in user docs 2026-07-13 13:47:13 +01:00
CODE_SIGNING_POLICY.md Add public code signing policy 2026-07-10 22:46:35 +01:00
CONFIGURATION.md Grant CAP_NET_RAW to the installed systemd unit for ICMP probes 2026-07-11 18:15:22 +01:00
DEPLOYMENT_MODELS.md Reconcile provider-hosted MSP copy 2026-06-02 19:14:18 +01:00
DOCKER.md Clarify agent upgrade and notification docs 2026-06-12 19:26:26 +01:00
FAQ.md Prefer agent temperatures over SSH fallback 2026-07-03 10:43:28 +01:00
INSTALL.md Publish the sshsig key as an allowed_signers line so the documented verify command works 2026-07-13 16:17:25 +01:00
KUBERNETES.md Fix helm chart agent.enabled by routing through main pulse image 2026-05-12 16:11:56 +01:00
MAIL_GATEWAY.md feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
METRICS_HISTORY.md Reduce metrics rollup write amplification 2026-05-03 21:43:20 +01:00
MIGRATION.md Label legacy Pro Plus in customer docs 2026-04-26 22:01:24 +01:00
MIGRATION_UNIFIED_NAV.md Finalize v6 GA release packet 2026-06-03 17:15:00 +01:00
MSP.md Correct stale Settings/Alerts nav labels in user docs 2026-07-13 13:47:13 +01:00
MULTI_TENANT.md Correct stale Settings/Alerts nav labels in user docs 2026-07-13 13:47:13 +01:00
OIDC.md Fix four customer-facing doc drift findings (RBAC, OIDC, helm, webhooks) 2026-05-12 15:54:24 +01:00
OIDC_SCOPE_GROUP_AUTH_FIX_SPEC.md Record OIDC scope fix resolution in handoff spec 2026-07-07 21:44:23 +01:00
PBS.md Clarify agent upgrade and notification docs 2026-06-12 19:26:26 +01:00
PRIVACY.md fix(telemetry): suppress outbound pings while mock mode is enabled 2026-07-17 18:19:18 +01:00
PROXY_AUTH.md Fix security scan findings 2026-07-01 09:55:35 +01:00
PULSE_PRO.md Align Pro feature catalog names with the new Patrol vocabulary 2026-07-11 09:33:47 +01:00
RBAC.md Correct stale Settings/Alerts nav labels in user docs 2026-07-13 13:47:13 +01:00
README.md backend and governance: MCP contract, agent capabilities, API, and release-control 2026-06-23 17:26:15 +01:00
RECOVERY.md Simplify recovery presentation and type contracts 2026-05-14 21:08:54 +01:00
RELAY.md Correct stale Settings/Alerts nav labels in user docs 2026-07-13 13:47:13 +01:00
RELEASE_NOTES.md Prepare v6.1.0-rc.2 release 2026-07-16 23:45:31 +01:00
REPO_BOUNDARY.md feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
REVERSE_PROXY.md docs: improve reverse proxy HTTPS detection and Swarm troubleshooting 2026-01-07 18:23:48 +00:00
SCREENSHOTS.md Align Relay copy with standalone tier 2026-04-30 11:01:22 +01:00
SECURITY.md feat: implement priority queue-based task execution (Phase 2 Task 6) 2025-10-20 15:13:37 +00:00
STORAGE_ARCHITECTURE.md feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
TEMPERATURE_MONITORING.md Prefer agent temperatures over SSH fallback 2026-07-03 10:43:28 +01:00
TROUBLESHOOTING.md Correct stale Settings/Alerts nav labels in user docs 2026-07-13 13:47:13 +01:00
TRUENAS.md Add native TrueNAS VM inventory to overview 2026-05-20 22:32:46 +01:00
UNIFIED_AGENT.md Add an explicit operator override for plaintext HTTP to non-local Pulse hosts 2026-07-14 16:42:02 +01:00
UNIFIED_RESOURCES.md feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
UPGRADE_v5.md Prepare v6.0.0 release candidate 2026-06-04 14:07:14 +01:00
UPGRADE_v6.md Prepare v6.1.0-rc.2 release 2026-07-16 23:45:31 +01:00
VM_DISK_MONITORING.md feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
WEBHOOKS.md Correct stale Settings/Alerts nav labels in user docs 2026-07-13 13:47:13 +01:00
ZFS_MONITORING.md feat: Pulse v6 release 2026-03-18 16:06:30 +00:00

📚 Pulse Documentation

Welcome to the Pulse documentation portal. Here you'll find everything you need to install, configure, and master Pulse.


v6 Execution Canonical Source

For Pulse v6 build/release execution work, do not start from this broad docs index. Use:

  1. docs/release-control/v6/internal/SOURCE_OF_TRUTH.md for stable human governance and locked decisions
  2. docs/release-control/v6/internal/status.json for live lane state, lane-to-subsystem ownership, structured evidence references, typed lane/subsystem decision records, and canonical ordered lists
  3. docs/release-control/v6/status.schema.json for the machine-readable status contract
  4. docs/release-control/v6/internal/subsystems/registry.json and docs/release-control/v6/internal/subsystems/registry.schema.json for subsystem ownership, explicit shared-ownership exceptions, and proof-routing rules
  5. python3 scripts/release_control/status_audit.py --check if you need a machine-derived evidence health audit
  6. python3 scripts/release_control/registry_audit.py --check if you need a machine-derived subsystem registry audit
  7. python3 scripts/release_control/contract_audit.py --check if you need a machine-derived subsystem contract audit, including explicit cross-subsystem dependency checks and exact registry-derived shared-boundary wording Local pre-commit runs the v6 machine audits against staged control-file content so partial staging cannot hide governance drift. Local pre-commit also blocks partial staging for hook-sensitive governance files under docs/release-control/v6/, scripts/release_control/, internal/repoctl/, .husky/pre-commit, and .github/workflows/canonical-governance.yml, because those checks still execute or structurally read the working-tree versions locally.
  8. python3 scripts/release_control/subsystem_lookup.py <path> [<path> ...] --pretty --lean if you need subsystem ownership, proof routing, exact contract-focus lines, and compact lane context for a change

For governed runtime changes, a staged subsystem contract only counts if its diff updates a substantive contract section such as Purpose, Canonical Files, Shared Boundaries, Extension Points, Forbidden Paths, Completion Obligations, or Current State, rather than metadata alone.

All other documents are supporting references unless explicitly required for evidence.


🚀 Getting Started

  • Localized getting started: DeutschEspañol. These first-wave pages cover the public install path and preserve commands, config keys, image names, activation keys, and product identifiers exactly.
  • Installation Guide Step-by-step guides for Docker, Kubernetes, and bare metal.
  • Configuration
    Learn how to configure authentication, notifications (Email, Discord, etc.), and system settings.
  • Deployment Models
    Where config lives, how updates work, and what differs per deployment.
  • Migration Guide
    Moving to a new server? Here's how to export and import your data safely.
  • Upgrade to v6
    Practical upgrade guidance and post-upgrade checks for Pulse v6.
  • FAQ Common questions and quick answers.

🛠️ Deployment & Operations

🔐 Security

  • Security Policy The core security model (Encryption, Auth, API Scopes).
  • Privacy What leaves your network (and what doesnt).
  • OIDC / SSO OIDC Single Sign-On configuration (Authentik, Keycloak, Azure AD, etc.).
  • Proxy Auth Authentik/Authelia/Cloudflare proxy authentication configuration.
  • Agent Security Agent privilege model, Proxmox API-only choices, and self-update verification.

📖 Advanced Topics (Relay / Pro / legacy Pro+ / Cloud)

  • AI Modes & Safety Configure Patrol mode, assistant control levels, investigation tuning, and safety guardrails.
  • Role-Based Access Control (RBAC) Define custom roles, assign permissions, and integrate with OIDC group mapping.
  • Audit Logging Tamper-evident event logging for compliance, with query, export, and signature verification.

New in 6.0

💳 Plans (Community / Relay / Pro / Cloud)

Pulse is available in three self-hosted tiers plus hosted Cloud:

  • Community: Free self-hosted monitoring with core monitoring included and 7-day history.

  • Relay: Adds secure remote access to the Pulse web UI, Pulse Mobile pairing for handoff, push notifications, and 14-day history.

  • Pro: Adds hands-on Patrol modes, issue investigation, governed fixes, verified outcomes, operations tooling, governance features, and 90-day history.

  • Cloud: Hosted Pulse with Pro-level capabilities; hosted pricing is unchanged by the self-hosted model lock.

  • Learn more at pulserelay.pro

  • Plans and entitlements (includes the Community/Relay/Pro/Cloud matrix)

  • AI deep dive

  • Multi-Tenant Organizations (Enterprise) — Isolate infrastructure by organization for MSPs and multi-datacenter deployments.

📡 Monitoring & Agents

💻 Development

📁 Previous Versions


Found a bug or have a suggestion?

GitHub Issues