Version: 0.7.2.dev.260322

feat(schedule-plan):  重构智能排程链路并修复粗排双节对齐问题

-  新增“对话级排程状态持久化”能力:引入 `agent_schedule_states` 模型/DAO,并接入启动迁移
-  智能排程图升级:补齐小幅微调(quick refine)分支,完善预算/并发/状态字段流转
-  预览链路增强:完善排程预览服务读写与桥接逻辑,新增本地预览页 `infra/schedule_preview_viewer.html`
- ♻️ 缓存治理统一:将相关缓存处理收口到 DAO + `cache_deleter` 联动清理,移除旧散落逻辑
- 🐛 修复粗排核心 bug:禁止单节降级,强制双节并按 `1-2/3-4/...` 对齐;修复结束日扫描边界问题
-  新增粗排回归测试:覆盖孤立单节、偶数起点双节、Filler 对齐等关键场景
This commit is contained in:
Losita
2026-03-22 13:50:10 +08:00
parent f3f9902e93
commit e5b27df80d
20 changed files with 1961 additions and 166 deletions

View File

@@ -67,6 +67,10 @@ func (r *schedulePlanRunner) dailySplitNode(ctx context.Context, st *SchedulePla
return runDailySplitNode(ctx, st, r.emitStage)
}
func (r *schedulePlanRunner) quickRefineNode(ctx context.Context, st *SchedulePlanState) (*SchedulePlanState, error) {
return runQuickRefineNode(ctx, st, r.emitStage)
}
func (r *schedulePlanRunner) dailyRefineNode(ctx context.Context, st *SchedulePlanState) (*SchedulePlanState, error) {
return runDailyRefineNode(ctx, st, r.chatModel, r.dailyRefineConcurrency, r.emitStage)
}
@@ -107,6 +111,16 @@ func (r *schedulePlanRunner) nextAfterRoughBuild(_ context.Context, st *Schedule
if st == nil || len(st.HybridEntries) == 0 {
return schedulePlanGraphNodeExit, nil
}
// 1. 连续微调且判定为 small先走快速微调节点收缩预算后再进 weekly。
if st.IsAdjustment && st.AdjustmentScope == schedulePlanAdjustmentScopeSmall {
return schedulePlanGraphNodeQuickRefine, nil
}
// 2. 连续微调且判定为 medium直接走 weekly跳过 daily。
if st.IsAdjustment && st.AdjustmentScope == schedulePlanAdjustmentScopeMedium {
return schedulePlanGraphNodeWeeklyRefine, nil
}
// 3. large 或非微调:保持原有逻辑,多任务类走 daily单任务类直达 weekly。
if len(st.TaskClassIDs) >= 2 {
return schedulePlanGraphNodeDailySplit, nil
}