ForcePilot/backend/package/yuxi/channels/plugins/wechat_woc/manifest.json
Kris 1c6bed1403 feat: 完成微信公众号插件全链路修复与基础设施增强
本次提交包含多项核心改进:
1. 新增微信公众号插件拉取传输模式配置,完善manifest与manifest加载逻辑
2. 新增运行态状态机与幂等冲突错误体系,补充错误映射与领域错误导出
3. 优化出站与入站上下文,新增幂等键、流式中断标记等字段
4. 完善发件箱仓储与模型,新增失败条目查询、投递原子语义字段
5. 修复签名验证阶段异常捕获逻辑,防御性处理内置NotImplementedError
6. 新增出站预算释放方法,完善机器人循环预算管控
7. 优化出站管道格式阶段,新增消息长度校验逻辑
8. 完善出站打字指示器阶段,新增重复启动防御与状态同步
9. 重构出站标记失败阶段,按源状态分支处理状态转换
10. 新增入站幂等过滤阶段,修复入站路由阶段空指针问题
11. 优化出站恢复扫描器,修复状态机调用与聚合根重建逻辑
12. 完善微信公众号适配器,新增类型校验与异常包装
13. 修复数据库事务回滚逻辑,简化不必要的显式回滚操作
2026-07-07 18:54:33 +08:00

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}
]
}