Commit graph

262 commits

Author SHA1 Message Date
rcourtman
1e28a03b57 Stabilize rc1 mock mode and metrics history 2026-04-11 16:47:37 +01:00
rcourtman
1caa34536b Use mock unified state for demo infrastructure charts 2026-04-11 15:35:05 +01:00
rcourtman
347a013e79 Stabilize RC release proof contracts 2026-04-11 14:51:10 +01:00
rcourtman
05b132b110 Fix Kubernetes pod demo history contracts 2026-04-10 23:04:35 +01:00
rcourtman
4ca488101e Optimize compact storage summary chart path 2026-04-10 19:09:12 +01:00
rcourtman
8d97bc3995 Tighten dashboard summary hot paths 2026-04-10 17:32:30 +01:00
rcourtman
b643d6d255 Unify dashboard storage trend loading 2026-04-10 14:53:00 +01:00
rcourtman
7c8fddd9f0 Retire legacy self-hosted checkout compatibility paths 2026-04-08 19:01:22 +01:00
rcourtman
4524baa1b0 Gate grandfather floor capture on settled supplemental inventory 2026-04-08 17:37:55 +01:00
rcourtman
7a47f0923e Canonicalize monitored-system admission enforcement 2026-04-07 20:11:57 +01:00
rcourtman
c4f4a67f6c Tighten self-hosted checkout handoff and auto-return 2026-04-07 18:12:47 +01:00
rcourtman
f8ad57a1f2 Split runtime capabilities from commercial entitlements 2026-04-07 11:40:57 +01:00
rcourtman
1bde5976a0 Route physical disk drawer IO through canonical history 2026-04-01 23:33:43 +01:00
rcourtman
96129265fe Fix canonical workload summary hover ids 2026-04-01 13:41:29 +01:00
rcourtman
41187c6678 Sharpen mock summary isolation and role shaping 2026-04-01 12:21:36 +01:00
rcourtman
92f1007ed4 Unify summary hover and sticky behavior 2026-04-01 02:11:41 +01:00
rcourtman
bbcb153140 Unify mock chart history timelines 2026-04-01 01:04:06 +01:00
rcourtman
4c4882b505 Bucket workload charts by time window 2026-03-31 21:49:44 +01:00
rcourtman
cd22b303eb Normalize infrastructure summary chart buckets 2026-03-31 21:13:41 +01:00
rcourtman
a3f99a271b Curate demo-facing mock data across platform views 2026-03-31 18:05:55 +01:00
rcourtman
a09f61d214 Modernize platform mock runtime fixtures 2026-03-31 13:36:11 +01:00
rcourtman
c511638acc Wire TrueNAS and VMware into mock runtime 2026-03-31 12:53:08 +01:00
rcourtman
7f7aab9f25 Move VMware connection health to poller 2026-03-31 10:28:41 +01:00
rcourtman
e1474cfc92 Implement VMware vCenter resource projection slice 2026-03-30 18:55:06 +01:00
rcourtman
9b19cb4446 Implement VMware vCenter connections slice 2026-03-30 17:56:37 +01:00
rcourtman
ae2dabcfcd feat(truenas): surface poll health in platform connections 2026-03-30 01:57:55 +01:00
rcourtman
56c14ca19f feat(ai): add canonical truenas app config reads 2026-03-29 20:36:43 +01:00
rcourtman
298b23626b feat(ai): add canonical truenas app log reads 2026-03-29 20:13:39 +01:00
rcourtman
b0ba88d541 feat(ai): add canonical truenas app control 2026-03-29 19:50:31 +01:00
rcourtman
3c0707751b Canonicalize Patrol activity semantics 2026-03-29 13:38:06 +01:00
rcourtman
234f2a585f privacy(telemetry): add preview and reset controls 2026-03-28 23:13:43 +00:00
rcourtman
893d003c0a Merge origin/pulse/v6-release and fix reconciled API regressions 2026-03-28 21:14:54 +00:00
rcourtman
5f436f11af Canonicalize relay mobile capability boundary 2026-03-28 19:32:42 +00:00
rcourtman
39fb752178 fix(hosted): trust cloud proxy origins for websockets 2026-03-27 09:43:44 +00:00
Richard Courtman
ab370201d4 fix(api): bind router teardown to owned auth stores 2026-03-26 21:43:30 +00:00
Richard Courtman
8ed5e74912 fix(release): stabilize backend rehearsal blockers 2026-03-26 20:51:29 +00:00
rcourtman
71b8430cca fix(hosted): bootstrap relay from entitlement state 2026-03-25 12:14:16 +00:00
rcourtman
8ba8f0b475 fix(relay): introduce dedicated mobile runtime scope 2026-03-24 23:59:52 +00:00
rcourtman
cc806171dc Trim dead resource graph surface 2026-03-19 14:26:30 +00:00
rcourtman
d07c567b46 Wire tenant resource provider at startup 2026-03-18 20:43:38 +00:00
rcourtman
fae55976a5 Expose unified audit history 2026-03-18 17:44:21 +00:00
rcourtman
f0520bc5e3 Persist unified resource timeline changes 2026-03-18 17:09:30 +00:00
rcourtman
778a2577b6 feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
rcourtman
8a43a964b6 fix(ai): wire patrol circuit breaker on first-time configure 2026-03-13 12:10:14 +00:00
rcourtman
ae2edbde20 fix(ai): complete wiring on first-time configure; guard Ollama fallback
Three follow-up fixes:

1. RestartAIChat() now performs the full post-start wiring (MCP providers,
   patrol adapter, investigation orchestrator) when the service starts for
   the first time via Restart(). Previously these were only wired via
   StartAIChat(), leaving first-time configure with a partially wired service.

2. The Ollama→OpenAI-compatible fallback in createProviderForModel is now
   guarded by !strings.HasPrefix(modelStr, "ollama:") so explicit
   "ollama:llama3" models are never silently rerouted to a different provider.

3. Windows install script registration check now uses the $Hostname override
   (if set) instead of always looking up $env:COMPUTERNAME, so post-install
   verification works correctly when a custom hostname is specified.
2026-03-13 12:06:08 +00:00
rcourtman
a4b0771974 Prevent removed host agents from resurrecting via in-flight reports (#1331)
Host agents removed from the UI would reappear on the next report cycle
because there was no rejection mechanism — unlike Docker agents which
already had resurrection prevention. Mirror the Docker agent pattern:

- Track removed host IDs in a `removedHosts` map with 24hr TTL
- Persist removal records in `State.RemovedHosts` for frontend display
- Reject reports from removed hosts in `ApplyHostReport()`
- Add `AllowHostReenroll()` + API route to clear the block
- Show removed host agents in the Settings UI with "Allow re-enroll"
- Sync removed-agent maps from state on startup for all agent types
- Fix mock integration snapshot missing `RemovedDockerHosts` field
2026-03-09 17:52:34 +00:00
rcourtman
ddecf6d00c Guard legacyMonitor typed-nil and add OIDC refresh panic recovery
Normalize SystemSettingsMonitor interface assignments via reflect to
prevent typed-nil-in-interface (same class as #1324 fix). Also add
defer/recover to the background OIDC token refresh goroutine so a
panic there cannot take down the process.
2026-03-07 10:21:07 +00:00
rcourtman
743ef17b79 Fix AI and config profile handlers broken in v5 single-tenant mode
The single-tenant lockdown (499ab812e) set mtPersistence to nil but
only patched AISettingsHandler with a legacy fallback. AIHandler (chat
service) and ConfigProfileHandler were missed, so AI features (Patrol,
Chat) failed with "chat service not available" and config profiles
would panic on nil dereference. Wire legacy persistence into both
handlers and add the same fallback to ProfileSuggestionHandler.

Fixes #1322
2026-03-06 11:05:01 +00:00
rcourtman
499ab812e3 Fix post-release regressions and lock v5 to single-tenant runtime 2026-03-05 23:46:35 +00:00
rcourtman
10872c8ca8 fix(patrol): remove noisy per-alert log when patrol is disabled (#1258)
The alert callback logged at Info level for every alert regardless of
whether patrol was enabled. TriggerPatrolForAlert already has an
enabled/running guard and its own debug logging.
2026-03-05 10:01:43 +00:00