it0/it0_app/lib
hailin 8751c85881 feat(dingtalk): unified DingTalk bot router with binding flow
- Add DingTalkRouterService: maintains single DingTalk Stream WS
  connection, handles binding codes, routes messages to agent containers
- Add AgentChannelController: POST bind/:id, GET status/:id, POST unbind/:id
- Add findByDingTalkUserId() to AgentInstanceRepository
- Add dingTalkUserId field to AgentInstance entity + migration 011
- Register DingTalkRouterService + AgentChannelController in AgentModule
- Add IT0_DINGTALK_CLIENT_ID/SECRET env vars to docker-compose.yml
- Flutter: DingTalk bind UI in _InstanceCard (bottom sheet with code
  display, countdown, auto-poll, open DingTalk deep link, bound badge)

Robustness improvements in DingTalkRouterService:
  - Concurrent connect guard (connecting flag)
  - Periodic cleanup timer for dedup/rateWindows/bindingCodes maps
  - Non-text message graceful reply
  - Empty senderStaffId guard
  - serverHost null guard before bridge call
  - unref() cleanup timers from event loop

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 08:12:27 -07:00
..
core feat(flutter): apply Inter font + add language picker in profile 2026-03-08 00:57:45 -08:00
features feat(dingtalk): unified DingTalk bot router with binding flow 2026-03-08 08:12:27 -07:00
l10n feat(flutter): add 4 general-purpose official agents to home page 2026-03-08 01:54:29 -08:00
app.dart feat(flutter): i18n体系(zh/zh_TW/en) + 智能体解聘功能 2026-03-08 00:05:55 -08:00
main.dart feat: add app upgrade system with self-hosted APK update support 2026-02-26 22:35:01 -08:00