feat(CUB-58): Agent Status SignalR Service (Angular)

- Scaffold Angular 17 frontend with standalone components
- Add @microsoft/signalr package dependency
- Create AgentStatusService connecting to /hub endpoint
  - Auto-reconnect with progressive delays
  - Listens for AgentStatusChanged and BroadcastMessage
  - Logs all updates to console
  - Exposes statusUpdates$ and connected$ observables
  - onStatusUpdate() alias matching CUB-58 spec
- Create AgentStatusUpdate interface (agentId, status, lastSeenAt)
- Add APP_INITIALIZER provider to start connection on app boot
- Register initializer in app.config.ts
- Update .gitignore for frontend build artifacts
This commit is contained in:
cubecraft-agents[bot]
2026-04-26 07:21:47 +00:00
parent 230c3b295d
commit a154ea9d66
27 changed files with 15307 additions and 1 deletions

4
frontend/.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,4 @@
{
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846
"recommendations": ["angular.ng-template"]
}

20
frontend/.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,20 @@
{
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "ng serve",
"type": "chrome",
"request": "launch",
"preLaunchTask": "npm: start",
"url": "http://localhost:4200/"
},
{
"name": "ng test",
"type": "chrome",
"request": "launch",
"preLaunchTask": "npm: test",
"url": "http://localhost:9876/debug.html"
}
]
}

42
frontend/.vscode/tasks.json vendored Normal file
View File

@@ -0,0 +1,42 @@
{
// For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "start",
"isBackground": true,
"problemMatcher": {
"owner": "typescript",
"pattern": "$tsc",
"background": {
"activeOnStart": true,
"beginsPattern": {
"regexp": "(.*?)"
},
"endsPattern": {
"regexp": "bundle generation complete"
}
}
}
},
{
"type": "npm",
"script": "test",
"isBackground": true,
"problemMatcher": {
"owner": "typescript",
"pattern": "$tsc",
"background": {
"activeOnStart": true,
"beginsPattern": {
"regexp": "(.*?)"
},
"endsPattern": {
"regexp": "bundle generation complete"
}
}
}
}
]
}