feat(whatsapp): QR pairing panel in dashboard - #46698
Closed
nalepy wants to merge 2 commits into
Closed
Conversation
Add WhatsApp QR code pairing directly in the Channels page so users can link their phone without touching the terminal. Changes: - bridge.js: expose GET /qr (returns raw Baileys QR string + status) and POST /reset-session (wipes session files, triggers new QR). Track latestQR and qr_pending state for the dashboard to poll. - web_server.py: proxy /api/messaging/whatsapp/qr and /api/messaging/whatsapp/reset to the local bridge on port 3000. - api.ts: add getWhatsappQR() and resetWhatsappSession() client methods plus WhatsappQRResponse interface. - ChannelsPage.tsx: add WhatsappOnboardingPanel that polls every 3 s, renders a QR image via the qrcode library when status is qr_pending, and provides a Reset and re-pair button.
Collaborator
Redesign WhatsappOnboardingPanel to use the same visual patterns: - Rounded border with muted background container - Two-column grid with QR image on right, controls on left - Same button/badge/tone styling as TelegramOnboardingPanel - Status phases: idle, connecting (QR shown), ready (connected) - Cancel button during QR pairing, Re-pair button when connected
Contributor
|
WhatsApp dashboard QR pairing has now landed on main via #60571 (salvage of #56748). Your PR was submitted first and proposed the same feature — thank you, and apologies we couldn't land both. The merged version was picked as the base because it additionally covered the apply/cancel lifecycle, bot/self-chat mode selection, allowlist-preserving apply, and shipped test coverage, but you had the idea in the dashboard first and that's acknowledged here with credit. Closing since the feature is now on main. |
Author
|
glad to help
…On Tue, Jul 7, 2026 at 9:46 PM Teknium ***@***.***> wrote:
*teknium1* left a comment (NousResearch/hermes-agent#46698)
<#46698 (comment)>
WhatsApp dashboard QR pairing has now landed on main via #60571
<#60571> (salvage of
#56748 <#56748>). Your
PR was submitted first and proposed the same feature — thank you, and
apologies we couldn't land both. The merged version was picked as the base
because it additionally covered the apply/cancel lifecycle, bot/self-chat
mode selection, allowlist-preserving apply, and shipped test coverage, but
you had the idea in the dashboard first and that's acknowledged here with
credit.
Closing since the feature is now on main.
—
Reply to this email directly, view it on GitHub
<#46698?email_source=notifications&email_token=BAE5DWDOOHHU24AL56OGMU35DWKW7A5CNFSNUABFM5UWIORPF5TWS5BNNB2WEL2JONZXKZKDN5WW2ZLOOQXTIOJRGAZTKOBSHA42M4TFMFZW63VGMF2XI2DPOKSWK5TFNZ2KYZTPN52GK4S7MNWGSY3L#issuecomment-4910358289>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BAE5DWDQIKW4AZWFTOF4MAL5DWKW7AVCNFSNUABGKJSXA33TNF2G64TZHMYTAMRUGU2TIMRWG45US43TOVSTWNBWGY3DEMZZGQYDPILWAI>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a WhatsApp QR pairing flow directly in the Channels dashboard page, so users can link their phone without touching the terminal.
Problem
The existing WhatsApp integration required users to run a terminal command to display a QR code for pairing — a poor experience for non-technical users.
Solution
scripts/whatsapp-bridge/bridge.js: Exposes two new HTTP endpoints on the local bridge:GET /qr— returns{ status, qr }whereqris the raw Baileys QR string when pairing is needed (statusqr_pending), ornullwhen connected/disconnected.POST /reset-session— wipes saved credentials and triggers a fresh reconnect, generating a new QR code.latestQRvariable and introducesqr_pendingas a connection state.hermes_cli/web_server.py: Adds two proxy endpoints that forward to the bridge over loopback:GET /api/messaging/whatsapp/qrPOST /api/messaging/whatsapp/resetweb/src/lib/api.ts: AddsgetWhatsappQR(),resetWhatsappSession()client methods and theWhatsappQRResponseinterface.web/src/pages/ChannelsPage.tsx: AddsWhatsappOnboardingPanelrendered inside the WhatsApp platform card. It:/api/messaging/whatsapp/qrevery 3 sqrcodelibrary) whenstatus === "qr_pending"Test plan
.env(WHATSAPP_ENABLED=true)npm run buildinweb/)