Add WhatsApp session bind/unbind to Admin Runtime, and fix related Admin JS errors.

Expose sidecar status, start/stop, QR bind, and unbind so 405 session failures are visible instead of a stuck connecting state.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-08-17 22:23:35 +08:00
parent 1bdbfc3b85
commit 5c6833612f
16 changed files with 1123 additions and 72 deletions

View file

@ -782,6 +782,30 @@ export default {
"wa.specialist": "Specialist",
"wa.testPush": "Test push",
"wa.whitelistMode": "Whitelist mode (allow by default)",
"wa.sessionTitle": "WhatsApp device session",
"wa.sessionHint": "Show online status; scan to bind or clear the local WhatsApp Web session.",
"wa.sessionRefresh": "Refresh",
"wa.sessionStart": "Start sidecar",
"wa.sessionStop": "Stop sidecar",
"wa.sessionBind": "Scan to bind",
"wa.sessionRebind": "Re-scan bind",
"wa.sessionUnbind": "Unbind device",
"wa.sessionUnbindConfirm": "Stop sidecar and delete local WhatsApp auth (state/auth). You must scan again to rebind. Continue?",
"wa.sessionRebindConfirm": "Clear the old session and show a new QR code. Continue?",
"wa.sessionNotInstalled": "Sidecar not installed. Run whatsapp_install.ps1 first.",
"wa.sessionScanHint": "On your phone: WhatsApp → Linked devices → Link a device, then scan the QR below.",
"wa.sessionQrWaiting": "Waiting for QR…",
"wa.sessionQrStale": "QR may be expired. Click Scan to bind again.",
"wa.lifecycle.unbound": "Not bound",
"wa.lifecycle.bound_stopped": "Bound (sidecar stopped)",
"wa.lifecycle.bound_offline": "Bound (offline / reconnecting)",
"wa.lifecycle.online": "Online",
"wa.lifecycle.awaiting_scan": "Awaiting scan",
"wa.lifecycle.logged_out": "Logged out (rebind required)",
"wa.lifecycle.connecting": "Connecting",
"wa.lifecycle.needs_rebind": "Session invalid (re-scan required)",
"wa.sessionPolling": "Refreshing status…",
"wa.sessionNeedsRebind": "WhatsApp rejected the stored session (e.g. disconnect=405). Click Re-scan bind, or remove the old oclaw linked device on your phone first.",
"wecom.autoBind": "Auto bind on first message",
"wecom.autoBindRole": "Auto bind role",
"wecom.autoBindTenant": "Auto bind team",