本次提交包含多项核心改进: 1. 新增微信公众号插件拉取传输模式配置,完善manifest与manifest加载逻辑 2. 新增运行态状态机与幂等冲突错误体系,补充错误映射与领域错误导出 3. 优化出站与入站上下文,新增幂等键、流式中断标记等字段 4. 完善发件箱仓储与模型,新增失败条目查询、投递原子语义字段 5. 修复签名验证阶段异常捕获逻辑,防御性处理内置NotImplementedError 6. 新增出站预算释放方法,完善机器人循环预算管控 7. 优化出站管道格式阶段,新增消息长度校验逻辑 8. 完善出站打字指示器阶段,新增重复启动防御与状态同步 9. 重构出站标记失败阶段,按源状态分支处理状态转换 10. 新增入站幂等过滤阶段,修复入站路由阶段空指针问题 11. 优化出站恢复扫描器,修复状态机调用与聚合根重建逻辑 12. 完善微信公众号适配器,新增类型校验与异常包装 13. 修复数据库事务回滚逻辑,简化不必要的显式回滚操作
98 lines
4.0 KiB
JSON
98 lines
4.0 KiB
JSON
{
|
|
"id": "com.yuxi.channels.wechat_woc",
|
|
"name": "微信 WechatOnCloud",
|
|
"version": "1.0.0",
|
|
"channel_type": "wechat_woc",
|
|
"icon": "smartphone",
|
|
"entry_module": "yuxi.channels.plugins.wechat_woc.entry",
|
|
"provides": ["wechat_woc"],
|
|
"lifecycle": ["init", "start", "stop", "pause", "resume", "unload", "reconfigure", "fail"],
|
|
"compatibility": {
|
|
"min_host_version": "1.0.0",
|
|
"woc_bridge_version": "1.2.0"
|
|
},
|
|
"failure_policy": "degrade",
|
|
"depends": [],
|
|
"critical": false,
|
|
"requires_dm_pairing": true,
|
|
"requires_outbound_delivery": true,
|
|
"credential_strategy": {
|
|
"type": "static",
|
|
"acquire_method": "manual",
|
|
"required_fields": ["bridge_url", "bridge_token"],
|
|
"optional_fields": [],
|
|
"supports_rotation": false,
|
|
"supports_revocation": false
|
|
},
|
|
"max_message_length": 2000,
|
|
"supports_credential_cloning": false,
|
|
"transport_mode": "pull",
|
|
"capabilities": {
|
|
"rich_message": false,
|
|
"streaming": false,
|
|
"typing_indicator": false,
|
|
"message_edit": false,
|
|
"message_recall": false,
|
|
"supports_reaction": false,
|
|
"supports_pin": false,
|
|
"supports_card_update": false,
|
|
"supports_card_update_streaming": false,
|
|
"supports_image_inbound": true,
|
|
"supports_video_inbound": true,
|
|
"supports_image_outbound": false,
|
|
"supports_video_outbound": false,
|
|
"mention": false,
|
|
"command": false,
|
|
"directory": true,
|
|
"doctor": true,
|
|
"whitelist": true,
|
|
"wizard": true,
|
|
"tools": false,
|
|
"status": true,
|
|
"probeable": true,
|
|
"identity_resolver": false,
|
|
"lifecycle": true,
|
|
"supports_qr_login": true,
|
|
"agent_collaboration": false
|
|
},
|
|
"capability_requirements": [
|
|
["supports_image_inbound", ["bridge_url", "bridge_token"]],
|
|
["supports_video_inbound", ["bridge_url", "bridge_token"]],
|
|
["directory", ["bridge_url", "bridge_token"]],
|
|
["doctor", ["bridge_url", "bridge_token"]],
|
|
["whitelist", ["bridge_url", "bridge_token"]],
|
|
["wizard", ["bridge_url", "bridge_token"]],
|
|
["status", []],
|
|
["probeable", []],
|
|
["lifecycle", []],
|
|
["supports_qr_login", ["bridge_url", "bridge_token"]]
|
|
],
|
|
"resource_quota": {
|
|
"max_cpu": "15.0",
|
|
"max_memory": "128MB",
|
|
"max_connections": 10,
|
|
"max_calls_per_sec": 10
|
|
},
|
|
"accessible_ports": [
|
|
"ConfigPort",
|
|
"LoggerPort",
|
|
"PersistencePort",
|
|
"CachePort"
|
|
],
|
|
"injectable_pipelines": ["inbound", "outbound"],
|
|
"config_schema": [
|
|
{"key": "bridge_url", "type": "string", "required": true, "default": null, "hot_reloadable": true, "sensitive": true, "scope": "account", "constraints": {"pattern": "^https?://"}},
|
|
{"key": "bridge_token", "type": "string", "required": true, "default": null, "hot_reloadable": true, "sensitive": true, "scope": "account", "constraints": {}},
|
|
{"key": "poll_interval_ms", "type": "integer", "required": false, "default": 2000, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 1000, "max": 10000}},
|
|
{"key": "max_batch_size", "type": "integer", "required": false, "default": 50, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 10, "max": 200}},
|
|
{"key": "max_message_length", "type": "integer", "required": false, "default": 2000, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 500, "max": 5000}}
|
|
],
|
|
"env_vars": [
|
|
{"name": "WOC_BRIDGE_URL", "description": "bridge 服务默认地址(可被 config_schema 覆盖)", "required": false, "default": "http://localhost:8088", "sensitive": false},
|
|
{"name": "WOC_POLL_INTERVAL_MS", "description": "短轮询间隔(毫秒)", "required": false, "default": "2000", "sensitive": false},
|
|
{"name": "WOC_MAX_BATCH_SIZE", "description": "单次拉取消息上限", "required": false, "default": "50", "sensitive": false},
|
|
{"name": "WOC_MAX_CALLS_PER_SEC", "description": "每秒调用上限", "required": false, "default": "10", "sensitive": false},
|
|
{"name": "WOC_HTTP_TIMEOUT_MS", "description": "HTTP 客户端超时(毫秒)", "required": false, "default": "30000", "sensitive": false}
|
|
]
|
|
}
|