feat(monitoring): dispatch monitoring tasks to desktop via AMQP outbox

Replace SSE /desktop/events with priority AMQP dispatch for monitoring
runs, and add phase1/phase2 infrastructure so desktop workers can lease,
resume, report, skip, and cancel monitoring tasks over the existing
dispatch WebSocket.

- Add monitoring collect outbox worker and phase2 desktop task fields
- Add /desktop/monitoring/tasks/{lease,resume,result,skip,cancel} routes
- Introduce execution-devtools and network-observer on desktop runtime
- Refactor runtime-controller, LoginView, and doubao adapter for the new flow
- Add channelName column to tracking views

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-22 00:24:21 +08:00
parent 749b6b99cd
commit 4142c53fa6
57 changed files with 7897 additions and 985 deletions
@@ -75,11 +75,16 @@ func TestDesktopClientRoutes_ClientTokenAuth(t *testing.T) {
method string
path string
}{
{http.MethodGet, "/api/desktop/events"},
{http.MethodGet, "/api/desktop/dispatch"},
{http.MethodGet, "/api/desktop/accounts"},
{http.MethodPost, "/api/desktop/clients/offline"},
{http.MethodPost, "/api/desktop/tasks/lease"},
{http.MethodPost, "/api/desktop/tasks/:id/result"},
{http.MethodPost, "/api/desktop/monitoring/tasks/lease"},
{http.MethodPost, "/api/desktop/monitoring/tasks/resume"},
{http.MethodPost, "/api/desktop/monitoring/tasks/:id/result"},
{http.MethodPost, "/api/desktop/monitoring/tasks/:id/skip"},
{http.MethodPost, "/api/desktop/monitoring/tasks/:id/cancel"},
}
for _, rt := range routes {