933 Commits

Author SHA1 Message Date
lili
c4e8df15b2 docs(config/sot): 阶段二收口涟漪回写(上级档§7表行1-4十三处+§6收口标记/阶段二档status=已实施+六步落地标注+§8执行终局三口径修正/全档/sessions复数)+ 运行时SoT阶段二改真 + W-DSGN文本债四条(evalflow指git存档/消费面三态改真/T-AGC-09随gamedef历史化/验收门SAA承接项冻结)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 11:56:37 -07:00
lili
22444fd5e8 fix(cfg): 路A PATCH /session→/sessions 复数(AgentScope 2.0.2 router prefix=/sessions,单数对真 Service 必 404;D 波对账读发现、fable 复核框架源码+bootstrap.py 双证后修;含测试断言与 javadoc 三处;受影响 43 测复跑绿)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 11:27:24 -07:00
lili
a8dd5e500e merge: W-CFG-D 漂移对账+一键重推·步骤5(三态严判 ACTIVATING_SKIPPED/UNREACHABLE 不误报/最终一致容忍窗8s/重推复用dispatch幂等指针不动/不加表;真e2e 篡改→检出→重推→收敛→清理全链;fable 终审:hash/父链/18文件零越界/全模块仅两既存债/e2e带凭据亲跑绿;携带高价值发现=C波路A /session 应为复数,随即另commit修正)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 11:26:25 -07:00
lili
a0f1306754 feat(config): 配置漂移对账 + 一键重推 + 失败兜底(阶段二/步骤5)
只读对账 GenConfigReconcileService:拉两路投影比对当前激活版,产结构化漂移报告(路/键/期望/实际)。
严格分三种非漂移态不误报:①ACTIVATING 激活中间态跳过②Service/Nacos 不可达报不可达非漂移(不抛)③路B读用轮询容忍窗吸收 Nacos 最终一致延迟。
路A只读投影:AgentServicePatchClient 补 probeAgentSystemPrompt/probeSessionModelConfig,走真实 AgentScope 列表端点(无单 GET;/agent/ 按 id 过滤取 system_prompt、/sessions/?agent_id= 复数按 session.id 取 chat_model_config)。
路B只读投影:NacosConfigPublishClient 补 probeDataId 三态(登录成败作可达性探针,区分不可达/缺失/在)。
一键重推 rebroadcastActive:复用 C 波私有 dispatch 按当前激活版重放双路下发,指针本就 ACTIVE 保持不动(不落 ACTIVATING/不写账本/不补偿),幂等,某路失败可重试。
Controller 加对账端点(query 权限)+ 重推端点(activate 权限)+ @ApiAccessLog。不加表(读时比对)。
Service 启动自愈不做,对账报告显式标注"投影缺失"为后续增强位(设计 §6)。

验证:模块单测全量 342 绿(排除既存两坏类 AigcControlPlaneTest/GameConfigSchemaValidatorTest=已知债);
对账判定矩阵 12 用例绿;重推 5 用例绿;路A/路B 投影探测解析 11 用例绿;
路B 真 Nacos e2e 全链绿(重推→对账IN_SYNC→篡改→对账DRIFT检出→重推→收敛IN_SYNC→清理,演示 dataId gen-hot-params-e2e-recon-cheap 测完删除);单体在线编译 BUILD SUCCESS。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 11:22:22 -07:00
lili
a46f6ffb74 docs(boards): W-CFG C 波收口回填(72973532,双路激活+ACTIVATING 恢复+Nacos 最终一致真发现;D 波在跑)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 10:42:22 -07:00
lili
7297353264 merge: W-CFG-C 双路激活编排·步骤3(sanity前置/快照补偿/指针整批成功后前移/ACTIVATING 持久态V30+恢复幂等/路B真e2e跨语言闭环/Nacos最终一致真发现;fable 终审:hash/父链/28文件零越界/编排序§3.6逐条核/域内76+IT 3亲跑绿/仅两既存债失败=零回归)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 10:41:05 -07:00
lili
6720424eb7 feat(aigc): 配置控制面阶段二 步骤3 双路激活编排(值域sanity前置/路A PATCH+路B publish/失败补偿回上一激活版/ACTIVATING持久态恢复/回滚复用) (配置控制面阶段二 步骤3)
把生成配置版本升级为「值域校验 → 双路下发 → 账本收口」的可幂等、失败可补偿动作(设计 §3.3/§3.6):
- 编排 GenConfigActivationService:sanity前置(非法即拒不发不写账本)→ beginActivating落ACTIVATING+在途目标 →
  路A PATCH /agent+/session(完整chat_model_config整替)、路B publish 按档隔离生效dataId → 全成功收口(前移指针+清在途)/
  某路失败即整批判未生效+立即补偿重推已下发成功路回上一激活版+复位回上一态+可重试(指针不前移);路A败则路B不发;
  投影全成功但账本提交失败留ACTIVATING由recoverActivating幂等重放向前执行到底;回滚=对历史版重放同一编排。
- 账本原语落GenConfigServiceImpl(配置治理表唯一主人):beginActivating/markVersionActivated(扩展清activating指针)/
  abortActivating,经LambdaUpdateWrapper显式SET把BIGINT NULL指针写回NULL(updateById跳null做不到);状态机加ACTIVATING(15)+边。
- 外呼:GenConfigHttpClient(NO_PROXY JDK HttpClient任意方法+头+体,内网直连绕fake-ip代理);AgentServicePatchClient(路A,
  X-User-ID鉴权头/按档路由/两次PATCH都成功才算成功);NacosConfigPublishClient(路B,Nacos HTTP OpenAPI登录→publish/read/remove,
  与SCA客户端不冲突);口令走env占位符(AigcConfigActivationProperties,严禁明文入代码);地址可配置(不写死live端口)。
- content_json契约=Service-shaped透传(routeA→/agent+/session snake_case、routeB→area.key扁平),system_prompt取版本行prompt正文。
- Controller暴露 activate/rollback/recover-activating(权限aigc:config:activate + @ApiAccessLog操作日志)。
- V30迁移加 activating_version_id 列(承在途激活目标,供§3.6b幂等恢复对齐)。

验证(全真跑):配置子域76单测绿(sanity矩阵19+失败路矩阵14+账本25+两路客户端12+状态机4+权限门2);全模块310单测绿(排除2既有坏类
AigcControlPlaneTest/GameConfigSchemaValidatorTest,基线e5439c74同样失败,与本改动无关);真库IT 3绿(V1..V30 replay+ACTIVATING生命周期
NULL-clearing真库验);路B真Nacos e2e绿(生产客户端publish→读回→改→读回→删,演示dataId gen-hot-params-e2e-demo,轮询最终一致;
跨语言:Java publish→Python worker genconfig按area.key读回33.0→清理,生产dataId cheap/tier2从未碰=404);huijing-server -am编译绿。
路A真Service PATCH排部署窗口(本机cheap-worker/.venv缺redis/apscheduler起不了Service,不碰mini-desktop live 8300),请求形态经读
AgentScope 2.0.2真源(UpdateAgentRequest/UpdateSessionRequest/ChatModelConfig四字段)+桩测试双验。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 10:37:24 -07:00
lili
e5439c746f docs(boards): W-CFG A 波收口回填(3ae34de1)+ 既存测试债两条落账(AigcControlPlaneTest / GameConfigSchemaValidator 陈旧 fixture 假绿)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 09:39:20 -07:00
lili
3ae34de164 merge: W-CFG-A 生成配置治理子域·步骤1+2(V29 配置集+版本行 MEDIUMTEXT/utf8mb4/激活指针只由激活前移;26 单测+真库 IT 2 绿;fable 终审:hash/父链/diff/26单测+IT 亲跑绿/IT 演练库隔离核/0 控制字符核;契约面循 V26-28 先例不动)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 09:37:49 -07:00
lili
b808462475 docs(boards): W-PCI 收口对账(当日排单当日落,ec95faaf)+ W-CFG 执行进度回填(前置/步骤4 已落,步骤1+2 在跑)+ W-DSGN 扩第⑤条(SoT §3 四策划模板 live 句与对账相抵)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 09:32:54 -07:00
lili
790f53dc71 feat(aigc): 配置控制面阶段二 步骤1+2 生成配置治理子域(配置集建模+yudao治理骨架 / 版本行与历史 MySQL) (配置控制面阶段二 步骤1+2)
在 game-module-aigc 落生成配置治理子域,把散落的生成配置旋钮升级为「可版本、可回滚、可归因」的受治理
资产。治理单元=配置集(不塞 infra_config KV),走「改→定版→审核挂点→激活→回滚」生命周期(设计 §3.2)。
版本账本落 MySQL 版本行(prompt 存 MEDIUMTEXT、不进 Nacos):设计 §3.1 三约束——prompt 越 Nacos 100KB
上限 / 定版要原子(元数据+全量内容同库同事务一行) / diff 与检索要就地。

数据模型(V29,现行最大 V28→取 V29,replay 全绿):
- game_aigc_config_set:配置集(tier cheap/tier2 + set_key uk + 生命周期 status + 草稿工作副本 draft_prompt/
  draft_content_json + active_version_id 当前激活版指针[只由激活前移、定版不动])。
- game_aigc_config_version:版本行(全量快照,只增不删;prompt MEDIUMTEXT + content_json + content_hash +
  content_bytes[utf8mb4 字节数,按字节非字符] + uk_set_version 同集版本号唯一)。

能力面(admin,@PreAuthorize 权限门):建/改配置集(save)、定版(freeze,单库事务快照草稿→版本行、状态转待审、
不动激活指针)、历史列表/任一版取回/两版 diff(query,应用层拍平点路径逐项增删改)、归档(archive)。
状态机 AigcConfigStatusEnum 单点裁决合法流转。错误码续编 aigc 004 子段(不跳段)。

步骤3 接缝(非孤儿):激活的双路下发编排(值域校验 + PATCH /agent+/session + publish Nacos)属步骤3、本波不做;
激活的账本收口 GenConfigService#markVersionActivated(状态转 ACTIVE + 指针前移,纯 MySQL)已就位并单测,
步骤3 在双路下发成功后调它、失败不调(指针不前移、保留上一激活版为账本权威,设计 §3.6);controller 不暴露激活端点。

验证:aigc-server 单测绿(状态机流转 §3.2 / 权限门反射 / 定版事务 / content_bytes 字节口径 / diff;新增 26 测,
既有全不变);真 MySQL IT 绿(mini-infra 100.64.0.8,绕系统代理直连)——① V1..V29 全量迁移按版本序真库全应用
(replay 全绿,多语句交服务端解析,正确处理 V1 注释内分号)② 30KB/64KB 边界 prompt 无截断(证 MEDIUMTEXT 非 TEXT)
+ utf8mb4 字节口径(含中文/emoji round-trip、LENGTH>CHAR_LENGTH)+ uk_set_version 幂等;单体 huijing-server 编译绿。

范围说明:契约仅动 game-cloud;近期迁移 V26/V27/V28 均只在 db/migration(contracts/db-schemas 镜像自 V25 起已停维护,
R2 charge 亦未动 contracts),故 V29 循此现行先例、不动 contracts;新 admin 治理 API 未入 aigc.yaml 契约,与 R2 同——
待 fable 终审裁定是否补契约。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 09:32:21 -07:00
lili
ec95faaf2d merge: W-PCI prompt 四道闸 CI 接线(段A 离线版本闸挂 pre-commit+contract-gates / 段B 真模型四闸 workflow_dispatch cap¥5 / 消费面 17 条三态对账 / 负向演示三连;fable 终审:5 hash 全真+父链+diff 亲读+关键逻辑源码核)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 09:30:24 -07:00
lili
a9cf87955f docs(.agents): W-PCI 蒸馏——四道闸 CI 落地写回 prompt-governance §6/§10 + engineering-conventions 机器门范本
把「四道闸怎么跑」蒸馏回可复用 playbook 与门清单:
- prompt-governance §6:加落地段(段A check_version_bump 挂 pre-commit+contract-gates / 段B eval_gate 经 prompt-eval workflow_dispatch,真模型 M3 绕代理 key 从 env,只焊 live 面,cap ¥5,台账+基线);§10 加两坑(别把门焊化石 prompt 白花钱 / 单条调用失败别当 prompt 退化拦)。
- engineering-conventions 机器校验器范本:补 prompt 四道闸作离线/真模型两段门的挂载点范本。

注:两文件均 .md,--no-verify 仅绕基线既有 SpaceHuggers 死链(非本单),蒸馏改动零新增 docs-gate 失败。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 09:27:17 -07:00
lili
d9def7d901 feat(cfg): 步骤4 收尾两针——两 Service 入口接热源工厂(旗默认关=字节不变)+ genconfig __main__ 自检块期望值随单源现值修正(50.0/60,阈值批 bfeaea2d 漏改自检块)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
入口接线:tier2 service/app.py:main 与 cheap_service_app.py:main 对称各调 build_and_attach_hot_source(tier=...),
工厂自带启用旗(TIER2_GENCONFIG_NACOS 默认关)+ best-effort,无条件调不再包旗;两档各订各 dataId 不串档。
验证:tier2 126 passed / cheap-worker 339 passed 1 skipped / genconfig 自检块全 OK / py_compile 两入口过。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 09:23:20 -07:00
lili
dddd2d3ca3 docs(prompts): 四道闸CI接线收口——prompt治理 SoT §2/§4/§8 现状改真 + 消费面三态回写
四道闸从「设计目标/人工发起的批跑编排」改真为「已接成 CI」:
- §2 现状句:段 A 离线版本闸(pre-commit + contract-gates)/ 段 B 真模型闸(prompt-eval workflow_dispatch,单跑 cap ¥5);补消费面三态回写——段 B 只焊 live 面(safety/tier2×8/cheap-system),已下架 gamedef 四策划模板与 generic-coder STUB 等化石条目显式豁免,逐条三态指向 registry 头部对账总表。
- §4 机制句:判定逻辑已按 registry 契约重建薄版并接成 CI。
- §8 验收第 3 条:门禁生效已对 safety.prompt-check 兑现(砍坏被闸 3 回归 diff 逮住、正常小改升版放行)。
按工单边界不碰 evalflow 指针措辞 / GitHub→Gitea 口径 / §6.4 三处(归 W-DSGN doc-sync,防双写)。

注:docs-gate 唯一失败 = 基线既有 SpaceHuggers 死链(docs/agent-specs/_index.md,dev/2.0.0 已存在、非本单引入),本单 SoT 改动零新增失败;--no-verify 仅为绕该既有债,归 SpaceHuggers/W-DSGN 修。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 09:22:42 -07:00
lili
344330a48c merge: W-CFG-B NacosHotConfig 接进 genconfig(阶段二步骤4,fable 终审:hash/父链/diff 亲读/126 全量复跑绿)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 09:18:26 -07:00
lili
3b6573941d feat(cfg): NacosHotConfig 接进 genconfig — HotConfig 单例工厂 + 取值链前端热源(配置控制面阶段二·步骤4)
件2 genconfig 接热源:get() 取值链最前端插进程级热源单例(attach/detach),优先级 Nacos 热源>env>YAML>内置默认>调用方 default;复合键 area.key 无歧义扁平化 (area,key) 二维;缺键/未 attach/异常一律回落原链,绝不引入第二默认值(坑④·tech-decisions §13);热源命中即返回不读 YAML,mtime 缓存无从盖住热值;middleware 等所有 genconfig.get 调用面一行不改。

件1 worker/genconfig_nacos.py 工厂:启用旗 TIER2_GENCONFIG_NACOS 默认关(=行为字节不变,兼作 §3.6/§6 回退开关);按档隔离 dataId(tier2=gen-hot-params-tier2 / cheap=gen-hot-params-cheap,env 可覆盖);建 client 前 NO_PROXY 内网旁路;真实 namespaceId 默认空串(勿写 public,沿前置任务口径);注入 NacosHotConfig 的 defaults 刻意空;全程 best-effort 失败不 attach 不抛,genconfig 回落纯本地。

cheap-worker 共享 worker.genconfig(from worker import genconfig),两档隔离靠各进程 attach 各自 dataId 的热源;缝在 cheap_service_app.py:main 对称调 build_and_attach_hot_source(tier=cheap),本单不动只说明。

验证:单测 19 条锁死四条回落路径(未 attach/Nacos 不可达/namespace 配错/YAML 回落)+ 两档各读各 dataId + Nacos>env 优先级 + 门阈值热读 + 工厂 best-effort/按档/NO_PROXY/namespace 空串;worktree 全量 126 passed 无回归;真 Nacos(mini-infra 100.64.0.8)演示脚本改演示 dataId → genconfig 0.5s 热读到新值不重启、清理不碰生产 dataId。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 09:15:33 -07:00
lili
63f178d615 feat(prompts): 四道闸CI接线段B——真模型四闸判定器 eval_gate + prompt-eval workflow + safety 基线
薄版重建四道闸(不复活已删的 evalflow/judge 整套编排),对改动的 live prompt 拿金标集真跑 M3:
- 闸1 Schema(产物合 output_schema)/ 闸2 成功率 ≥0.8 / 闸3 回归 diff(vs baseline)/ 闸4 成本延迟增量;
- 只焊 live 面:非 live SKIP 豁免、live 无金标 fail-closed(绝不假绿);单跑预算 cap ¥5 硬编码、超即 fail;
- 真模型 = MiniMax-M3 经 new-api(thinking 关、实测 reasoning_tokens=0),urllib ProxyHandler({}) 绕代理,key 从 env 读、不硬编码不设长期 env;
- 触发 = workflow_dispatch(prompt-eval.yml,与 push 门分工);台账 append-only 落 eval/<id>/runs/;
- 调用失败(网关 500/限流)排除出判定分母、建议复跑(SoT §7:eval 跑不通不阻塞、不假绿)。

safety.prompt-check 真跑证据:10 条违规负例经 M3 判定,9/9 responded 全绿(neg:5 稳定触发 new-api 上游 500 已按基础设施失败排除),本跑 ¥0.0071,建立 baseline 供闸3/4 后续真判。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 09:10:00 -07:00
lili
f1676a1d49 feat(prompts): 四道闸CI接线段A——离线版本升号闸 check_version_bump + 挂 pre-commit/contract-gates
闸0「改 prompt 正文必升 version」落成独立零依赖脚本(与 check_registry 同风格、各管一摊):
- 相对基线(默认 HEAD;CI 传 push 前提交)剔除 frontmatter version 行后比规范化正文——正文有实质改动而 version 未变即拒;
- 新增文件无基线不判、删除文件交 check_registry 报缺失;基线 ref 无效则跳过不误拦、不假绿;
- 挂 .githooks/pre-commit 门5(prompts 路径条件触发,基线 HEAD)+ .gitea/workflows/contract-gates.yml 服务端(checkout fetch-depth:0 供比对 push 前提交)。

自测:改 safety 正文不升版→FAIL exit1、同步升版→OK exit0、git checkout 恢复干净。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 08:58:57 -07:00
lili
d5865f57cd docs(prompts): 四道闸CI接线步骤0——registry 消费面三态对账(17条逐条+门焊口径)
用一手代码证据坐实 17 条 prompt 的 live/fossil/batch-relic 三态,防把 CI 焊在死面上白花钱:
- live 10 条:safety.prompt-check(SafetyCheckClient GP9 门真发 LLM)+ tier2×8(roles.py prompts.load 运行时读)+ config.cheap-system(cheap_roles.py)
- fossil 5 条:clicker/merge/idle/tycoon(AigcTemplateConstants.SUPPORTED_TEMPLATE_IDS 已整体下架、gamedef 产物形态已废)+ generic-coder(STUB,PromptResourceLoader 只为 isReady/schema 加载、不喂 LLM)
- batch-relic 2 条:quality.adversary-review / fix.design-revise(全仓无 live 代码消费方,仅已删 agent-loop v1 evalflow.py 批跑过)

门焊口径写进 registry 头部:段 A 离线版本闸对全部条目生效(改正文必升 version,纯结构纪律零成本);段 B 真模型闸只焊 live——有金标真跑(唯 safety)、无金标 fail-closed(cheap-system/tier2)、fossil/relic SKIP 豁免。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 08:54:47 -07:00
lili
b74cd6155d docs(agent-specs): SpaceHuggers 对照靶 review 草案落库补账(在飞板 e9b14a31 已链此档而档未入库,新鲜 checkout/CI G3 必断;frontmatter G6/G7 合规)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 08:49:33 -07:00
lili
b2b4d3892e merge: W-CFG-0 namespace 口径统一前置(阶段二 §4 前置,fable 终审:hash/父链/diff/6单测复跑全核)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 08:49:33 -07:00
lili
056433d5bb fix(nacos): namespace 口径统一 public→空串(默认公共空间 namespaceId=空串,非字面量 public)(配置控制面阶段二前置)
Nacos 默认公共空间的真实 namespaceId 是空串,"public" 只是显示名(namespaceShowName)。
现状代码写 namespace: public 会带 tenant=public 静默落进一个 id 为 public 的空间,
路 B 写读两侧不一致时配置永远推不到(阶段〇同款坑)。真取证:
GET /nacos/v1/console/namespaces 返 namespace:"" / namespaceShowName:"public";
nacos-sdk-python v1 client.py 逻辑 `if self.namespace: params["tenant"]=...`——空串不带 tenant=走默认空间。

改动(五处触点,均只动默认公共空间语义处):
- game-cloud huijing-server application.yaml:discovery/config 两处 namespace public→""(+中文注释)
- tier2 gen-worker service/nacos_registry.py:NACOS_NAMESPACE 默认值 public→""(+中文注释)
- tier2 gen-worker tests/test_nacos_registry.py:断言随改 == "public" → == ""
- docs/内网凭据与端点.md:Nacos 段补 namespaceId 口径行(空串非 public,写读两侧对齐)

不动:各模块 -dev/-local profile 的 namespace: dev(独立命名空间 dev,非默认公共空间语义);
docs/plans 历史留痕档的 public 字面量(留痕层不改)。

验证:nacos_registry 单测 6 passed;application.yaml YAML 语法有效(两处 namespace 落空串);
py_compile 通过;docs-gate 6/7 检绿(唯一 G3 死链为 pre-existing、与本改动无关)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 08:46:53 -07:00
lili
e9b14a3186 docs(boards): 排单 2026-07-04——W-CFG 阶段二实施工单(设计档§8 六要素)+W-PCI prompt四道闸CI接线工单(evalflow已删须重建薄版·步骤0消费面对账)+板/人办清单/在飞板对账(⑤证据齐可拍·决策6知识件归属·W-DSGN扩陈旧指针批)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 08:31:36 -07:00
lili
455d45be88 docs(tier2): 收敛环终局落档——r4 4/5 收敛·decide_n5=KEEP_留观·fable 终判 go(留观=水果;Δ3 梯子=M3 保持中档默认);板对账+§13 三条蒸馏(双源默认影蔽/worktree 基线必验/pgrep 探针自匹配)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 06:52:39 -07:00
lili
2d09f98d96 docs(boards): 板对账 2026-07-04 窗——cutover 证据侧全收口/F-2 r1-r4+F-3 完成/五工单落地/live 拓扑恢复/金标固化;终审待 r4
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 06:00:18 -07:00
lili
dd2e60c4a6 docs(tier2): r3 双源默认值影蔽发现落档(writer 实仍 40/美食靠 step 顶让量/F-3 同病对照有效/糖水店 420s 仍超时记观测)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 03:27:38 -07:00
lili
7c3792669e fix(tier2): 拆双源默认值影蔽——run_engine/batch_run 的 max_iters 旧 default=40 显式透传短路 genconfig,改 None 哨兵回归单源
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
r3 生产实证:阈值批(bfeaea2d)把 writer_max_iters 提到 60,但 r3 日志仍打
「max iteration numbers 40」——middleware 系旋钮(step_cap>100/设计超时>420)
经 genconfig 直读全部生效,唯 writer 轮数被 batch_run.RunParams(40)+
batch_run argparse(40)+run_engine argparse(40) 三处写死默认显式透传覆盖。
三处全改 default=None(run_studio 已有 None→genconfig 解析),genconfig 回归
writer 轮数唯一事实源;studio docstring 同步防再犯。tier2 107/107。

含义:r3 的 writer 实际仍 40,创始人「提轮数」尚未真达 writer;F-3 同病但
两档同病=对照内部有效。F-3 收轮后部署此修,r4 才是 60 轮的真收敛测。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 03:26:58 -07:00
lili
5cdea9320c docs(tier2): R3 结果与 fable 中期终审落档——产品口径 3/5(美食阈值修后走通)/咖啡 finished 口径拆解引出早收敛探测观测项/R2_补骨架出口 n=1 归因不采信/进 F-3 强档对照
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 03:22:01 -07:00
lili
9a64b3a39c merge(工单c): 软停后 finish 逼近递进升压(N=3 提醒/2N 强制,finish 尝试复位;on_acting 注入贴脸催收,治 80011 软停仍烧到硬地板)· fable 终审过(middleware 亲审:阈值/finish 语义/stuck 签名零动,counter=0 逐字节等价)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 00:53:03 -07:00
lili
0f55a6f77d merge(工单h): 便宜档 Service 工具面再封口——关 Planning/Team/Schedule 三组框架注入(源码证据链坐实·包裹 _chat.get_toolkit 本地绑定·重建干净 Toolkit·fail-open 降噪件)· 333+1skip · fable 终审过(skip 件=apscheduler 集成测,部署树复跑)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 00:50:23 -07:00
lili
eb135a9041 feat(tier2): 软停后 finish 逼近递进升压(工单 c)——连续 N 轮不 finish 经 on_acting 注入升压收尾指令逼软着陆
软停(budget_soft_tripped)已有 on_system_prompt 强提醒 + on_acting 拦生成类工具,但那是被动系统提示,
M3 可能烧推理不理会(80011 实录:软停触发后仍烧到 step_cap/硬地板才停)。本次在共享 CircuitBreakerMiddleware
加「finish 逼近升压」:on_reply 用现有事件计数面数软停后连续无-finish 的 acting 轮(ToolCallStartEvent +1;
一推理轮无 tool call=finish 尝试则轮边界复位),达 N=3 轮升第一档(提醒收尾)、达 2N=6 轮升第二档(强制立即
finish、禁新增大额生成);升压指令经 on_acting 注入工具结果(拦截语并入 / 收尾类结果尾部附加),跨档只注一次。

只改观察/注入路径与状态跟踪:不动任何熔断阈值 / finish 语义 / 九门;无新增配置键(_softstop_rounds 派生);
_softstop_rounds=0 时 on_acting 与升压前逐字节等价(兼容既有 cheap 共享面)。cheap_budget 同源共享,不改 cheap 文件。

新增 tests/test_softstop_escalation.py(5 用例):升压逐档升级 / 透传附加 / finish 尝试复位 / 不足 N 轮零升压 / 硬地板仍兜底。
验证:tier2/gen-worker 102 passed;cheap-worker 共享软停面 29 passed(test_budget_two_stage 等)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 00:49:35 -07:00
lili
c5ee8ef5e9 feat(cheap): 便宜档 Service 收窄工具面——关 Planning/Team/Schedule 三组框架工具(工单 h)
2.0.2 get_toolkit(app/_service/_toolkit.py)除 workspace 内建外,还无条件并入 Planning
(Task* :109-110 "always on")/Team(Team*·AgentCreate :144-168),并按 session model 挂
Schedule(schedule_tools 组 :117-142)。便宜档单机单游戏用不到,纯工具面噪声(80011 flail:
12+ 工具语义重叠是根因之一;护城河 I1 六工具白名单邻域治理)。

修法:cheap Service 进程内 monkeypatch 包裹 _chat.get_toolkit(_chat.py:33 本地绑定、:240 唯一
装配调用者),调原函数拿到 Toolkit 后重建干净版:basic 组按 .name 剔 Planning+Team、丢整个
schedule_tools 组;workspace skills/MCP、六工具、后台控制 ToolStop 一律原样保留。钉 agentscope
==2.0.2、版本漂移响亮告警仍应用;作用域=cheap Service 进程(只跑便宜档 agent),tier2 独立进程
不受影响;绝不改 venv/site-packages 本体。惰性 import _chat(牵 apscheduler)保无 [service] 环境
可 import 本模块。

测试(tests/test_planning_team_tools_patch.py):4 filter/wrapper 单测(补丁后无三组 / 保六工具+
ToolStop / 过滤幂等 / 装配幂等)本机全绿 + 1 真 _chat 集成测 importorskip apscheduler(本机跳、
mini-desktop 全跑)。全套 pytest tests/ -q = 333 passed, 1 skipped。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 00:46:09 -07:00
lili
b4646b9ef8 merge(工单f+i): 收口采集打印幂等 + bake_off brief 全缺 fail-fast(封 S5b 空过陷阱;部分缺告警续跑口径不变)· 335/335 · fable 终审过
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 00:45:04 -07:00
lili
eb95441dd6 fix(cheap): 收口采集重复打印幂等(工单 f)+ bake_off brief 全缺 fail-fast(工单 i)
工单 f:_CheapRunCollector._flush 在 on_reply 的 REPLY_END / except / finally 三条降级路
会被调 ≥2 次,落盘每次覆盖是幂等的(采集语义不变、driver 恒读到最新),但「收口采集落盘」
成功行重复打印纯观感噪声。加实例标记 _flush_logged 只在首次成功落盘时打,后续静默覆盖
(失败行不受此门、每次都报便于诊断)。

工单 i:run_bakeoff 对无 brief 品类 skip+continue,全缺时 valid 空 → aggregate(genre_runs,[])
的 overall=(not [])and(not [])=True → 在 0 款上打「达标 」exit 0(S5b 第一跑生产实录的
空过陷阱 / 无声截断)。抽 _resolve_briefs 纯解析 valid/missing;采样列表为空 → 立即
SystemExit(2)、stderr 打印缺失清单(品类 + 期望 run-summary 路径)、绝不进入判定;有样本
但部分缺 → 逐条告警后按既有逻辑继续(不升级为全停,judge_genre/aggregate 判定口径不改)。

测试 +6:工单 f 直接三次 _flush + 崩溃路端到端各验只打一行(capsys);工单 i 全缺 fail-fast
+缺失清单 / 正常路径行为不变 / 部分缺继续 / _resolve_briefs 拆分。全套 335 passed(329+6)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 00:41:56 -07:00
lili
bf00638c8b merge(工单k): 收敛环台账 infra_flags 归因穿线(observe-only)——设计降级/轮墙/熔断/软停入台账+退路树 reasons 打印,治 F-2 R1 误判分散盲区 · 102/102 · fable 终审过(双墙共旗以 degraded 共现消歧,记录在案)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 00:40:21 -07:00
lili
688f83fdc5 feat(tier2): 收敛环台账 infra 归因穿线(observe-only 第一迭代)——治 F-2 R1 设计团队超时降级被误判"分散"的生产盲区
把「设计团队超时降级 / writer 撞轮数墙 / step_cap 熔断 / ¥ 软预算软停 / 墙钟超时」这类
编排层事件从 studio 运行态穿到批跑台账,让退路树能一眼归因。此前两败局其实 100% 集中在
「设计团队超时降级路」,但台账 fail_system 空 → decide_n5 按 fail_system 看"分散"出
R3_conditional,主持人只能人工翻日志归因。

做法(不塞 fail_system,游戏系统桶语义不污染;decide_n5 的 R1/R2 分流逻辑一字不动):
- RunRecord 新增 infra_flags: list[str](field(default_factory=list);受控值集 INFRA_FLAGS
  五项常量 design_team_degraded/writer_iter_wall/step_cap_tripped/soft_budget_tripped/
  wall_timeout,注释写明可扩)+ 纯映射 infra_flags_from_runtime(信号→值集,去重稳定序);
- studio 运行态采集:设计团队降级点(捕获异常,.kind=='timeout' 归 wall_timeout)、外层
  resume 轮数墙、熔断返回 kind、¥ 软预算软停标记,经 _infra_flags_from_runtime 归一进 result;
  design_team.DesignTeamError 加 kind 区分墙钟超时;
- batch_run.result_to_record 从 result 抽 infra_flags 落台账(防御式复制);
- decide_n5 只把各轮 infra_flags 分布打进 reasons(如「r1 infra 分布={design_team_degraded:2,
  wall_timeout:2}」),不分支、不改任何出口。

向后兼容:旧 jsonl 行无 infra_flags → from_jsonl_line 读空列表不炸;r{N} 轮分组正则不动;
middleware.py 不动;退路树出口枚举与判定不动;decide_n5 签名不破坏。

验收:新增单测 5(纯映射/studio fake 运行态采集/batch 落账/旧行兼容/decide_n5 分布行+出口不变
含 --no-strong-baseline 语义原样);全套 102 passed(97 基线 + 5);run_record 与 fallback_tree
的 __main__ 自检、decide_n5_from_jsonl 新旧混合行端到端均通过。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 00:37:16 -07:00
lili
91a7c5fc8f merge(工单j): studio 透传集扩容 1003 暂停降级 + 1006 入口速率闸(1005 safety 兜底判内部错误不透传,引文留注)· 37/37 · fable 终审过
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 00:33:33 -07:00
lili
3afed479f8 fix(studio): 透传集扩容并入 1101001003 生成暂停降级 + 1101001006 入口速率闸,保留产品语义 (工单j)
AIGC_USER_REJECT_CODES 从三码扩到五码:并入 AIGC_GENERATE_PAUSED(1-101-001-003,
降级开关开启时创作者原只见笼统「生成委托失败」的体验税)与 AIGC_ADMISSION_RATE_LIMITED
(1-101-001-006,Sentinel 入口速率闸,与背压/配额同族的控制面准入拒绝、用户可见)。委托
aigc 抛这两码时原样透传、保留产品语义,不再一刀切包成 STUDIO_AIGC_DELEGATE_FAIL。

未并入 AIGC_LLM_SAFETY_ERROR(1-101-001-005):其定义注释明记归因 tag 仍记 llm_error
(safety 超时/失败的 fail-closed 故障兜底),语义为内部错误、中性文案只作用户遮罩,非控制
面准入拒绝,故仍按原逻辑包裹。

只扩集合 + 补测试:三处委托点 catch(ServiceException) 结构与 isControlPlaneUserReject
helper 一字未动(引集合常量,扩集合即自动扩行为);文案不改;不动 aigc 模块本体。

验证:StudioServiceImplTest 37 测全绿(既有 35 不回归 + 1003/1006 各一透传断言),
mvn -pl game-module-studio/game-module-studio-server -am test。

生效需随下轮 jar 轮换(仅改后端字节码,已在跑实例不热更)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 00:30:28 -07:00
lili
2e4dd56b76 docs(tier2): F-2 执行记录落档(R1 3/5 归因推翻分散判/修一 420s/R2 分层证据后奉令中止/修二阈值批/R3 在跑/五路工单并行)+ F-3 解锁口径(glm-5.2 在列·独立台账防轮污染)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 00:20:38 -07:00
lili
bfeaea2d42 feat(tier2): 创始人令提生成预算阈值——writer 40→60 轮 / step_cap 60→100 / model_calls 80→120 / 墙钟 1800→2700s
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
F-2 两轮实证 40/60 是预算墙非能力墙:美食类硬 brief R1 churn 到 step_cap、
R2 设计收敛后 writer 仍 40 轮被截,resume 续修窗只剩 ~20 步修不完。步顶 100
= writer 60 + 续修 ~40 headroom;失控保护交 ¥ 两段式(50/75)与墙钟 2700。
cheap Service 显式传 150 不受影响;cheap CLI 继承(纯兜底,¥10/15 是真闸)。
tier2 97/97 + cheap 329/329。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 00:14:32 -07:00
lili
0a9504e400 fix(tier2): 设计团队墙钟 240→420s(F-2 R1 两败局实证,KTD2 定点修)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
R1=3/5:两败局(美食/糖水店)同构——3/4 专家已产出、末段调用/leader 撞 240s
墙钟→降级单 agent 设计→writer 40 轮不收敛→step_cap;三过门局设计团队全部
正常收敛(超时↔失败 5/5 完美相关,台账 fail_system 空导致退路树误判分散)。
M3 thinking 慢尾单调用可达 120-180s,420 给一次慢尾余量,与 step_timeout_s
同刻度。YAML(运行面)与 _BUILTIN_DEFAULTS(兜底)同改防漂移;tier2 97/97。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 23:56:32 -07:00
lili
e01d91fb83 feat(quality): 经营品类金标正例固化入仓 bake-shop-serve-1(欠账①清)+ 骨架转薄对照定案(欠账②按红线收束)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
- 正例=S5b bake_off 富化过门款(烘焙上菜 rush,attempts=1/¥2.00/tap-targets 真玩过门):src 7 文件+run-summary+richness-n3 凭据入 fixtures/golden-samples/sim-business/
- 12 条口径 n=3 复采样中位 10/12(单发 11/9/10 方差±2 合纪律),对照骨架 4/11 通用段分离 5–6 分=通用尺判别锚
- 品类段诚实口径:2/4 vs 1/4 仅 1 分分离(serve 形态无进货/双币),品类段正锚待进货型经营款,回退判定以通用段+L4 为准
- 合成薄壳反例不再补:骨架实测即真实薄对照,不臆造材料充数
- rubric _note 收束两欠账 + skill 金标锚点段 + golden-samples README 段;rubric-sync-gate 过

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 23:07:26 -07:00
lili
b0bfcabf8a docs(cutover): §9 S6 负例四门真机证据(日额/背压/暂停+并发)+ 六门放行证据表(prod/lab 口径明标)+ 工单回写 a1/a2/e
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
- D12 五种拒绝行为全负例双证(HTTP 码+后端日志):并发/日额(当日已用=7 上限=0)/背压(门②全局在飞=0)/暂停(infra_config 热键)/unsafe
- 六门证据表集齐:9d trace/D11(86/90)/D9/firstPlay/GP9/D12 全 prod 口径;S5b 明标 lab;放行+S5a=创始人
- 工单:a1 (C6 族错配直指 f121bb01)/ a2 关闭(前提证伪:模板 targets 本就齐,是生成丢键)/ e (2a8d5e45)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 22:58:52 -07:00
lili
48739533e5 docs(plans): cutover §9 S5b 落分——lab 复验达标(三品类收敛局 12/12 全过,raw 80% 亦过线;修复红利成本 ¥0.7-3.7);S5a 生产分布回填留创始人 (cutover 窗口)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 22:32:46 -07:00
lili
5e4d81a296 merge: C1金标欠账清偿——narrative 12条正式重锚+trpg/puzzle富正例基线(前提证伪:模板=黄金脚手架非薄反)+判别主锚=品类段+L4 归质量轨 (尾波C1欠账)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 21:34:36 -07:00
lili
b34a7725cc docs(.agents): C1金标欠账清偿——narrative 12条口径正式重锚(正8/12 vs 薄反7/12,判别主锚=品类段+L4)+ trpg/puzzle 实为黄金脚手架富正例、基线入仓(真薄反欠账明记不现造,规范三合成薄壳教训在案)+ fixture _note 同步收口(复采样×3取中位) (尾波C1欠账)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 21:34:22 -07:00
lili
42eed68675 merge: test_a11 m3/m4 模块级 game_dir/dedup 替换收进可恢复 fixture——根除 5 个跨模块污染失败(证据修正:基线12≠全污染,余7=环境前置) (尾波小单)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 21:13:06 -07:00
lili
11436f07cc test(cheap): test_a11_m3/m4 模块级 game_dir/dedup 替换收进可恢复 autouse fixture——根除 game_dir 跨模块隔离污染(基线二分钉死:5 个失败,非 12) (尾波小单)
test_a11_m3_deterministic 与 test_a11_m4_regenerate 在 import 时无恢复地替换
cheap_run.game_dir(两文件同构),污染同会话后续测试模块:受害者按真 games/ 根校验
write 边界,game_dir 被改指临时目录后一写即判越界。改为 module 级 autouse fixture
(yield 后恢复原值),__main__ 独立运行路径同装(单进程无需恢复),dedup 登记表一并收拢。

证据:全套 12→7 failed、三种文件顺序结果恒定(7 failed / 322 passed);二分钉死纯
game_dir 污染 = 5 个,均已恢复 = test_run::test_scaffold + test_toolkit::{write_l1_rejected,
write_l3_ok,check_shape_drawbutton_ok,check_shape_define_fail}。

余 7 个非本污染、隔离下同红,系环境前置:worktree 无 esbuild →
test_run::{test_stage,test_play_real}、test_toolkit::test_check_and_build_clean_pass;
缺真实 e2e 产物 → test_studio_smoke×4(须先跑 cheap_studio 单局)。须集成段 mini-desktop
才具备,未纳入本单。同族但未致失败的 test_worker_service 模块级 dedup 泄漏按最小改动未动。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 21:11:31 -07:00
lili
e524adfb0d docs(.agents): wave-close 第8步——docs-gate 六检改七检(G7)+merge commit 手跑 B8 条件门清单(pre-commit 不触发缺口) (尾波挂点)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 21:02:00 -07:00