Commit Graph

1979 Commits

Author SHA1 Message Date
rcourtman 87e73187bd Polish: Fix handleImport error handling in Settings 2025-12-23 12:25:44 +00:00
rcourtman 10bac0bfa7 Polish: Standardize API calls in Settings (Import/Export) 2025-12-23 12:24:43 +00:00
rcourtman 12a7bc5c07 Polish: Fix syntax and API usage in SecurityWarning 2025-12-23 12:24:12 +00:00
rcourtman 16386fc9d7 Polish: Standardize API calls in FirstRunSetup and SecurityWarning 2025-12-23 12:23:28 +00:00
rcourtman d0971e32fc Polish: Fix ConnectStep leftover response check 2025-12-23 12:21:26 +00:00
rcourtman d619f907ff Polish: Consistent API usage in SetupWizard 2025-12-23 12:21:14 +00:00
rcourtman d633422b73 Polish: Standardize API calls in SetupWizard steps 2025-12-23 12:20:47 +00:00
rcourtman 244dbda623 Polish: Fix missing apiFetch import in NodeModal 2025-12-23 12:20:06 +00:00
rcourtman 00623ac8cb Polish: Fix API client usage lint errors 2025-12-23 12:19:50 +00:00
rcourtman 9d6a35880e Polish: Standardize API calls to use apiClient 2025-12-23 12:19:39 +00:00
rcourtman 369b9fa599 Polish: Fix duplicate import in Settings.tsx 2025-12-23 12:17:03 +00:00
rcourtman 68ab3ce9e8 Polish: Fix notification arguments in APITokenManager 2025-12-23 12:16:12 +00:00
rcourtman 04384401b1 Polish: Standardize notifications in remaining components 2025-12-23 12:16:02 +00:00
rcourtman e665f67cd5 Polish: Consistent notifications in Settings modals 2025-12-23 12:15:23 +00:00
rcourtman 0e06859287 Polish: Consistent notifications in FirstRunSetup.tsx 2025-12-23 12:15:00 +00:00
rcourtman cc60a58740 Polish: Consistent notifications in Settings.tsx 2025-12-23 12:14:47 +00:00
rcourtman f2866befb8 Polish: Fix notification arguments in Alerts.tsx 2025-12-23 12:14:27 +00:00
rcourtman 7130e54837 Polish: Add warning to notificationStore 2025-12-23 12:14:08 +00:00
rcourtman 068b6ed530 Polish: Consistent notifications in Alerts.tsx 2025-12-23 12:13:45 +00:00
rcourtman 1522f6a735 Polish: Fix duplicate import in NodeModal 2025-12-23 12:13:11 +00:00
rcourtman 477e3d767e Polish: Remove unused toast imports and finalize notifications 2025-12-23 12:12:57 +00:00
rcourtman a6283db5b1 Polish: Consistent notifications in PBS setup and scripts 2025-12-23 12:12:34 +00:00
rcourtman 96c8ed4342 Polish: Standardize manual setup notifications 2025-12-23 12:12:10 +00:00
rcourtman fd2f3911a5 Polish: Consistent notifications in Quick Setup 2025-12-23 12:11:54 +00:00
rcourtman 888678cb86 Polish: Fix agent command generation logic in NodeModal 2025-12-23 12:11:08 +00:00
rcourtman 8e4e2d4af2 Polish: Usage of NodesAPI in NodeModal 2025-12-23 12:10:43 +00:00
rcourtman c8f4705c5c Polish: Standardize agent command API usage 2025-12-23 12:09:57 +00:00
rcourtman 280be81ee9 Polish: Consistent API usage in UnifiedAgents 2025-12-23 12:06:43 +00:00
rcourtman c7870da57f Polish: Fix remaining window.showToast in UnifiedAgents loop 2025-12-23 12:03:49 +00:00
rcourtman 37c42be85f Polish: refactor UnifiedAgents to use notificationStore 2025-12-23 12:00:43 +00:00
rcourtman 2dbd32a16b Refine v5 release: UI consistency and logging cleanup 2025-12-23 11:58:23 +00:00
rcourtman 62ac999466 feat(ui): Use inline copy buttons in agent setup for consistency. Related to #874 2025-12-23 10:32:47 +00:00
rcourtman 145403b068 fix: Update tier display name test for Pro Intelligence rename 2025-12-23 10:11:45 +00:00
rcourtman 15f0ef779b ux: Add step numbers to agent setup flow. Related to #872
- Step 1: Generate API token (with blue circle)
- Step 2: Installation commands (with green circle when unlocked)
- Shows locked preview of Step 2 before token generation, making it clear
  that installation commands will appear after generating a token
- Addresses user feedback about the unclear agent creation flow
2025-12-23 09:44:28 +00:00
rcourtman 4846b19877 fix: Correct misleading 'button above' text in node setup. Related to #873
The copy button is visually positioned to the right of the code block,
not above it. Changed to 'Click the copy button' for clarity.
2025-12-23 09:41:38 +00:00
rcourtman 7570c4810f feat: Add Connection URL override for agent installation. Related to #874 2025-12-23 09:40:01 +00:00
rcourtman cb3444dd9b fix: Prevent re-migration of deleted env-based API tokens
When a user deletes an API token that was migrated from .env, track
the hash in a suppression list to prevent it from being re-migrated
on the next restart.

Changes:
- Add SuppressedEnvMigrations field to Config
- Add env_token_suppressions.json persistence
- Check suppression list during env token migration
- Record suppressed hash when deleting "Migrated from .env" tokens
- Update RemoveAPIToken to return the removed record

Related to #871
2025-12-23 05:10:47 +00:00
rcourtman 45016430b7 feat(license): rename premium tier to Pro Intelligence 2025-12-23 00:30:55 +00:00
rcourtman 77db408114 feat(ai): add finding validation layer to reduce patrol noise
- Add validateAIFindings() that cross-checks AI findings against actual metrics
- Filter out low-confidence findings (CPU <50%, memory <60%, disk <70%)
- Always allow critical findings, backup issues, and reliability findings through
- Update AI system prompt with stricter thresholds and explicit noise examples
- Add 'before creating a finding' checklist for AI (the 3am test)
- Update AI.md docs with clear value proposition and expectations
- Add comprehensive tests for the validation layer

This ensures paying users get immediate value without noise.
2025-12-22 23:28:09 +00:00
rcourtman b65f42acb5 chore: AI patrol and baseline improvements
- Enhanced patrol finding display in Alerts.tsx
- Improved baseline store with better error handling
- Added clean thinking test coverage
- Updated patrol logic for better finding management
2025-12-22 23:12:11 +00:00
rcourtman c2c352a004 feat: add PBS datastores to unified Storage view (#869)
PBS datastores are now displayed in the Storage overview alongside PVE
storage. Each PBS datastore is converted to a Storage entry with:
- type: 'pbs'
- content: 'backup'
- shared: true
- active: based on PBS instance status

This provides a complete picture of all storage resources in one view
while keeping detailed PBS info in the dedicated PBS section.

Closes #869
2025-12-22 22:12:04 +00:00
rcourtman e4732af0f5 fix: use configured Guest URLs for PVE/PBS/PMG navigation (#870)
- Fix PVE nodes: buildNodeUrl in ProxmoxNodesSection.tsx now prioritizes
  guestURL over host (was ignoring guestURL entirely)
- Add PBS support: GuestURL field added to PBSInstance config, model,
  and API handlers
- Add PMG support: GuestURL field added to PMGInstance config, model,
  and API handlers
- Update NodeSummaryTable to use guestURL for PBS nodes
- Frontend types updated for PBS/PMG guestURL support

The Guest URL setting in node configuration now works correctly across
all node types. When set, it takes priority over the Host URL when
clicking on node names to navigate to the Proxmox/PBS/PMG web UI.

Closes #870
2025-12-22 22:05:25 +00:00
rcourtman 7664e941b0 fix: default mock mode to false 2025-12-22 21:47:07 +00:00
rcourtman 758a58bbd3 chore: gitignore .gemini/ folder 2025-12-22 21:46:18 +00:00
rcourtman c9115efeb8 fix: prevent demo findings from being persisted to disk 2025-12-22 21:45:07 +00:00
rcourtman 5b997b8f2e Add clean separation between mock and real AI findings
- Add IsMockResource() helper to detect mock data resources by naming patterns
- Filter out heuristic findings from mock resources when PULSE_MOCK_MODE is off
- Mock findings still appear when demo mode is enabled
- Ensures users don't see mock data findings in production
2025-12-22 20:23:15 +00:00
rcourtman c04b60c550 Fix demo mode detection to use PULSE_MOCK_MODE env var
The AI demo/mock findings were using a non-existent MOCK_ENABLED
env var. Changed to PULSE_MOCK_MODE which is the actual env var
used by the mock data system.
2025-12-22 20:09:56 +00:00
rcourtman 11cdc5d279 fix(ci): restore arm64 Docker builds in publish workflow
The staging images in preflight are intentionally amd64-only for speed,
but the publish workflow was just copying them instead of building
multi-arch. Now builds linux/amd64,linux/arm64 from source at publish.

Related to #868
2025-12-22 20:03:39 +00:00
rcourtman 828b092ea4 Unify AI patrol system: add Kubernetes analysis, enhance Docker/Podman detection
- Add AnalyzeKubernetes to PatrolConfig and enable by default
- Add analyzeKubernetesCluster() for K8s heuristic analysis
  - Detect offline clusters, nodes not ready, CrashLoopBackOff pods
  - Detect failed/pending pods and unavailable deployments
- Add K8s clusters to LLM context in buildInfrastructureSummary()
- Add kubernetes_cluster as valid resource type in AI prompt

- Enhance analyzeDockerHost() for Docker/Podman
  - Podman-aware messaging based on runtime
  - Add unhealthy container detection (health checks)
  - Add exited container with error detection
  - Add high CPU detection (>90%)
  - Add stale host detection (10+ minutes)
  - Tiered severity for restarts (>10 = critical)

- Add 20 new tests for K8s and Docker analysis
2025-12-22 18:03:46 +00:00
rcourtman 16bd9970e9 feat: add CLI commands for mock mode management
New commands:
  pulse mock enable   - Enable mock mode
  pulse mock disable  - Disable mock mode
  pulse mock status   - Show current status

Makes it easy to toggle between mock and real data without
manually editing config files.
2025-12-22 17:26:57 +00:00