2015 Commits

Author SHA1 Message Date
rcourtman 980f7e7517 fix(ai): prevent false-positive backup findings from alert-triggered analysis
Alert-triggered AI analysis was passing nil for lastBackup when analyzing
guests, causing 'Never backed up' findings even when backup data existed.

- Pass actual LastBackup timestamp from VM/Container state in analyzeGuestFromAlert
- Add regression test to verify backup data is correctly passed through

Fixes false positive 'Never backed up' alerts appearing when CPU/memory alerts fire.
v5.0.0
2025-12-23 21:11:35 +00:00
rcourtman 0d8231a962 chore: bump VERSION to 5.0.0 2025-12-23 20:18:49 +00:00
rcourtman 83cb858c15 fix(agentexec): eliminate race conditions in WebSocket message sending
- Move deadline/pong handler setup BEFORE registering agent in map
- Use writeMu mutex consistently for all WebSocket writes
- Prevents race between registration response and ExecuteCommand calls
- Fixes flaky TestExecuteCommand_RoundTripViaWebSocket in CI
2025-12-23 20:05:46 +00:00
rcourtman 0089f476ee docs: add Pulse Pro section to README 2025-12-23 19:56:18 +00:00
rcourtman 53e5410e55 ci: disable cancel-in-progress to stop cancellation spam 2025-12-23 18:57:51 +00:00
rcourtman 1527e962fe fix(demo): allow AI chat in read-only mode
Whitelists /api/ai/execute in the DemoModeMiddleware so users can
interact with the mock AI assistant while keeping the rest of the
system read-only and hardened.
2025-12-23 18:52:13 +00:00
rcourtman d74eae3a3e fix(demo): support patrol analysis mock
Adds structured XML finding responses to the demo mock AI service.
This prevents the background patrol service from failing with 'Analysis failed'
when running in demo mode without a real LLM provider.
2025-12-23 18:48:50 +00:00
rcourtman c9296af4d6 fix(demo): generate realistic spaced patrol history
Updates the demo data generator to create patrol runs spaced 6 hours apart
over the last 3 days, rather than clustering them all in the last hour.
This provides a more authentic viewing experience on the demo dashboard.
2025-12-23 18:42:49 +00:00
rcourtman 03d7147615 fix(ai): force enabled state in demo mode
Ensures the AI settings endpoint reports enabled=true and configured=true
when running in demo mode (PULSE_MOCK_MODE=true), even if no provider is
configured. This unlocks the frontend UI to allow interaction with the
mock AI assistant.
2025-12-23 18:39:34 +00:00
rcourtman ead3e9ec7e feat(ai): add mock chat response for demo mode
Allows the AI Assistant to provide realistic canned responses on the
live demo server without needing a real API key. Handled automatically
when PULSE_MOCK_MODE=true and no provider is configured.
2025-12-23 18:34:38 +00:00
rcourtman cd9b3bfce5 feat(license): grant Pro features in demo/mock mode
When PULSE_MOCK_MODE=true, automatically grant all Pro features
so the demo server can showcase AI Patrol findings without needing
a license. This is specifically for public demo instances.
2025-12-23 18:18:22 +00:00
rcourtman 49c38c3422 feat(login): add demo credentials banner on demo.pulserelay.pro
Shows a prominent green banner with demo/demo credentials when
accessing the login page from the demo server hostname.
2025-12-23 17:54:58 +00:00
rcourtman f867b9be2f chore: ignore deployment folder 2025-12-23 17:20:40 +00:00
rcourtman 0dd6b89264 fix(test): add missing SecurityAPI.getStatus mock to UnifiedAgents test 2025-12-23 12:50:11 +00:00
rcourtman c59635e370 Polish: Remove dead code from AIOverviewTable 2025-12-23 12:43:04 +00:00
rcourtman be56038acc Polish: Fix Login tests and remove dead code in AIOverviewTable 2025-12-23 12:42:06 +00:00
rcourtman 2e3fa66e8d Polish: Fix Login tests and standardise DiagnosticsPanel types 2025-12-23 12:41:29 +00:00
rcourtman 181f0d27e9 Polish: Fix App.tsx imports 2025-12-23 12:40:37 +00:00
rcourtman 3d8b7ce7cf Polish: Use strong types in CompleteStep 2025-12-23 12:39:58 +00:00
rcourtman a00a614f3f Polish: Use strong types in App and CompleteStep 2025-12-23 12:39:24 +00:00
rcourtman ea901bac43 Polish: Standardize remaining fetch calls in Login and FirstRunSetup 2025-12-23 12:39:02 +00:00
rcourtman 1c9b42a948 Polish: Remove duplicate NodeConfigWithStatus definitions 2025-12-23 12:37:56 +00:00
rcourtman c40a8b5402 Polish: Standardize NodeConfigWithStatus type 2025-12-23 12:37:31 +00:00
rcourtman 9b50629226 Polish: Fix type errors in App and Node Tables 2025-12-23 12:36:04 +00:00
rcourtman 19e971d5f7 Polish: Fix syntax errors in ProxmoxAgentNodesPanel 2025-12-23 12:34:54 +00:00
rcourtman 30ed12dd37 Polish: Use strong types in ProxmoxAgentNodesPanel 2025-12-23 12:34:12 +00:00
rcourtman 220ed1a290 Polish: Fix type error in Login fallback state 2025-12-23 12:33:22 +00:00
rcourtman d3a9735da1 Polish: Use SecurityStatus type in Login.tsx 2025-12-23 12:32:48 +00:00
rcourtman 45f0687a54 Polish: Use SecurityStatus type in App.tsx 2025-12-23 12:32:37 +00:00
rcourtman 5d518e89b2 Polish: Fix duplicate import in FirstRunSetup 2025-12-23 12:32:13 +00:00
rcourtman 17b8f5aefb Polish: Use strong types in FirstRunSetup 2025-12-23 12:31:59 +00:00
rcourtman 444f5d5d4d Polish: Use strong types in SecurityWarning 2025-12-23 12:31:39 +00:00
rcourtman 3de33119b7 Polish: Update SecurityStatus type definition 2025-12-23 12:31:08 +00:00
rcourtman ce275f7339 Polish: Standardize API calls in api/patrol.ts 2025-12-23 12:26:56 +00:00
rcourtman f4cf8c4b64 Polish: Standardize API calls in Login and Settings 2025-12-23 12:26:20 +00:00
rcourtman d842b3a161 Polish: Fix missing apiFetchJSON import in Settings 2025-12-23 12:25:57 +00:00
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