feat: integrate DingTalk multimodal streaming AI cards #2

Merged
zheromiku merged 16 commits from feature/dingtalk-image-ingress into main 2026-07-21 00:28:43 +08:00
Owner

Summary

  • Add DingTalk Stream text ingress with direct/group session policy and group @ admission.
  • Add protected picture and richText mixed-content ingestion for WeKnora vision QA.
  • Add DingTalk AI Card create/update/finalize lifecycle with real WeKnora SSE answer streaming.
  • Add safe Agent progress stages, 500 ms asynchronous coalescing, terminal flush, and Markdown fallback.
  • Add native systemd user-service deployment scripts and PostgreSQL-safe media audit migration.

Architecture boundaries

  • WeKnora source and official database schema remain unchanged.
  • DobotAI calls WeKnora only through its official REST API.
  • DobotAI keeps channel session/turn/media state in its independent PostgreSQL database.
  • Secrets and temporary media credentials are not committed or logged.

Verification

  • Six approved Go package gates pass.
  • DingTalk, WeKnora, and QA race tests pass.
  • go vet passes for changed runtime packages.
  • Private text, picture, richText, AI Card streaming, progress stages, and finalize behavior have passed real DingTalk acceptance.
  • Production health check passes on the merged source stack.

Merge scope

This PR integrates the completed DingTalk channel stack into main. Creating or merging this PR does not itself deploy or restart production.

## Summary - Add DingTalk Stream text ingress with direct/group session policy and group @ admission. - Add protected picture and richText mixed-content ingestion for WeKnora vision QA. - Add DingTalk AI Card create/update/finalize lifecycle with real WeKnora SSE answer streaming. - Add safe Agent progress stages, 500 ms asynchronous coalescing, terminal flush, and Markdown fallback. - Add native systemd user-service deployment scripts and PostgreSQL-safe media audit migration. ## Architecture boundaries - WeKnora source and official database schema remain unchanged. - DobotAI calls WeKnora only through its official REST API. - DobotAI keeps channel session/turn/media state in its independent PostgreSQL database. - Secrets and temporary media credentials are not committed or logged. ## Verification - Six approved Go package gates pass. - DingTalk, WeKnora, and QA race tests pass. - `go vet` passes for changed runtime packages. - Private text, picture, richText, AI Card streaming, progress stages, and finalize behavior have passed real DingTalk acceptance. - Production health check passes on the merged source stack. ## Merge scope This PR integrates the completed DingTalk channel stack into `main`. Creating or merging this PR does not itself deploy or restart production.
zheromiku added 16 commits 2026-07-21 00:26:12 +08:00
zheromiku merged commit 6412f28741 into main 2026-07-21 00:28:43 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Weknora/dobotai-platform#2