feat(backthink): 静默期自排 C 的判定侧(C1-1,切片三之一)
- 追加 TriggerSelfWake(不动既有编号)+ SelfWakeRequest(走既有 urgency 声明通道,不新造第二条) - escalateImport 折算收成唯一 foldDeclared(事件轮与自排轮共用、只上抬取较高档) - DecisionInput.Heartbeat bool → Kind TriggerKind;心跳仍免检、**自排不享心跳豁免**(要求声明 ≥ warning) - push 与档位分离:push.go 零改动即自动正确(eventDriven 对 self_wake 为 false ⇒ 照旧过 PushGate) - 4 个变异自检(折算空操作/删自排分支/常量传心跳/非事件一律豁免) ⚠️ 本片只是判定侧:WakeNow/worker/闸属 C1-2,工具面与提示词属 C1-3 ⇒ **不得写『C 已完成』** ⚠️ 遗留 G-A(建议登记进 design/12 C.4):TriggerKind 零值=TriggerHeartbeat ⇒ 漏填=最宽豁免(fail-open); 本片已在字段注释与单测里显式化,但规格侧应补一句或引入 TriggerUnknown
This commit is contained in:
1 parent
ea43f07bce
commit
94da6bcd6d
8 files changed
+353
-26
No files matched your search
@@ -7,14 +7,17 @@ package backthink
|
||||
// 门(主人要求:"该发就发"——真正的事件照发,只扣下真正的重复)。
|
||||
//
|
||||
// 推送进行时它原子地把 tr 记为最新事件键,并在任何非事件推送
|
||||
// (心跳)时清除该键,以免更早事件的再次重复
|
||||
// 被中间一次反思错误地抑制。
|
||||
// (非事件轮:心跳 / 启动轮 / 她自己排起的一轮)时清除该键,以免更早事件的再次
|
||||
// 重复被中间一次反思错误地抑制。
|
||||
//
|
||||
// 自排轮与心跳同分支(清链、不去重):它既不是外部事件、就不该参与事件链,
|
||||
// 因此真实事件的重复链不会被自排轮错误抑制;自排轮的推送仍由 PushGate 兜。
|
||||
//
|
||||
// 调用方把它跑在把推送交给 Pusher 之前;真正的重复
|
||||
// 会被记为已抑制(RouteNone),而不是投递出去。
|
||||
func (b *Backthink) eventRedundant(tr Trigger) bool {
|
||||
if tr.Kind != TriggerEvent {
|
||||
// 非事件推送(心跳)会打断同一事件链。
|
||||
// 非事件轮(心跳 / 启动轮 / 自我唤醒轮)会打断同一事件链。
|
||||
b.eventMu.Lock()
|
||||
b.lastEventKey = ""
|
||||
b.eventMu.Unlock()
|
||||
|
||||
Reference in new issue
Block a user