mateclaw/mateclaw-server/src/main/java/vip/mate/channel
倪程伟 a4f2980240 feat(channel): position webchat as Web/API access with optional agentId & multi-session sessionId
Rename the webchat channel from "embed widget" to "Web / API access" (key
unchanged, docs/i18n only) and extend the backend SSE endpoint for pure
backend integration:

- WebChatRequest gains optional agentId (route one Key to multiple agents;
  rejected unless the agent shares the channel's workspace) and sessionId
  (one visitor, multiple isolated threads).
- sessionId is validated ([A-Za-z0-9_-]{1,64}) and only composed into the
  server-derived conversationId — raw conversationIds are never accepted, so
  the key+visitor namespace still bounds every thread.
- A `meta` SSE event echoes the effective sessionId/conversationId at stream
  start so callers can persist and re-address a thread.
- Memory stays attributed per visitor (api:<visitorId>), shared across that
  visitor's sessions.

All new fields are optional; omitting them reproduces the prior behaviour
byte-for-byte. Refs matevip/mateclaw#295.
2026-06-09 09:29:01 +08:00
..
cards sync: interactive approval card on Feishu via Schema-2.0 button + card.action callback 2026-05-20 12:05:47 +08:00
controller fix(channel,agent,chat): unify channel binding / conversation agent / model pin state sources 2026-05-26 09:40:49 +08:00
dingtalk fix(tool): emit absolute download URLs for streaming-generated files (#164) 2026-06-07 15:03:48 +08:00
discord fix(channel): gate WS/long-polling channels on a distributed leader lease (#85) 2026-05-11 10:50:00 +08:00
event feat(channel,trigger): wire channel_message + content_match event sources 2026-05-08 15:07:11 +08:00
feishu fix(feishu): decouple trigger ingest from the Lark WS dispatch thread (#208) 2026-06-09 09:17:26 +08:00
health sync: settings UI polish, channel reliability fixes, DeepSeek cross-turn fix 2026-04-29 11:22:47 +08:00
leader fix(channel): gate WS/long-polling channels on a distributed leader lease (#85) 2026-05-11 10:50:00 +08:00
media fix(tool): persist generated files to disk so download links survive restart and 10-min window (#243) 2026-06-01 21:35:53 +08:00
model feat(channels): redesign list page — show only configured channels, add hero empty state 2026-04-30 06:59:47 +08:00
notification feat(channel): reply queue foundation + lifecycle gate 2026-05-10 08:27:48 +08:00
qq feat(channel/qq): add scan-to-bind onboarding via QQ Open Platform Lite portal 2026-05-20 21:47:49 +08:00
qrcode feat(channel/qq): add scan-to-bind onboarding via QQ Open Platform Lite portal 2026-05-20 21:47:49 +08:00
repository Initial commit: MateClaw — Java + Vue 3 AI Assistant System 2026-04-04 19:03:49 +08:00
service sync: ChannelToolProvider SPI + node-local reconcile framework for channel-native tools 2026-05-20 12:18:51 +08:00
slack feat(channel): forward async tool results to IM channels + slack file upload 2026-05-10 08:28:20 +08:00
telegram fix(channel): gate WS/long-polling channels on a distributed leader lease (#85) 2026-05-11 10:50:00 +08:00
tool feat(feishu): transcribe inbound voice messages via SttService 2026-05-20 16:35:46 +08:00
verifier feat(channels): three-step onboarding wizard with live credential verify 2026-04-30 00:26:38 +08:00
web fix(tool): emit absolute download URLs for streaming-generated files (#164) 2026-06-07 15:03:48 +08:00
webchat feat(channel): position webchat as Web/API access with optional agentId & multi-session sessionId 2026-06-09 09:29:01 +08:00
wecom fix(tool): emit absolute download URLs for streaming-generated files (#164) 2026-06-07 15:03:48 +08:00
weixin feat(channel): shared inbound media pipeline with magic-byte typing and retry 2026-05-30 07:30:38 +08:00
AbstractChannelAdapter.java refactor(channel): drop dead require_mention block in checkAccess 2026-05-20 10:13:59 +08:00
AsyncTaskMediaDispatcher.java feat(channel): forward async tool results to IM channels + slack file upload 2026-05-10 08:28:20 +08:00
ChannelAdapter.java sync: Feishu approval card 5-chain hotfix — verified end-to-end in production 2026-05-20 15:24:47 +08:00
ChannelChatOriginFactory.java fix(tool): emit absolute download URLs for streaming-generated files (#164) 2026-06-07 15:03:48 +08:00
ChannelErrorClassifier.java sync: settings UI polish, channel reliability fixes, DeepSeek cross-turn fix 2026-04-29 11:22:47 +08:00
ChannelHealthMonitor.java chore(channel): remove stale external-reference comments; fix(wiki): canonical slug lookup on merge path 2026-04-15 16:44:02 +08:00
ChannelManager.java fix(channel): IM conversations respect per-conversation model selection (#183) 2026-05-20 17:49:03 +08:00
ChannelMessage.java fix(wiki): backend hardening + batch delete UI 2026-04-13 15:37:12 +08:00
ChannelMessageRenderer.java Initial commit: MateClaw — Java + Vue 3 AI Assistant System 2026-04-04 19:03:49 +08:00
ChannelMessageRouter.java feat(memory): per-owner memory isolation with owner_key + visibility scope (#235) 2026-06-02 17:04:06 +08:00
ChannelSessionStore.java Initial commit: MateClaw — Java + Vue 3 AI Assistant System 2026-04-04 19:03:49 +08:00
DeliveryOptions.java feat(cron): channel delivery via ChatOrigin + Spring AI ToolContext 2026-04-28 21:43:58 +08:00
ExponentialBackoff.java chore(channel): remove stale external-reference comments; fix(wiki): canonical slug lookup on merge path 2026-04-15 16:44:02 +08:00
MediaPathGuard.java chore: neutralize internal references in code comments and migrations 2026-05-02 15:42:10 +08:00
SendContext.java feat(channel): reply queue foundation + lifecycle gate 2026-05-10 08:27:48 +08:00
StreamingChannelAdapter.java Initial commit: MateClaw — Java + Vue 3 AI Assistant System 2026-04-04 19:03:49 +08:00