it0/it0_app/lib/features
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
..
agent_call feat(flutter): i18n体系(zh/zh_TW/en) + 智能体解聘功能 2026-03-08 00:05:55 -08:00
alerts refactor: 移除 AppBar 刷新按钮,统一使用下拉刷新 2026-02-23 05:08:16 -08:00
approvals refactor: 移除 AppBar 刷新按钮,统一使用下拉刷新 2026-02-23 05:08:16 -08:00
auth fix(flutter): redirect to /home after login (was /dashboard which no longer exists) 2026-03-08 01:32:54 -08:00
billing/presentation feat(flutter): i18n体系(zh/zh_TW/en) + 智能体解聘功能 2026-03-08 00:05:55 -08:00
chat feat(flutter): i18n体系(zh/zh_TW/en) + 智能体解聘功能 2026-03-08 00:05:55 -08:00
dashboard refactor: 移除 AppBar 刷新按钮,统一使用下拉刷新 2026-02-23 05:08:16 -08:00
home/presentation/pages feat(flutter): add 4 general-purpose official agents to home page 2026-03-08 01:54:29 -08:00
my_agents/presentation/pages feat(dingtalk): unified DingTalk bot router with binding flow 2026-03-08 08:12:27 -07:00
notifications feat(flutter): i18n体系(zh/zh_TW/en) + 智能体解聘功能 2026-03-08 00:05:55 -08:00
profile/presentation/pages fix(flutter): replace ListTile with custom InkWell+Row in _SettingsRow to fix vertical text 2026-03-08 01:12:49 -08:00
referral feat(flutter): localize referral page + fix language auto-detection 2026-03-08 00:51:25 -08:00
servers feat(flutter): i18n体系(zh/zh_TW/en) + 智能体解聘功能 2026-03-08 00:05:55 -08:00
settings feat(flutter): localize referral page + fix language auto-detection 2026-03-08 00:51:25 -08:00
standing_orders feat(flutter): i18n体系(zh/zh_TW/en) + 智能体解聘功能 2026-03-08 00:05:55 -08:00
tasks feat(flutter): i18n体系(zh/zh_TW/en) + 智能体解聘功能 2026-03-08 00:05:55 -08:00
terminal feat(flutter): i18n体系(zh/zh_TW/en) + 智能体解聘功能 2026-03-08 00:05:55 -08:00