Skip to content

v4.0.0: Dragon as standalone NMDC client#119

Merged
typhonius merged 1 commit into
v3from
v4.0.0-standalone
Apr 28, 2026
Merged

v4.0.0: Dragon as standalone NMDC client#119
typhonius merged 1 commit into
v3from
v4.0.0-standalone

Conversation

@typhonius

@typhonius typhonius commented Apr 28, 2026

Copy link
Copy Markdown
Owner

Summary

  • Dragon extracted from embedded Perl to standalone NMDC client daemon
  • Connects to hub as a regular DC client (appears in user list)
  • Calls Gateway API for all data operations (no direct DB access)
  • NMDCClient.pm: NMDC protocol client with lock-to-key, chat, PM
  • GatewayClient.pm: HTTP wrapper for all 35+ bot API endpoints
  • dragon.pl: standalone entry point with reconnect loop
  • Only registers commands it discovers from its loaded command modules
  • Gateway handles core commands (tell, ban, history, stats, etc.)

Test plan

  • NMDCClient.pm, GatewayClient.pm, dragon.pl pass syntax check
  • odchbot.yml.example updated with hub/gateway sections
  • Verify Dragon connects to hub and appears in user list
  • Verify !coin, !roll, !8ball work

🤖 Generated with Claude Code

Major breaking change: Dragon is no longer embedded in the hub via Perl.
It connects to the hub as a regular NMDC client and appears in the user list.

New files:
- NMDCClient.pm: NMDC protocol client (lock-to-key, chat, PM, join/quit)
- GatewayClient.pm: HTTP client for Gateway bot API (tells, bans, quotes, etc.)
- dragon.pl: Standalone daemon entry point with reconnect loop

Dragon now:
- Connects to hub as a regular DC client (appears in user list)
- Calls Gateway API for all data operations (no direct DB access)
- Only handles fun/personality commands (coin, roll, 8ball, rr, lasercats, time)
- Gateway handles core commands (tell, ban, history, stats, etc.)
- Registers with gateway to claim only commands it actually implements

Config: odchbot.yml now has hub: and gateway: sections (see odchbot.yml.example)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@typhonius typhonius merged commit 24a77b4 into v3 Apr 28, 2026
0 of 3 checks passed
@typhonius typhonius deleted the v4.0.0-standalone branch April 28, 2026 03:54
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