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
@@ -82,6 +82,7 @@ const clientLabel = computed(
<template>
<div class="app-shell">
<div class="window-drag-bar" aria-hidden="true"></div>
<aside class="sidebar">
<div class="brand-block">
<div class="brand-mark">
@@ -144,6 +145,7 @@ const clientLabel = computed(
</aside>
<main class="content">
<div class="content-dragbar" aria-hidden="true"></div>
<RouterView />
</main>
</div>
@@ -156,6 +158,23 @@ const clientLabel = computed(
overflow: hidden;
background: #f0f2f5;
color: #1a1a1a;
position: relative;
}
/* Real drag handle for the macOS hidden title bar — must be above content
but only spans the empty zone behind the traffic lights. */
.window-drag-bar {
position: fixed;
top: 0;
left: 80px;
right: 0;
height: 28px;
z-index: 1000;
-webkit-app-region: drag;
}
.app-shell :where(button, a, input, select, textarea, [role="button"], [role="link"]) {
-webkit-app-region: no-drag;
}
.sidebar {
@@ -165,6 +184,7 @@ const clientLabel = computed(
display: flex;
flex-direction: column;
padding: 24px;
padding-top: 44px;
border-right: 1px solid #e6edf5;
background: #ffffff;
flex-shrink: 0;
@@ -174,6 +194,7 @@ const clientLabel = computed(
display: flex;
gap: 16px;
align-items: center;
-webkit-app-region: drag;
}
.brand-mark {
@@ -459,6 +480,18 @@ h1 {
height: 100vh;
padding: 24px 32px;
overflow-y: auto;
position: relative;
}
.content-dragbar {
position: sticky;
top: 0;
left: 0;
right: 0;
height: 24px;
margin: -24px -32px 0;
-webkit-app-region: drag;
z-index: 5;
}
@media (max-width: 1080px) {