Version: 0.9.63.dev.260503

后端:
1. 主动调度 `unfinished_feedback` 候选生成收口——仅在反馈目标可定位到 `task_item` 时生成 `create_makeup`,课程块与 `target_id=0` 继续回退 `ask_user`,避免生成会被 apply 层拦截的无效预览
This commit is contained in:
Losita
2026-05-03 15:53:09 +08:00
parent ba23ebd201
commit 166fb1b507
3 changed files with 845 additions and 470 deletions

1
.gitignore vendored
View File

@@ -19,6 +19,7 @@ backend/config.yaml
*.log *.log
/tmp/ /tmp/
/frontend/dist/ /frontend/dist/
/scripts/
# 5. IDE 与系统文件 # 5. IDE 与系统文件
.idea/ .idea/

View File

@@ -149,6 +149,9 @@ func (g *Generator) addTaskPoolCandidate(ctx *schedulercontext.ActiveScheduleCon
} }
func (g *Generator) createMakeupCandidate(ctx *schedulercontext.ActiveScheduleContext) (Candidate, bool) { func (g *Generator) createMakeupCandidate(ctx *schedulercontext.ActiveScheduleContext) (Candidate, bool) {
if ctx == nil || ctx.FeedbackFacts.TargetTaskItemID <= 0 {
return Candidate{}, false
}
span, ok := firstContiguousFreeSpan(ctx.ScheduleFacts.FreeSlots, 1) span, ok := firstContiguousFreeSpan(ctx.ScheduleFacts.FreeSlots, 1)
if !ok { if !ok {
return Candidate{}, false return Candidate{}, false