feat(urgency): 通用紧急度通道(Declarer/Level + 只抬不压折算)+ IoT 首个生产者 + 她自己的结论走结构化标记穿透安静时段
CI / Backend (build / vet / test / cross-compile) (push) Has been cancelled
CI / Frontend (tsc + vite build) (push) Has been cancelled

This commit is contained in:
AskaEth committed 2026-10-05 13:11:04 +08:00
1 parent 4a2d276881
commit f91a83ff81
14 files changed
+917 -15

No files matched your search

+15 -1
View File
@@ -11,7 +11,11 @@
// Home Assistant)后续通过同一套 Provider 接口接入。
package iot
import "errors"
import (
"errors"
"git.yeij.top/AskaEth/Cyrene_v2/internal/urgency"
)
// DeviceUpdateSubject 是设备状态跃迁事件发布所用的 bus 主题。订阅方使用该主题
// (或 "iot.>")观察设备变化。
@@ -81,4 +85,14 @@ type DeviceUpdate struct {
Params map[string]any `json:"params,omitempty"`
// Message 是跃迁的可读摘要,会呈现到前端的 device_update 信息流中。
Message string `json:"message,omitempty"`
// Severity 是本次跃迁的显式严重度(通用紧急度词汇 urgency.Level 的别名)。
// 零值 SeverityRoutine 表示例行变化,因此既有订阅方与既有的普通设备变化行为
// 逐字不变;命中安全规则(见 safetySeverity)的跃迁才被标成安全域
// (design/12 §6 安全域豁免)。
Severity AlertSeverity `json:"severity"`
}
// Urgency 实现 urgency.Declarer:DeviceUpdate 因此在**通用通道**上声明紧急度,
// 让 backthink(以及任何订阅方)无需认识 IoT 的专有字段就能承认安全域事件。
// 接线点见 backthink 的 triggerForEvent。
func (d DeviceUpdate) Urgency() urgency.Level { return d.Severity }