feat(channel): 微信 iLink 账号状态三态(诚实口径)
state ∈ 有效 / 被拒(需重扫)/ 未知;🔴 -14 是**被拒不是过期**,且**未知原因绝不写成「过期」** (面板文案与错误码都如实)。三态判定为纯函数 + 三态各有用例。 ⚠️ 未做(如实登记):每账号逐条三态(accounts[] 数组上的三态)本片未做。
This commit is contained in:
1 parent
7505c46b70
commit
99a644d545
12 files changed
+2041
-57
No files matched your search
@@ -4,6 +4,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"git.yeij.top/AskaEth/Cyrene_v2/internal/bus"
|
||||
"git.yeij.top/AskaEth/Cyrene_v2/internal/runtime/events"
|
||||
"git.yeij.top/AskaEth/Cyrene_v2/internal/runtime/model"
|
||||
"git.yeij.top/AskaEth/Cyrene_v2/internal/runtime/orchestration"
|
||||
"git.yeij.top/AskaEth/Cyrene_v2/internal/runtime/orchestration/comm"
|
||||
@@ -51,6 +52,11 @@ var eventBridge = map[string]string{
|
||||
obsLogSubject: wsObservabilityLog,
|
||||
obsTraceSubject: wsObservabilityTrace,
|
||||
obsMetricsSubject: wsObservabilityMetrics,
|
||||
// 渠道事件实时帧(design/26 §2.6 / §4.5;切片 E7):账号状态迁移与(经
|
||||
// PublishingStore 装饰的)其余渠道事件都发在同一个领域主题上,在这里统一落成
|
||||
// 帧类型。载荷即 `events.ChannelEventFrame`(`{"event":{…}}`),与 REST 列表的
|
||||
// `events[]` 同形 —— 面板不需要第二套解码。
|
||||
events.SubjectChannelEvent: wsChannelEvent,
|
||||
}
|
||||
|
||||
// bridgePatterns 是 hub 在 ws.> 之外额外订阅的 bus 模式,用于
|
||||
@@ -67,6 +73,9 @@ var bridgePatterns = []string{
|
||||
// 后台子代理批次结果:它既不匹配 ws.>,也不是 cyrene.agent 的 4 段广播形态,
|
||||
// 所以必须在这里登记订阅,否则后台结果永远上不了前台(只能看到进度帧)。
|
||||
orchestration.SubagentResultSubject,
|
||||
// 渠道事件实时面(切片 E7):精确主题,不用 channel.> —— 不替将来可能的
|
||||
// 其他 channel.* 生产者顺手开口子(多订阅一个主题就多一次解码尝试)。
|
||||
events.SubjectChannelEvent,
|
||||
}
|
||||
|
||||
// normalizeEvent 把 bus 事件映射为下行 wsEvent。ws.* 主题保持
|
||||
|
||||
Reference in new issue
Block a user