feat(desktop): push publish tasks via AMQP topic dispatch WebSocket

Introduce a desktop.task.dispatch topic exchange with per-client routing
keys. Tenant-api publishes a task_available frame keyed by target client
ID when a publish job is created; every instance binds its own transient
queue and forwards to the matching WebSocket (/api/desktop/dispatch) it
owns. Desktop-client now prefers this push channel and only falls back
to HTTP /lease polling when the socket is down. Also drop admin-web
monitoring-plugin remnants and scope the publish modal account list to
publish platforms.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-20 19:46:59 +08:00
parent 7abac1e9c4
commit 9fa091c150
20 changed files with 1083 additions and 177 deletions
+3 -1
View File
@@ -24,11 +24,13 @@
"pino": "^9.0.0",
"playwright-core": "^1.55.0",
"vue": "^3.5.31",
"vue-router": "^4.5.1"
"vue-router": "^4.5.1",
"ws": "^8.20.0"
},
"devDependencies": {
"@playwright/test": "^1.0.0",
"@types/node": "^24.0.0",
"@types/ws": "^8.18.1",
"@vitejs/plugin-vue": "^5.2.4",
"electron": "41.2.0",
"electron-builder": "^25.0.0",