From 2c96f805f4153af5fb396cb55c5473c741e04504 Mon Sep 17 00:00:00 2001 From: xiaowei Date: Tue, 9 Jun 2026 12:45:33 +0800 Subject: [PATCH] fix: consolidate trigger uses full mode instead of cluster_only Problem: server.go 30s ticker loop called consolPipe.Run() which defaults to cluster_only mode. The 'consolidation' and 'backtrack' actions never executed prune/decay/quality steps. Fix: - Separate 'distill' action (keeps cluster_only for fast frequent runs) - 'consolidation' and 'backtrack' now call RunWithMode(full) - selfoptimize.Flow.Register('consolidate') also uses RunWithMode('full') - Proper case indentation (4 tabs for labels, 5 for bodies) Result: prune + decay + quality steps now run when t_consolidation or t_backtrack fires (48h cooldown protects against over-firing) --- go/internal/api/server.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/go/internal/api/server.go b/go/internal/api/server.go index 2a6fba6..170a2df 100644 --- a/go/internal/api/server.go +++ b/go/internal/api/server.go @@ -797,7 +797,7 @@ func NewServer() http.Handler { selfoptimize.RegisterConsolidateFlow(selfoptimize.Flow) // 注册真正的 consolidate 处理器:调用 ConsolidationPipeline selfoptimize.Flow.Register("consolidate", func(task *selfoptimize.PipelineTask) error { - report, err := consolPipe.Run() + report, err := consolPipe.RunWithMode("full") if err == nil && report != nil { // 注入 consolidate 报告 → Dashboard if report.Merged > 0 { @@ -920,12 +920,16 @@ func NewServer() http.Handler { go func(triggerID, action string) { var err error switch action { - case "distill", "consolidation", "backtrack": - // 深度整合含蒸馏质量回溯(Step 4) - _, err = consolPipe.Run() - case "merge": - _, err = consolPipe.RunMerge() - case "prune": + case "distill": + // distill 保持 cluster_only(高频触发,只做快速聚类) + _, err = consolPipe.Run() + case "consolidation", "backtrack": + // full 模式:含 prune + decay + 质量回溯(Step 4) + // 48h cooldown 保护,不会真正每分钟跑 full(cooldown 内 CanFire 仍返回 false) + _, err = consolPipe.RunWithMode("full") + case "merge": + _, err = consolPipe.RunMerge() + case "prune": graphStore.Prune(0.15) case "decay": // 扫描所有记忆,按衰减率计算 freshness