Skip to content

feat(dingtalk): default registration source to HERMES with disclosure update#12907

Open
meng93 wants to merge 1 commit into
NousResearch:mainfrom
meng93:feat/source-hermes
Open

feat(dingtalk): default registration source to HERMES with disclosure update#12907
meng93 wants to merge 1 commit into
NousResearch:mainfrom
meng93:feat/source-hermes

Conversation

@meng93

@meng93 meng93 commented Apr 20, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR implements the follow-up action outlined in #11574:

Follow-ups (post-merge)
@teknium1 to reach out to DingTalk-Real-AI via their Alibaba contact to register hermes as a sanctioned source token.
When sanctioned, flip REGISTRATION_SOURCE default from openClawhermes and remove the disclosure. The DINGTALK_REGISTRATION_SOURCE env var already exists as an escape hatch.

Now that the Hermes source token has been sanctioned, this PR flips the default registration source from openClaw to HERMES and updates the disclosure accordingly.

What Changed

  • Switched DINGTALK_REGISTRATION_SOURCE default from openClaw to HERMES.
  • Added source normalization logic so hermes (lowercase) is normalized to HERMES.
  • Kept env-based override behavior intact for non-Hermes custom values.
  • Updated user-facing authorization disclosure text to clarify:
    • the flow is initiated by Hermes, and
    • DingTalk may still show OpenClaw branding on the authorization page.
  • Added/updated tests to verify:
    • init request uses {"source": "HERMES"} by default,
    • default source is HERMES,
    • lowercase env input (hermes) is normalized to HERMES.

Related: Additional Official Enhancements

This PR also pairs well with #12769, which brings proactive messaging, media pipeline, card throttle, and other official platform-level improvements to the DingTalk adapter.

Why

As noted in #11574, once DingTalk-Real-AI confirmed and sanctioned the Hermes source token via the Alibaba channel, the default should reflect the sanctioned identity. This eliminates user confusion around legacy OpenClaw branding while maintaining backward compatibility via the existing DINGTALK_REGISTRATION_SOURCE env var escape hatch.

Scope

Files changed:

  • hermes_cli/dingtalk_auth.py
  • tests/hermes_cli/test_dingtalk_auth.py

No functional changes outside DingTalk registration source handling and related messaging/tests.

Test Plan

  • Run targeted unit tests: tests/hermes_cli/test_dingtalk_auth.py
  • Verify no linter issues in touched files
  • Confirm branch diff against main only includes DingTalk auth + tests

Risks / Notes

  • This changes the default source identity used in /app/registration/init.
  • Existing explicit DINGTALK_REGISTRATION_SOURCE overrides still work.
  • UI text now reflects Hermes-led flow while acknowledging DingTalk-side OpenClaw branding.

@meng93 meng93 force-pushed the feat/source-hermes branch 2 times, most recently from f88c966 to ac76df4 Compare April 20, 2026 11:20
@meng93 meng93 force-pushed the feat/source-hermes branch 3 times, most recently from d59e734 to 74615af Compare April 21, 2026 07:42
@alt-glitch alt-glitch added type/feature New feature or request P2 Medium — degraded but workaround exists comp/cli CLI entry point, hermes_cli/, setup wizard platform/dingtalk DingTalk adapter labels Apr 22, 2026
Set DingTalk registration init source to default to HERMES, normalize source handling, and update QR-flow disclosure copy to clarify that users may see Hermes text on DingTalk's authorization page. Add tests to lock in default/normalization behavior and init payload expectations.

Made-with: Cursor
@meng93 meng93 force-pushed the feat/source-hermes branch 2 times, most recently from 63769b8 to a5cf743 Compare April 23, 2026 05:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/cli CLI entry point, hermes_cli/, setup wizard P2 Medium — degraded but workaround exists platform/dingtalk DingTalk adapter type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants