Backend: - Call SetMonitor after router creation to inject resource store - Add debug logging for resource population and broadcast Frontend: - Add resources array to WebSocket store initial state - Handle resources in WebSocket message processing - Use reconcile for efficient state updates The unified resources are now properly: 1. Populated from StateSnapshot on each broadcast cycle 2. Converted to frontend format (ResourceFrontend) 3. Included in WebSocket state messages 4. Received and stored in frontend state 5. Consumed by migrated route components Console now shows '[DashboardView] Using unified resources: VMs: X' confirming the migration is working end-to-end. |
||
|---|---|---|
| .. | ||
| ai_handlers.go | ||
| alerts.go | ||
| alerts_test.go | ||
| auth.go | ||
| auth_helpers_test.go | ||
| auth_scope_test.go | ||
| bootstrap_token.go | ||
| bootstrap_token_test.go | ||
| config_handlers.go | ||
| config_handlers_auto_reg_test.go | ||
| config_handlers_auto_register_test.go | ||
| config_handlers_cluster_test.go | ||
| config_handlers_host_test.go | ||
| config_handlers_pve_user_test.go | ||
| config_handlers_sanitize_test.go | ||
| config_handlers_setup_script_test.go | ||
| config_handlers_temperature_test.go | ||
| config_handlers_transport_guard_test.go | ||
| csrf_store.go | ||
| csrf_store_test.go | ||
| demo_middleware.go | ||
| demo_middleware_test.go | ||
| diagnostics.go | ||
| diagnostics_test.go | ||
| DO_NOT_EDIT_FRONTEND_HERE.md | ||
| docker_agents.go | ||
| docker_agents_test.go | ||
| docker_metadata.go | ||
| export_test.go | ||
| frontend_embed.go | ||
| guest_metadata.go | ||
| host_agents.go | ||
| host_agents_test.go | ||
| http_metrics.go | ||
| http_metrics_test.go | ||
| middleware.go | ||
| middleware_test.go | ||
| notification_queue.go | ||
| notifications.go | ||
| notifications_test.go | ||
| oidc_handlers.go | ||
| oidc_handlers_test.go | ||
| oidc_service.go | ||
| oidc_service_test.go | ||
| rate_limit_config.go | ||
| rate_limit_config_test.go | ||
| ratelimit.go | ||
| ratelimit_test.go | ||
| README.md | ||
| recovery_tokens.go | ||
| recovery_tokens_test.go | ||
| resource_handlers.go | ||
| router.go | ||
| router_arch_test.go | ||
| router_download_test.go | ||
| router_integration_test.go | ||
| router_test.go | ||
| security.go | ||
| security_oidc.go | ||
| security_setup_fix.go | ||
| security_setup_fix_test.go | ||
| security_test.go | ||
| security_tokens.go | ||
| security_tokens_test.go | ||
| session_store.go | ||
| session_store_test.go | ||
| system_settings.go | ||
| system_settings_temperature_test.go | ||
| system_settings_utils_test.go | ||
| system_settings_validate_test.go | ||
| temperature_proxy.go | ||
| temperature_proxy_command_test.go | ||
| temperature_proxy_test.go | ||
| types.go | ||
| unified_agent.go | ||
| unified_agent_test.go | ||
| updates.go | ||
| updates_test.go | ||
Internal API Package
This directory contains the API server implementation for Pulse.
Important Note About frontend-modern/
The frontend-modern/ subdirectory that appears here is:
- AUTO-GENERATED during builds
- NOT the source code - just a build artifact
- IN .gitignore - never committed
- REQUIRED BY GO - The embed directive needs it here
Frontend Development Location
👉 Edit frontend files at: /opt/pulse/frontend-modern/src/
Why This Structure?
Go's //go:embed directive has limitations:
- Cannot use
../paths to access parent directories - Cannot follow symbolic links
- Must embed files within the Go module
This is a known Go limitation and our structure works around it.