feat(gateway)!: 后台思考档位精确化(+ 面板三态 + 契约 v0.69/v0.70)
- gateway:优先读落库的 rec.Urgency(精确档位,与安静时段窗口无关);仅空串才回落到既有下限推导,并打 urgencyLowerBound 标记(**只在推导值上为 true**)
- 面板三态:精确(例常/紧急(高)/紧急·安全域)|下限(一律加 ≥ 前缀)|未知;下限悬停说明写清「为什么旧行只能是下限」
- 实时帧零协议改动:Record 的 JSON 键就是 urgency ⇒ 帧自然带上;wsParse 早已防御性读取(只加一处 urgencyLowerBound 防御读)
- 契约:v0.69(directMsgPerMin 透传修复,逐字照抄附录 A)与 v0.70(精确化 + 更正 §4.10(b)「实时帧不带这两键」)一起登记
- 变异实测:旧行不标下限 ⇒ 3 条测试红(结构体对比);前端去掉 ≥ ⇒ 渲染测试红
- ⚠️ 诚实边界(§7.3 已登记):实时旧记录刷新前显示「档位未知」、刷新后显示「≥ 例常」——同一条记录两路下的已知差异
This commit is contained in:
1 parent
f9c5b56a2f
commit
a0abf0199a
11 files changed
+390
-131
No files matched your search
@@ -125,11 +125,11 @@ type AdminUserRecord struct {
|
||||
// 它们直接来自后端已存的 PushResult,因此面板不必靠猜来解释
|
||||
// 一次静默。
|
||||
//
|
||||
// Urgency / QuietHoursBypassed(v0.68)回答「这一轮有多紧急、是不是
|
||||
// 穿透了安静时段」。二者都**只在存档可证时**出现,缺席 ≠ 常规档位:
|
||||
// 推导依据见 admin_backthink_urgency.go(那一轮的 `At` 落在安静时段窗口内
|
||||
// 时,判定级联已把档位锁死到可证的范围;窗口之外的轮次存档里没有档位,
|
||||
// 因此不下发,而不是编一个 routine)。
|
||||
// Urgency / UrgencyLowerBound / QuietHoursBypassed 回答「这一轮有多紧急、
|
||||
// 是不是穿透了安静时段」。三者都**只在存档可证时**出现,缺席 ≠ 常规档位:
|
||||
// 取值来源与优先级见 admin_backthink_urgency.go —— 优先读每轮落库的**精确**
|
||||
// 档位;只有 `urgencyLowerBound:true` 的行才是**推导出的下限**(旧行按安静时段
|
||||
// 窗口规则反推),窗口之外且无落库档位的旧行干脆不下发,而不是编一个 routine。
|
||||
type AdminBackthinkItem struct {
|
||||
ID string `json:"id"`
|
||||
Trigger string `json:"trigger"`
|
||||
@@ -143,10 +143,17 @@ type AdminBackthinkItem struct {
|
||||
// Bypassed 表示这是事件驱动的推送、绕过了限频闸("该发就发")。
|
||||
Bypassed bool `json:"bypassed"`
|
||||
At int64 `json:"at"`
|
||||
// Urgency 是这一轮紧急度的**存档可证下限**(urgency 档位词汇:
|
||||
// routine | warning | critical)。`warning` 读作「≥ high 档(可能更高)」;
|
||||
// 无法证明时省略该键(面板显示「未知」)。
|
||||
// Urgency 是这一轮的紧急度档位(urgency 档位词汇:routine | warning |
|
||||
// critical)。**默认读到的是该轮实际生效的精确档位**(每一轮随记录落库);
|
||||
// 只有与 `urgencyLowerBound:true` 同时出现时才读作「≥ 该档(可能更高)」;
|
||||
// 无法证明时省略该键(面板显示「未知」,**不是**「例常」)。
|
||||
Urgency string `json:"urgency,omitempty"`
|
||||
// UrgencyLowerBound 为 true 时表示 Urgency 是**推导出的下限**而不是精确档位:
|
||||
// 该行没有落库档位(`backthink_records.urgency` 列出现之前的旧行,或从未走到
|
||||
// 档位判定点的行),值由安静时段窗口规则反推(见 admin_backthink_urgency.go)。
|
||||
// 只在为 true 时出现:精确档位与「无档位」都不必在线上区分。客户端**不得**把
|
||||
// 它显示成精确档位。
|
||||
UrgencyLowerBound bool `json:"urgencyLowerBound,omitempty"`
|
||||
// QuietHoursBypassed 为 true 时表示这一轮**穿透了安静时段**(轮次时间落在
|
||||
// 安静时段窗口内且该轮判定要推送)。只在为 true 时出现:安静时段之外的轮次
|
||||
// 与「没穿透」不必在线上区分,缺席即「没有这件事」。
|
||||
|
||||
Reference in new issue
Block a user