返回 DeepSeek-Reasonix
turn_event_publication.go
根目录 / internal / control / turn_event_publication.go
1 package control
2
3 import (
4 "reasonix/internal/event"
5 "reasonix/internal/eventwire"
6 "reasonix/internal/turnevent"
7 "time"
8 )
9
10 func (s *turnEventSink) publishOutsideTurn(ledger *turnevent.Ledger, e event.Event) error {
11 if ledger.CurrentStatus() == event.TurnRecoveryRequired && lateBusinessEvent(e.Kind) {
12 return nil
13 }
14 s.c.refreshRuntimeState(e)
15 if _, runtime, exclusive := s.c.v3Binding(); exclusive && runtime != nil {
16 wire := eventwire.ToWire(e)
17 if err := runtime.PublishTranscriptFrame(turnevent.Envelope{Kind: wire.Kind, Event: wire, CreatedAt: time.Now().UnixMilli()}); err != nil {
18 return err
19 }
20 }
21 s.publishInner(e)
22 return nil
23 }
24
24 lines GO