Skip to content

fix(weixin): clarify login progress and harden iLink polling - #2831

Merged
bobleer merged 1 commit into
GCWing:mainfrom
bobleer:bob/fix-weixin-login-progress
Sep 6, 2026
Merged

fix(weixin): clarify login progress and harden iLink polling#2831
bobleer merged 1 commit into
GCWing:mainfrom
bobleer:bob/fix-weixin-login-progress

Conversation

@bobleer

@bobleer bobleer commented Sep 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

WeChat phone confirmation can leave the desktop looking frozen while iLink holds a QR status request open. Show scan, confirmation, and bot startup progress with delayed waiting guidance, and harden the login and message transport against the official @tencent-weixin/openclaw-weixin 2.4.8 contract.

Type and Areas

Type: Bug fix / UI/UX

Areas: Web UI, remote-connect integration service, Core WeChat bot orchestration.

Motivation / Impact

  • Explain the current login phase and longer waits in English, Simplified Chinese, and Traditional Chinese. Preserve the six-digit pairing flow and cancellation lifecycle.
  • Reuse HTTP clients, serialize overlapping QR polls, and retain confirmed results for retry within the login session TTL.
  • Continue receiving immediately after a normal long-poll timeout, preserve nonempty receive cursors, and handle stale login tokens as failures.
  • Reject malformed send responses and provider application errors instead of reporting successful delivery.

Verification

  • cargo test --locked -p openbitfun-services-integrations --no-default-features --features remote-connect --lib remote_connect::bot::weixin::tests:: — 20 passed. Loopback fixtures cover QR transitions, verification, refresh, overlapping polls and replay, timeout/cursor behavior, stale tokens, and outbound payload/error handling.
  • cargo test --locked -p openbitfun-core --no-default-features --features remote-connect --lib service::remote_connect::bot::weixin::tests:: — 3 passed.
  • NODE_OPTIONS=--no-experimental-webstorage pnpm --dir src/web-ui exec vitest run src/app/components/RemoteConnectDialog/WeixinLoginProgress.test.tsx src/app/components/RemoteConnectDialog/RemotePairingCard.test.tsx src/app/components/RemoteConnectDialog/RemoteConnectDialog.contract.test.ts src/app/components/RemoteConnectDialog/remoteConnectOperationCleanup.test.ts --maxWorkers=50% — 40 passed.
  • pnpm check:web — passed, including type and theme checks.
  • pnpm i18n:audit — passed with no warnings.
  • pnpm motion:audit — reviewed inventory; no new motion debt.
  • pnpm run fmt:rs and git diff --check — passed.

Reviewer Notes

Reference: https://www.npmjs.com/package/@tencent-weixin/openclaw-weixin (2.4.8).

The provider remains platform-neutral. No persisted or public wire fields change. Tests exercise local simulated iLink transport and controller retry behavior; live WeChat, remote workspace, mobile/IM remote control, Peer Device Mode, and Detached Dispatch were not exercised end to end.

Checklist

  • This PR is focused and does not include secrets, temporary prompts, generated scratch files, or unrelated artifacts.
  • Relevant verification is recorded above, or skipped checks are explained.
  • User-facing strings, docs, and locales are updated where applicable.

@bobleer
bobleer merged commit 903e19f into GCWing:main Sep 6, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant