feat(gateway): 并行提示接线(第二路 + 串行续跑路;OtherMessageID/Queued 取自另一在途路,无其它在途路则不挂)
This commit is contained in:
1 parent
20160c66d8
commit
ba1974038a
3 files changed
+271
-5
No files matched your search
@@ -412,6 +412,13 @@ func (o *Orchestrator) completeTurn(sessionID string, leg *turnLeg, res *loop.Re
|
||||
runLeg, runCtx, cancel := o.beginLegLocked(context.Background(), st, newTurnID(), false, newTurnFence(nil))
|
||||
st.fence = runLeg.fence
|
||||
runCtx = loop.WithSteerSource(runCtx, o.beginSteer(sessionID, runLeg.gen, runLeg.turnID))
|
||||
// 续跑路同样可能有**别的在途路**(并行的另一路还在飞):它也照答自己的那条消息,
|
||||
// 同样需要「另有一路正在进行」的结构化摘要(design/15 §2.5.6,主人 2026-10-05
|
||||
// 裁决:同一类串话、同一个修法)。快照与上面同一个临界区取(st.legs / st.pending),
|
||||
// 没有其它在途路时不挂 ⇒ 单路续跑零成本、行为逐字不变。
|
||||
if notice, ok := parallelNoticeLocked(st, runLeg.gen); ok {
|
||||
runCtx = loop.WithParallelNotice(runCtx, notice)
|
||||
}
|
||||
// 续跑的这一轮同样有「回合前已落库的用户消息」,因此把它们的文档状态
|
||||
// 记到**这一路**上(design/24 §6.1);语音回调同理(协同 C1:忙时排队
|
||||
// 不许把音频丢掉)。
|
||||
|
||||
Reference in new issue
Block a user