feat(runtime): IM 主人私聊补历史转录(与 Web 主会话同源:抽共享 transcript 包 + OwnerEnvFor 单入口)
This commit is contained in:
1 parent
df8fc660c0
commit
9b903a89bc
14 files changed
+676
-181
No files matched your search
@@ -8,6 +8,7 @@ import (
|
||||
"git.yeij.top/AskaEth/Cyrene_v2/internal/runtime/history"
|
||||
"git.yeij.top/AskaEth/Cyrene_v2/internal/runtime/loop"
|
||||
"git.yeij.top/AskaEth/Cyrene_v2/internal/runtime/model"
|
||||
"git.yeij.top/AskaEth/Cyrene_v2/internal/runtime/transcript"
|
||||
)
|
||||
|
||||
// 本文件实现「忙时新消息在回合内边界注入同一回合」的网关侧
|
||||
@@ -89,7 +90,7 @@ func (s *steerTurn) Steer(ctx context.Context, req loop.SteerRequest) []model.Me
|
||||
sessionID = s.sessionID
|
||||
}
|
||||
o := s.orchestrator
|
||||
reader, ok := o.history.(transcriptReader)
|
||||
reader, ok := o.history.(transcript.Reader)
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
@@ -99,7 +100,7 @@ func (s *steerTurn) Steer(ctx context.Context, req loop.SteerRequest) []model.Me
|
||||
}
|
||||
// 每个边界都重读转录:设计要求的「最新性=下一个边界即生效」正是靠这次重读,
|
||||
// 而不是靠回合开始时的那一次播种(design/15 §2.4)。
|
||||
recent, err := reader.Recent(ctx, sessionID, transcriptContextCount)
|
||||
recent, err := reader.Recent(ctx, sessionID, transcript.ContextCount)
|
||||
if err != nil {
|
||||
steerLog(o).Debug("steer transcript read", "session", sessionID, "step", req.Step, "err", err)
|
||||
return nil
|
||||
@@ -127,7 +128,7 @@ func (s *steerTurn) Steer(ctx context.Context, req loop.SteerRequest) []model.Me
|
||||
// 帧壳必须带本路的 turnId(忙时并行规范草案 §2.5):真并行下客户端要
|
||||
// 靠它把这条消息配到**正确那一路**的 `turn.end`,否则灰态收不了口。
|
||||
o.emitTurnState(sessionID, s.turnID, wsSteerAck, map[string]any{"messageId": c.row.ID, "atStep": req.Step})
|
||||
out = append(out, transcriptMessage(c.row))
|
||||
out = append(out, transcript.Message(c.row))
|
||||
}
|
||||
steerLog(o).Info("pending steered", "session", sessionID, "step", req.Step, "messages", len(out))
|
||||
return out
|
||||
|
||||
Reference in new issue
Block a user