fix(saa): 6c6g 评审整改——P1 K_STATUS 清零 + P2 stage2 fallback 注释

P1(真修):renderNode 起手 out.put(K_STATUS,"") 清 stale 状态——checkpoint/saver 跨 run 复用 state 时,
  上轮 giveup 写的 K_STATUS="failed" 会残留,下次 modify 进来 modifyRouter 首检 K_STATUS 误判失败、
  把 gamedef 确定性点改错误路由到 END。
P2(语义·仅注释):generateNode fallback 处加注,说明 stage2 升档后回退档仍取廉价档(MiniMax-M3)是
  「可用性优先于本次升档边际质量」的有意取舍(强档超时也要出包),非疏漏。

验证:mvn -Dtest=SaaStudioGraphTopologyTest,SaaStudioNodesRegressionTest → Topology 30/30 + Regression 8/8 全绿。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
lili 2026-06-18 09:20:49 -07:00
parent cb0a273d43
commit 6a9bd4d349

View File

@ -333,6 +333,9 @@ final class SaaStudioNodes {
// 救场阶梯控制面初值§6.3失败计数归零模型档起 stage1escalate 命中阈值才升 stage2
out.put(K_FAIL_COUNT, 0);
out.put(K_MODEL_TIER, "stage1");
// 6c6g 评审 P1 stale K_STATUScheckpoint/saver run 复用 state 上一轮 giveup 写的 K_STATUS="failed"
// 会残留下次 modify 进来 modifyRouter 首检 K_STATUS 会误判失败 gamedef 确定性点改错误路由到 ENDrender 起手归零
out.put(K_STATUS, "");
// modify 入参透传create 路缺省空串renderRouter modifyMode 分流§6.2
out.put(K_MODIFY_MODE, s.value(K_MODIFY_MODE, String.class).orElse(""));
out.put(K_BASE_VERSION_ID, s.value(K_BASE_VERSION_ID, String.class).orElse(""));
@ -453,6 +456,8 @@ final class SaaStudioNodes {
String pname = selectGenerateModelName(role, isStage2 ? "stage2" : "stage1",
gm.codeName(), gm.fixName(), gm.codeStage2Name(), gm.fixStage2Name());
// U4 回退档 role主模型耗尽 180s×3 重试后再试一档治超时/返空/截断接现救场体系不另起限次
// 6c6g 评审 P2有意为之·保可用降级stage2 升档后 primary=强档 fallback 仍取廉价档(codeFallback=MiniMax-M3)
// 这是可用性优先于本次升档边际质量的刻意取舍:强档也超时时仍要出包(有结果好过整 job ),而非追求"回退档也必须强档"
ChatModel fallback = isFix ? gm.fixFallback() : gm.codeFallback();
String fname = isFix ? gm.fixFallbackName() : gm.codeFallbackName();
int attemptNo = ((Number) s.value(K_REPAIR_COUNT, 0)).intValue(); // 当前修复轮序首轮=0