988 Commits

Author SHA1 Message Date
lili
329b82cad4 feat(polaris): 《山海巡异录》M1——host集成修根因+单局通关闭环+card driver v1(harness双席合笔)
host修根因(mini-desktop CDP验出双Phaser实例致可见区纯黑+真指针死):main.js重写为宿主契约形态——
工厂零Phaser import、永不自建引擎实例,场景经ctx.game.scene.add挂bootPhaserHost唯一实例(与夜市款同构);
真人pointerdown与injectInput('tap')同走route(x,y)→readState().tapTargets命中序(ui/layout.js唯一坐标事实)=同因果,
M0手牌盖板吃点击缺陷随重构消失;run-smoke S0六条静态自查防回潮;battle-scene.js退役git留档。
M1单局闭环:S5链轴完整化(链轨延链指引/graceUsed/周天金闪)+S6 map-core三幕DAG(战/精英/憩/宝匣/Boss,
静态可达自检)+S7敌8种(多段/甲攻复合/烛阴双相位/饕餮增势,意图回合开始钉住「展示=执行」逐字段成立)+
S8 card driver v1+play-spec;30卡五行各6/3遗物全规则级/奖励三选一可跳过/HP携带/run级三latch。
数值首轮回填全标〔草案〕(贪心v1胜率5%=下界非标定对象,A0带45-60%校准归M2 S12三档driver)。
完整run单局墙钟首实测(§6.4 M1出口):40 seed中位1.6ms/p95 3ms级(headless开发机口径)→外推M2全矩阵
96k局≈分钟级单线程,数值CI可行性坐实。harness共享面双席合笔:card-battle.driver+business-serve.driver新增、
play-phaser.cdp.cjs runDriver type分发additive(卡牌/夜市两席同文件双分发共存复核OK,未声明时行为逐字不变)。
证据:battle-core 40断言(T1a/T1b随定容更新)+run-core 12组+run-smoke全绿(地图150张/首局门5 seed全win/
通关2/40全自然终局零invalid/幕缩放1070采样全中);主会话真跑复验。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 11:13:51 -07:00
lili
948ee24f30 feat(polaris): 《山海行纪》M1——浏览器崩溃修根因+六件L2插件沉淀+手感断言表接通
崩溃修根因(mini-desktop CDP验出play首帧IndexSizeError arc半径-0.5):render.js drawGround 地纹哈希位提取
用有符号右移 h>>16,h≥2³¹ 时 (h>>16)%3=-2→半径1.5+(-2)=-0.5;修位提取语义 >>→>>>(两处),非钳症状;
校验型canvas桩回归(arc按DOM语义拒负半径+桩自检)修前红/修后绿,覆盖四方向走位扫格。
六件L2插件沉淀(各五件套impl/api.d.ts/manifest/PLUGIN.md/test,纯additive零改既有):
virtual-joystick(浮动原点/死区/越界跟手纯核+轨迹注入driver=G_input孪生)/hit-feedback(档位表单入口+取证events[]:
eventName/frame/timeMs/sourceId,音画同帧构造性保证)/entity-pool/swarm-steering(均匀网格+软分离)/
auto-targeting(网格逐环≡线性最近300布局对账)/canvas-ui-kit(卡片弹层终态几何恒可点+顶栏)。
手感断言表11条逐条接通(2/5/6/10/11号真机校准与真引擎视觉证据如实标待窗口,真机p95≤16.7ms未验不冒称);
sim换装三件沉淀纯核零回退(724杀/p95 1.174ms与M0逐值一致);balance增FEEDBACK档位表全标草案。
证据:游戏13/13、整库260/260、manifest 19/19、包体258,905B(gz 89,268B)过0.6MB门;主会话真跑复验。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 11:13:27 -07:00
lili
3b64fa3834 feat(polaris): 《夜市一条街》M1——三资源经济骨架+解锁树40节点+SaveEnvelope存档+九门接线件
三资源流转(金币生涯账/声望=12里程碑唯一来源不可购买/食材批次FIFO进货-库存-保鲜环,缺料no_stock前置拒);
解锁树40节点(16菜谱+灶台+座位+经营被动+离线根节点+4个M2系统前瞻honest登记,效果解释器单点施效);
save_state v1=SaveEnvelope契约形状+日初检查点口径防存档刷币+未来版本拒读不毁档+0版迁移进链,影子介质IndexedDB(M5切正式save:槽零迁移);
离线收益=近3日每分净入均值×10%封顶2h(economy_curve单源);
九门接线件全套:business-serve driver+runDriver分发+spec.urlQuery门参数化+play-spec+宿主探针钩(CDP真跑排mini-desktop窗口)。
证据:静态可达门8/8(DAG拓扑/菜谱双射/定价cost=Σ食材对账)、冒烟29断言(M0四段回归+5日串跑23.1ms/日+存档往返确定性:5日连跑vs3日存-读-续终态逐字段一致+离线对账+三负例全拒)、单测15/15;主会话真跑复验。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 11:10:36 -07:00
lili
6dadc70173 feat(polaris): 《山海巡异录》M0——battle-core 回合解算核+竖屏战斗场景
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
顶级线③卡牌构筑肉鸽(设计书 2026-07-06 已批即开,统一山海原创 IP 宇宙)。battle-core 纯函数
回合解算(受控随机注入/事件流/latch):能量经济/抽弃洗/出牌序列链/敌意图/护栏;链语义逐条钉死
(每环+0.25/周天=总倍率一次性×2 单回合至多一次/硬上限×8/动作 200 触发判本局 invalid 并 latch);
20 卡五行各 4(估值落 §6.2 锚带)+首战敌「涸泽鲛」意图循环 4 式+曲线常量表 schemaVersion=1;
渲染层竖屏三段布局/链轨五槽/周天金闪/演出与逻辑经事件流解耦,readState/injectInput 按 tier2 平台契约。
证据:单测 40 断言绿;冒烟贪心 driver 5+100 seed 全 win、挂机 13 回合 lose、0.044ms/场(单场口径);
bundle 35,835B=账A 预算 10%(构建产物不入库,README 带 build-phaser 重建命令);
实测 Phaser 3.80.1 raw 1.13MB/gz 0.30MB→账B 建议钉传输字节口径随真机定案。
待 mini-desktop 窗口:CDP 三门/浏览器真玩/冷暖启计时;M1 头号=card driver(S8)。
2026-07-06 09:25:45 -07:00
lili
86611fb24e feat(polaris): 《山海行纪》M0——LittleJS 核心循环全链可玩
顶级线②肉鸽割草(设计书 2026-07-06 已批即开,统一山海原创 IP 宇宙)。core 纯逻辑层零 DOM/引擎:
update(dt)+受控 rng+对象池+均匀网格;浮动摇杆(死区 12%/斜向归一)/雷符链最近敌索敌自动开火/
3 敌种波表爬坡/灵晶磁吸/升级三选一(冻结单击直选)/死亡与 300s 撑满结算;L1 宿主装配沿 _template
骨架 11 插件全量;取证契约(targets/score/phase latch)齐;占位美术山海彩绘色板。
证据:单测+全链 boot 冒烟 7/7;三场景 headless 全过(P0 静止 39.1s 死≤90s/关火纯走位 60s 满血/
P2 撑满 300s 胜 724 杀 11 次升级);1400 逻辑实体压测 p95 1.2ms≤6ms 逻辑预算;
首屏 251,078B(gz 86,725B)过 0.6MB 门(dist 按仓约定不入库,scripts/build-report.mjs 再生成)。
待真机窗口:渲染侧 60fps@2500=触发器①;M1 头号=手感测量面。
2026-07-06 09:25:25 -07:00
lili
0c0f170548 feat(polaris): 《夜市一条街》M0——服务循环纯逻辑内核+Phaser 表现层
顶级线①模拟经营(设计书 2026-07-06 已批即开)。纯逻辑内核脱渲染:营业日 600s 时钟/经济结算/
day_end latch/readState/tapTargets/_forensicsView,受控随机注入;系统①服务循环+economy_curve 九键落表;
8 菜谱/6 顾客类型全原创;Phaser 竖屏表现层程序化占位美术(宿主预载引擎 external)。
证据:headless 双路冒烟 12/12(勤快席 served=327/coins=3206 vs 放任席 rep=0,latch 不回弹,
同 seed 双跑账本一致);单营业日快进 12.0ms=U8a 墙钟锚首数据点;两本账脚本产 dist/m0-bytes.json(dist 按仓约定不入库)。
M0 余项:九门经营 driver 接线(排 M1 前)+浏览器真跑窗口。
2026-07-06 09:25:08 -07:00
lili
2ce0ed3a9d feat(save-cap): W-SAVE-CAP 存档面定容+schemaVersion——单槽版本信封,北极星三款共享基建
契约先行(sdk-interface.d.ts+镜像 additive):白名单新增恰等键族 save:{gameId}:{versionId}(≤65536 码元,
写入必须 {schemaVersion≥1, data} 信封,宿主闸 fail-closed);idle: 族 4096 逐字不动;弃多 key 分片。
宿主闸抽纯函数模块 storageGate.ts(四闸合一可 node 直测);save-progress 插件 v1.0.0→v1.1.0 additive:
setVersioned/getVersioned 逐级迁移/缺级兜底/降档读新档不毁档/无版本旧档按 0 版进链+探针两计数。
证据:插件单测 18/18、game-runtime 31/31、宿主闸负向演示脚本入仓真跑全断言过、vue-tsc+vite build 绿。
三书 M 门影子存档降级口径解除条件就位(卡牌 M2/割草 M4/夜市 M5 切换)。设计页 docs/plans/2026-07-06-002。
2026-07-06 09:24:44 -07:00
lili
207bb79719 docs(polaris): W-POLARIS 品类北极星矩阵——总纲+三款顶级线开发设计书落档
创始人 2026-07-06 三拍立项、晚间升档(3 款顶级 10h+ 并行、全 fable5 high、预算解除、clean-room 红线)、
四拍收口(统一山海原创 IP 宇宙《山海行纪》《山海巡异录》/《夜市一条街》定名/W-SAVE-CAP 立即切单/即批即开)。
三书各过 Codex+Opus 双评审(6 席 35 条全修入:两本账/阈值标草案/待建基建如实分层/链护栏三层/结构常数例外清单)。
台账:作战清单 W-POLARIS+W-SAVE-CAP 单、在飞板三行、SpaceHuggers 靶档裁定戳、NSTAR 档 reachability 引用核正;
三线 M0 同夜交付结果已记账(割草本机面全绿/夜市 卡牌 PARTIAL 断点清晰)。
2026-07-06 09:24:24 -07:00
lili
a207cb8d65 docs(agents): skill 规范化双层收口 + 席位context skill 新增 + W-NSTAR/W-TPL/W-GENLOG 设计波落档
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
- .agents/skills 25 件全量 frontmatter 规范化与评审修入(含 prompt-governance 大修);.claude/skills 7 件薄壳按双层方案①落位
- 新增 skill:agentic-seat-context-design(agentic 席位与 context 工程设计基线,2026-07-05 探索蒸馏)
- 设计波三件落档:复杂游戏北极星件(W-NSTAR 终审稿待拍)/黄金模板规格件(W-TPL 定稿待批)/生成侧过程蒸馏回路(W-GENLOG 骨架)
- protocol/在飞板/作战清单/数据飞轮 SoT/契约 prompts 索引同步;breakout 九门证据刷新
- .gitignore 补 /localagents.md 真实忽略行(该文件自声明绝不提交,此前声明未被机器执行)
- 刻意不入库:nacos-data/ 与 _tier2-gen、c2v-*、amgen-* 生成产物(可重生成,忽略行格式待拍)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 05:32:56 -07:00
lili
1860be2596 docs(consistency): 18 架构 SVG 门面图版本标注 2.0.2→2.0.3(升级一致性尾)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
承 c3728377 升级 + ee631be6 SoT 一致性:18 个生成引擎架构 SVG 共 45 处
「AgentScope 2.0.2」当前能力/选型标注(官方件/内置/自带/源码实证/锁版/默认值)
统一到 2.0.3——等长纯文本替换、零布局影响(44 增 44 删对等)。无历史句需保留。

两处「从错变对」:t2-B-03 左框「官方软刹 ReplyBudgetControlMiddleware」徽章原标
「AgentScope 2.0.2 自带」——但 2.0.2 源码实无该类(见 §15),2.0.3 才补进
middleware/_budget.py,改 2.0.3 后标注方准确;t2-A-04 脚注 _budget.py 同理。
图的对照结构本就对(官方软刹现成但剪不住烧钱→自建 ¥ 两段式 fail-closed 硬闸=
护城河),仅版本标注跟上。qlmanage 渲染 t2-B-03/t2-A-02/01-系统全景 确认布局无破坏。

deeper follow-up(超版本标注范围、随 SVG 深核波):部分 SVG 脚注引 2.0.2 源码行号
(如 get_toolkit 已迁 _chat.py:354)未逐一重核;max_iters 默认值 / on_acting 工具级
洋葱语义细化待议。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 03:06:48 -07:00
lili
ee631be68f docs(consistency): 运行时 SoT 版本引用收敛 2.0.2→2.0.3(升级一致性尾)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
承 c3728377 升级:把运行时 SoT 里 26 处 current-capability 陈述(Agent Service /
Workspace / MessageBus / Event System 内置件、已删 MsgHub、原生 ReAct 行为、框架
接缝兼容、已锁版、源码实证)统一到 2.0.3——这些能力在 2.0.3 同样具备。

4 处 ReplyBudgetControlMiddleware「2.0.2 核验不存在」是历史核验实证(0 号 spike
在 2.0.2 基线上验官方当时无此类、故自建 ¥ 两段式硬闸),按两层纪律不改成
「2.0.3 核验不存在」(那是假,2.0.3 已补进原生 token 制);改为保留 spike 期
历史事实 + 加「2.0.3 已补原生、仍保自建 ¥ 闸,见 §15」交叉引,既不误导当前读者
也不篡改历史。docs-gate 七检全绿。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 02:59:55 -07:00
lili
c372837762 feat(deps): 升级 AgentScope 2.0.2→2.0.3(代码+文档,创始人 2026-07-06 拍板)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
不为某个新特性,而是没道理把底座停在带并行 tool-result 缺陷的补丁版;2.0.3
是同线相邻补丁版,升级面窄、收益确定。承 tech-decisions §11-13「护城河进洋葱、
框架件谨慎审计」线。

代码:两 worker requirements 钉 2.0.3+溯源注;4 个 cheap-worker patch 的版本
guard 更 2.0.3——主控逐一源码核实 2.0.3 锚点仍成立:compress_context@_agent.py:259
未漂移 / _parse_stream_response@_openai_chat/_model.py:297·index 分桶:417 未漂移 /
list_tools@_local_workspace.py:660 / get_toolkit 装配点迁 _chat.py:354(patch 替
绑定名不依赖行号);patch 头 pin 声明同步 2.0.3+复核标记,根因 2.0.2 期实证保留。

文档:current-truth 面扫除(agentscope-2.0-facts 改掉一处「2.0.3 是笔误」错陈述+
行号漂移开源码更新 594→622/136→162/33→42/857→884/875→902、tech-decisions §15
升级决策散文、运行时 SoT 当前选型句、活代码注释、tier2 README 死链修);留痕层
(plans/HANDOFF/patch 根因分析/ADR 历史核验句)按两层纪律不动。

兼容三证:源码逐处 diff(RedisMessageBus/OpenAI formatter 零变化、Anthropic
formatter 仅并行 tool-result bug 修、ModelCallEndEvent 无变化、MiddlewareBase
加性 get_middleware_key)/ cheap 393+tier2 140+patch 20 测试全绿 / dev 两 venv
升级后 3 服务健康。收敛真跑:cheap 便宜档 ReAct 全链路 356 trace 零升级异常+
真出游戏过九门 9/9;tier2 Anthropic 工具循环跑满 40 轮写 15 文件 gen.log/trace
零升级异常(decision=fix 属 tier2 生成质量、非升级回归)。

2.0.3 新增原生 ReplyBudgetControlMiddleware(历史反复核验 2.0.2 不存在的类)/
tool 级洋葱/RAG/mem0,列而不迁(自建 ¥ 两段式 fail-closed 硬闸是护城河,原生
token 软控替不了),follow-up 见 §15。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 02:06:14 -07:00
lili
958f78f523 feat(obs): 阶段四观测面二 Python 侧 token metric——llm_tokens{kind} + llm_cache_hit_rate
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
补面五(game-cloud GenMetrics)拿不到的两个纯 Python 侧 token 维度 metric:
llm_tokens(Counter,kind=input/output/cached)与 llm_cache_hit_rate(Histogram,
每 run 命中率 [0,1])。复用波③ 既有 OTLP 基础设施(开关 CHEAP_OTLP_ENDPOINT、
端点解析、代理旁路、service.name=cheap-gen-worker、best-effort 铁律),换 OTLP
metrics 通道;默认关字节不变、绝不咬生成、与面五 5 个 metric 零重叠不双计。

关键约束(主控亲验坐实):生产 Service 路拿不到 cached——trace.py 组 cost.tokens
只填 in/out,agentscope ModelCallEndEvent 只有 input_tokens/output_tokens 无
cached 字段。故 Service 路(on_reply 只读嗅探 in/out、_metric_emitted 幂等)传
cached=None 如实降级:只发 input/output 计数,不发 cached 计数与 cache_hit_rate,
绝不塞 0 伪造命中率。CLI/批跑路(RecordingOpenAIChatModel.records[2])cached 可得、
两 metric 全发。生产 Service 路发 cached 需 per-POST RecordingModel 或 tier2
breaker 存 cached token,均超本次最小改动边界,列 follow-up。

主控终审:亲跑 tests/test_cheap_otlp_sink.py + test_cheap_service_app.py 29 passed、
全量回归 392 passed/1 skipped;逐条读承重 diff(默认关守卫/best-effort/不双计/
cached 诚实降级/MeterProvider 进程单例防线程泄漏/cached 截 [0,input]/除零守卫)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 23:57:40 -07:00
lili
8b91f34b13 docs(design): SVG 尾波补 M4 广告预接线门面图 m4ad-00(三层切换开关+回调 fail-closed 铸币面防护)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
W-DSGN 尾波实际残项唯一 1 张(R3/M4 门面图),补齐并接入 M4 设计档 §0。
主控终审:qlmanage 亲眼渲染验证,修两处单行文本溢出(顶部状态条 tspan 超框
裁字「防重放」→ 精简正文他处已凸显的细节;页脚映射行冗余「状态」段与顶部
约定条重复 → 删段),两处修后重渲染确认完整落框。docs-gate 七检全绿。
作战清单点名的其余尾波图(plan①顶图/quality-01·02/rethink-00/cfgctl2-01~04)
经核对早已提交,无需重画。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 23:44:33 -07:00
lili
c6d6d39a2a feat(cfg): W-CFG-KB K3 知识包治理接线——knowledge 配置块+激活发布 Nacos+worker 订阅热物化(复用阶段二三·默认关)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
把切片一知识件外置接进受治理配置集,一条「改知识件→定版→激活→worker 物化生效」链,复用配置控制面阶段二/三治理机器零重造:

game-cloud:knowledge 作 content_json 第四内容块(仿 readiness),与 routeA/routeB/readiness 互斥、sanity(packageId/
  activeVersion 非空);走向相反=真下发(readiness 进程内空载荷,knowledge 跨进程),激活编成一条路 B 载荷
  {knowledge.packageId,knowledge.activeVersion}、经 KNOWLEDGE 档独立 dataId gen-hot-params-knowledge publish 给 worker;
  pathA=null→dispatch/reconcile 只走路 B、激活编排一行未改。加 AigcConfigTierEnum.KNOWLEDGE+KnowledgeConfigKeys+NO_ROUTE 文案。

worker:kb_store 加进程级激活版本源槽+attach/detach(对称 genconfig),resolve_active_version 取值链改为治理源(Nacos)>
  env 钉版>最新 committed;新 kb_nacos.py(KbActiveVersionSource 订阅 dataId、按 packageId 匹配、激活变更即重物化)+
  setup_knowledge_activation() 启动物化+(Nacos 启用时)attach,cheap_service_app 紧接 genconfig 热源挂它。复用 genconfig_nacos 启用旗+代理旁路。

默认关字节不变(TIER2_KB_ROOT 未配→不物化不订阅、read_file 回落仓根;无源→resolve 回落 env/最新);缺文件显式失败沿用
(materialize_active 照抛保留 kb_root、kb_nacos 只在 best-effort 边界接住不咬生成);全 best-effort。admin 本轮做前端契约点
sanity.ts,富编辑视图=紧接下一片(与 readiness 一致)。

主控终审:git 完整(HEAD 未动·无破坏操作)+11 文件精确+读码坐实互斥/routeB载荷/取值链/best-effort/默认关/缺文件失败没削弱
+亲跑 Java codec 34+activation 21(BUILD SUCCESS)+Python test_kb_externalize 21 全绿。真 Nacos 激活端到端排窗口。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 22:50:10 -07:00
lili
5b631e8d5d chore(tier2): archetype 假旋钮清账——删 genconfig 死声明「archetype」区(生成路从不读、真值硬编码)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
W-S2 follow-up:genconfig.py 登记过一个 "archetype" 区声明 business_sim driver 五参
(steps/stepMs/winThreshold/bankruptSteps/streakLose),但生成路(archetypes._business_sim_gate_spec /
run.DEFAULT_BUSINESS_SIM_PLAY_SPEC)从不读它、真值一直硬编码在那两处 = 死旋钮(改配置无效、误导)。
删该假声明(工单=接线或删声明,取删=最小),两处硬编码加注为单一权威源;放量期确需热调再按 D11
「读 genconfig、硬编码作回落」范式补接线。

纯声明删除 + 注释,零生成逻辑改动。tier2 venv 真跑 test_genconfig_nacos 19 + test_run_gates_stale_verdict 2
全绿 + import 冒烟(archetype 区已从 _BUILTIN_DEFAULTS 删净)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 21:58:23 -07:00
lili
21b5320f3f feat(cheap): W-CFG-KB 知识件外置切片一——知识包存储(复用 ASSET-SRC 范式)+ 物化 + read_file shadow(路乙 MinIO·默认关)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
知识件(喂 agent 学怎么生成的设计范式:skills/黄金脚手架/few-shot/tier2 RAG)原散在 worker repo 检出、
read_file 按硬编码路径自取,改一条范式得重部署。本切片(K1 路乙 MinIO,创始人拍)外置成可热换知识包:

- kb_store.py:KnowledgePackageStore(LocalFs/Backend)存 MinIO + manifest 落 MySQL(专用表
  cheap_knowledge_package_version + 专用桶 cheap-kb,与 ASSET-SRC 正交不合表);复用 store.py 纯工具
  (_canonical_content_hash/derive_version_id/_is_safe_rel_path,store.py 零改动)+ manifest-first 半落库
  (pending→put→committed、fetch 只返 committed、缺源标 missingContent 不静默)。
- materialize_active:按激活版取回→staging 逐文件 sha256 校验(K2 寻址断言)→原子换入知识根(旧挪 .prev);
  缺文件/取不到/指纹不匹配【显式失败】(类比 ASSET-SRC 缺源),kb_root 不动=回落上一份完整包。落点
  TIER2_KB_ROOT 在 git 检出之外(deploy-safe,防 reset --hard 抹)。
- cheap_run.py read_file shadow:先查知识根同相对路径(热换即生效)、回落仓根(api.d.ts 等代码不外置);
  TIER2_KB_ROOT 未配时短路、read_file 字节不变(默认关);两根守只读+200KB+路径不逃逸、越界即拒。
  cheap_roles.py 硬编码路径不改(shadow 在解析层处理)。

K3(yudao 治理+激活推送+admin)= 后续切片,留接缝点(resolve_active_version/materialize_active/default_kb_store)。
主控终审:store.py 零改动 + read_file 默认关字节不变 + 缺文件显式失败/原子回落读码坐实 + 独立表桶 +
亲跑 test_kb_externalize 14 + read_file 回归 18 全绿。真 MinIO 物化闭环排窗口(cheap venv 无 pymysql/minio)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 21:37:50 -07:00
lili
d007974600 fix(tier2): store roundtrip harness 重建用 cwd+相对路径——修 esbuild 路径注释致 bundle 假不确定(SRC T3 真库 5/5)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
W-ASSET-SRC T3 mini-infra 真库窗口验证(真 MySQL+MinIO)暴露:harness _rebuild 每次用新 mkdtemp +
绝对 entry 路径跑 esbuild,而 esbuild bundle 把入口路径写进产物注释(// <abs-path>),mkdtemp 目录名每次
不同 → bundle 字节跨目录不稳 → 断言1「确定性重建」误判失败(实为 harness 自身路径泄漏,非 store/esbuild 不确定)。
改用 cwd=tmp + 相对 entry/outfile,注释恒为 // src/game-logic.js、bundle 字节稳定。

真库真跑坐实:修前 4/5(断言1 假失败),修后 5/5 全绿——幂等 / 确定性重建(bundle sha 字节相等)/ 版本寻址 /
缺源显式失败 / 半落库不留隐形孤儿(put 失败留可见 pending、无隐形对象、续跑自愈成 committed)。
ASSET-SRC manifest-first 存储在真 MySQL+MinIO 全五条闭环坐实(mini-infra:infra-mysql tier2 库 + infra-minio tier2-src 桶)。
T1(翻 TIER2_STORE=backend + 真 tier2 富游戏 gen 落库)待 tier2 真跑窗口。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 20:58:53 -07:00
lili
47644881ff feat(observability): Grafana 看板激活生成指标 + 三条阈值告警(阶段四·面五之上)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
- observability-overview.json:业务指标占位 panel 改用面五真实指标名(gen_task_total{status=succeeded}
  / gen_duration_seconds / gen_queue_depth / gen_gate_fail_total,去掉猜错的 huijing_ 前缀与 success 标签)
  + 新增 llm_cost 成本 panel(单次均值/近1h累计,标自估值非 new-api 权威)。
- provisioning/alerting/gen-alerts.yaml:三阈值告警——生成成功率<80%(MVP门 §2)/ 队列深度>15(便宜档
  并发上限)/ game-cloud up=0(后端不可达),+ webhook contact point(飞书/钉钉,URL 待创始人填)+ 路由策略。

对着 MVP 门(成功率≥80% / 可用性≥99.5% / 便宜档并发≤15)。webhook URL 未填前告警在 Grafana UI 可见但不
外发,§7 验收#2「告警真送达」待真 webhook。compose 已挂 provisioning 全目录,重启 grafana 容器即生效。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 20:47:52 -07:00
lili
5b34807e73 feat(cheap): 面四 Python 三跳 traceparent 打通——便宜档生成串成单条 trace 树(观测阶段四)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Java agent(面一b)已在派发出网自动注 traceparent;本片补 Python 侧三个断点,让一次便宜档生成
在 Tempo 里是 Java→worker(:9501)→cheap-service(:8300)生成 的单条 trace 树而非散落 root:
- 断点①:worker_service.do_POST 抓入站 traceparent 进 job._otelCarrier(self.headers 仅此可得);
  process_job 用 worker_span_scope 在入站 context 下建 worker SERVER span、包住真生成调用(span 建在
  真处理 job 的 worker 线程,非只入队即 202 的 do_POST)。
- 断点②:driver 读当前 context(worker span 经 asyncio.run 透传进协程)inject 成 W3C carrier,随出站
  :8300 各 POST header 带上;同份 carrier 写会话 sidecar。
- 断点③:/chat reply 在 AgentScope 后台任务跑、与 HTTP 请求解耦读不到实时 context——故走既有 C2 sidecar
  桥:cheap_service_app 工厂读 sidecar traceparent → parent_carrier → CheapOtlpSink 每步生成 span 挂入站
  context 当子 span(不再私有 root)。

传播 helper 集中 cheap_otlp_sink(extract/inject/worker_span_scope);全程 best-effort(otel 不可用/carrier
坏/Collector 不可达都退化成少串一段 trace、生成异常原样穿出)、CHEAP_OTLP_ENDPOINT 默认关时零行为变化
(parent=None 退私有 root、sidecar 不写 traceparent 字节不变)、代理旁路红线未破、业务 traceId 并存(§10 决策5)。

test_trace_propagation.py 14 例(含端到端三跳单条 trace 树,InMemorySpanExporter 证父子链+同 trace_id)
+ test_worker_service +2;主控亲跑 40 passed(3 文件)+ 全量 364 passed 1 skipped 无回退。
真跨进程 Tempo trace 树验证 = dev 开 CHEAP_OTLP_ENDPOINT 重跑 follow-up。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 20:30:04 -07:00
lili
9d445c1f65 docs(staging-ops): OTel Java agent 挂载配方蒸馏(§9·面一b)——JAVA_TOOL_OPTIONS 注入 + Tempo 验 + 三坑
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
dev 真机坐实的 agent 挂载法:agent jar(2.29.0,aliyun 镜像直连下)+ JAVA_TOOL_OPTIONS 注 -javaagent
不改 restart 脚本 + OTEL env 指 Collector(traces only、metrics/logs=none 免与面五重复)+ Tempo 见 huijing-server span。
三坑入库:①指标进程内 micrometer 重启清零(Prometheus counter reset,单次 scrape 无累计非 bug)
②watchdog 超时收尸经 handleCallback→面五计 timed_out、迟到重复回调拒绝重入不重计
③便宜档需续修 gen 延迟可达 20min(gen_duration 埋点量化)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 19:53:51 -07:00
lili
7e21b331a5 feat(aigc): 面五 game-cloud 生成业务埋点 GenMetrics(观测阶段四·flag 默认关)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
新增 GenMetrics 组件(@ConditionalOnProperty huijing.aigc.metrics.enabled,默认关=零装配零副作用),
把 MVP 要盯的生成指标以 micrometer 暴露给已活的 /actuator/prometheus:
- gen_task_total{status} Counter:终态计成功率(succeeded/failed/timed_out,超时据真实 failureReason 还原)
- gen_queue_depth Gauge:@Scheduled 定时刷 countGlobalInflight→内存 AtomicInteger,scrape 零 DB(勿全表重查)
- gen_gate_fail_total{gate} Counter:九门逐门失败,源 trace.sevenGateVerdict.guards(复用 ReadinessScorer.guardPass:H_progress 嵌套取 .pass)
- gen_duration_seconds Timer(直方图):源 trace.wallS
- llm_cost DistributionSummary:源 trace.cost.totalRmb(worker token×倍率自估值、非 new-api 权威计费)

埋点挂 DifyCallbackServiceImpl.postCommitBestEffort(post-commit best-effort、realSuccess 判定前、
覆盖成功/失败/超时三类终态),null 判空 + 内部吞异常双保险,绝不进 DifyCallbackTxService 事务方法、
不咬回调主链(§8 旁路铁律)。micrometer-core 经 spring-ai-commons 传递,无需改 pom。

GenMetricsTest 7 例(终态三标签/耗时成本/逐门guards嵌套裸/队列gauge/脏trace吞/开关装配三态/抛错不咬主链)
+ 主链回归 DifyCallbackServiceImplTest 20 + DifyCallbackTxTraceTest 6,主控亲跑 BUILD SUCCESS 全绿。
面一 actuator 已活;dev 重部署后 profile 开 flag 即出指标(下一窗口深冒烟真验)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 19:23:20 -07:00
lili
dee9158504 docs(staging-ops): feed 流端点语义蒸馏(§5)——/feed/stream 服务 zone0 无 zoneId、size @Max=20 超限返空、发布双写 zone0+专区
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
R5 假警报根因入库防复发:给 /feed/stream 传 zoneId 被静默忽略(它只收 cursor+size 恒服务 zone0)、
专区流是另一端点 /feed/zone/stream?zoneId=N;size 超 @Max=20 校验失败返空 data 非报错;
发布编排双写 zone0 主流基线 + 非零专区补写(feat 2bc8c86c),一款游戏可同现主流与专区。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 18:47:26 -07:00
lili
2bc8c86c47 feat(feed): 新游戏发布汇入主混合流——发布基线 zone0 恒写 + 非零专区补写双写(创始人 2026-07-05 拍 A)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
发布编排原 zone_id = launch_zone_id 或 0 二选一:创作者选了非零专区(必填字段)则
游戏只落该专区排序行、不进 zone0 主混合流,而 /feed/stream 服务 zone0——内测玩家
默认流看不到新游戏(R5 走查暴露)。改为双写:发布恒写 zone0 主流基线 + 若创作者
另选非零专区再补写该专区一条(uk_game_zone 视作不同排序行,双写互不冲突,同发布事务原子)。
顺带消除既有潜伏不一致:telemetry 算分回灌固定打 zone0,原来非零专区游戏在 zone0
无基线行 → 回灌恒跳过、永不刷分;zone0 基线补齐后回灌可正常刷分。

抽出 writePublishBaseline helper;DTO zone_id javadoc 同步双写语义;
补 publish 路 3 单测锁分流(非零专区双写 / zone0 单写 / null 回落单写)。
PublishOrchestrationServiceImplTest 本机实跑 6/6 绿(3 原 unlist + 3 新 publish)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 18:27:12 -07:00
lili
8724501f32 feat(aigc): D11 质量评分参数外置进配置集(W-CFG-EXT E1-E3)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
背景/目的:D11 就绪评分的四维权重与效率预算阈值原本硬编码在 ReadinessScorer
里,放量校准要改代码换 jar;本提交把它们收进阶段二配置集治理,改一版即生效、可
回滚、可归因(SoT §10「校准走配置、不在现场拍脑袋」的配置载体,不改任何命题)。

范围/做法(E1-E3):
- E1 content_json 加第三块 readiness(十字段,值=ReadinessScorer 常量)+ 档位枚举
  加跨档特例值 READINESS(无 Nacos dataId、进程内消费);codec 加 readiness 值域
  sanity(四维权重和≈1.0±0.001/各∈[0,1]/预算>0/repairs_good≤ok/子项分∈[0,1])
  与 routeA/routeB 互斥;NO_ROUTE 判据扩为 !hasA&&!hasB&&!hasReadiness(空串/{}
  仍红)。
- E2 新 ReadinessConfigProvider(读激活版 readiness、短 TTL 缓存、逐字段回落、读失
  败不抛)+ GenConfigService.getActiveVersionBySetKey(按 uk_set_key 定位、读不到返
  null);ReadinessScorer 从 provider 取权重阈值、硬编码常量降为回落默认(一个不删)
  、@Autowired(required=false) 可选注入不破坏既有 new ReadinessScorer() 单测;顺修
  :19/:151 陈旧「预算<=0.15」注释(实际 0.6)。
- E3 激活编排一行不改:readiness-only 经 codec 产空载荷,现有 dispatch/reconcile
  在空载荷下天然短路成「值域 sanity + 账本收口、无投影、恒一致」。

建模:按计划倾向用枚举值 READINESS(§7 待拍点,创始人未明拍,可 revise 为与 tier
正交的 kind 维度)。契约先落(content_json.readiness schema/javadoc、
AigcConfigTierEnum、GenConfigService 接口、NO_ROUTE 错误码文案)再改实现。

验证:整 game-module-aigc-server 单测 385/0/0(7 skipped=需真基建 RealIT);api
经 -am 从源码重建绿;既有反射测试(CheapWorkerResultOutContractTest)与 score==95
锚点(SaaGraphDispatcherTraceTest)未破坏。真 Spring 上下文 wiring + 真后端 e2e
排部署窗口。

边界:W-CFG-KB(知识件外置)不在本提交(gated 别的依赖);admin 端 readiness 数字
字段编辑表单为 follow-up(本提交只做后端)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 18:11:20 -07:00
lili
8200aa08d0 feat(tier2): W-ASSET-SRC 源工程存储 manifest-first 落库 + 治理对账门 + 取回重建 harness + 孤儿清扫 job (SRC T1-T4)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
背景/目标:tier2 富游戏 BackendStore 真实现已写好却未通电,且 save 走 MinIO-first、半落库会留无 manifest
指向的隐形对象,manifest 表游离在治理外(in-code DDL + 留档 .sql 双源无机器门)。本切片按已拍板的
manifest-first 方案把 SRC 一面推到「接生产、schema 受治理、取回可重建、半落库孤儿有修法」。只碰富游戏这
一面,不动便宜档 Java 面、不做素材、不接 fetch 生产消费方。

改动(六件核心 + T1/T3/T4):
- T2① status 列(pending/committed):新建走 CREATE DDL、存量走受治理 ALTER;BackendStore._ensure_schema
  按 information_schema 探测缺列才补(每实例一次,跨 MySQL/MariaDB 稳)。
- T2② save 改写入序:MySQL 落 pending 行 → MinIO put → 翻 committed;命中 committed 幂等返回、命中
  pending 复用 versionId 续跑自愈(同前缀真覆盖)。半落库崩溃只留可见 pending 行、无隐形对象。
- T2③ fetch 两条分支(取最新 / 取指定版本)都补 AND status='committed',pending 半成品对取回不可见。
- T2④ 治理归属:.sql 留 tier2/config/schema/(owner=tier2、不走 huijing Flyway、无执行副本),
  contracts/README.md 加治理指针认领、明说不参与 Flyway 对账;不塞 db-schemas/ 根。
- T2⑤ 可跑对账机器门 test_store_ddl_reconcile.py:规范化比对 in-code(_DDL+_ALTER)与 .sql,改一处
  漏改另一处即红。
- T2⑥ 修 store.py 模块头 docstring 整块(占位/seam/绝不实连/forbidden-import 守着 的陈旧误述改为与真
  实现一致,并纠正守卫范围:check-forbidden-import.sh 只禁 wg1.*/SAA/L2,不禁 pymysql/minio)。
- T1 接线单点:TIER2_STORE=backend 激活配方 + 前置 checklist(CREATE DATABASE / status 列状态确认)落
  staging-ops §7(tier2 gen-worker 部署 env 单点);不改 default_store 工厂形态。
- T3 取回重建 harness store_roundtrip_harness.py:五条(确定性重建优先 bundle sha256 字节相等、非字节稳
  才退九门 verdict 逐项一致+无 missingContent、不拿近乎恒真 buildInputHash 承重;版本寻址;幂等;缺源
  显式失败;半落库两失败点),本地 LocalFsStore 自检覆盖 1-4、真库+bundle 字节相等标 follow-up 窗口。
- T4 孤儿清扫 store_cleanup_job.py + BackendStore.cleanup_orphans:乐观删(status=pending CAS 先删行
  再删对象)防与续 put 的 TOCTOU 竞态,幂等,owner=tier2,可追溯日志。

契约(contract-first):.sql DDL additive 加 status 列 + 首份受治理 ALTER;contracts/README.md 治理指针;
落库寻址 doc↔code 断言点(表名/双唯一键/「pending 对 fetch 不可见」)。不改 tier2-source-project.schema.json
addressing、不改 buildInputHash 字段、不改 GamePackage / 便宜档 source-project.schema。

验证:本地 14 个新单测真跑全绿(DDL 对账 3 + manifest-first 行为 8 + harness 本地 3);harness 脚本
LocalFsStore 自检 5/5;docs-gate 七检全绿;forbidden-import 守卫通过。真 MySQL+MinIO 往返 + bundle 字节
相等 = mini-infra 窗口 follow-up(worktree 无真库/无 esbuild,诚实未跑)。缺重依赖的既有测试(agentscope/
nacos)本极简 venv 未跑,均不 import store、与本改动无关。

计划锚点:docs/plans/2026-07-05-001-feat-asset-src-源工程存储-plan.md §4 T1-T4 / §5。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 18:03:28 -07:00
lili
51482b758f docs(plans): W-CFG-EXT/KB 配置外置执行计划(Opus 单评「可执行·小修」→九条返修·待创始人拍)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
D11 质量参数(全硬编码 ReadinessScorer.java:33-50 带"待外置"注释)+ 知识件(Nacos 100KB 装不下、
需文件存储)收进阶段二配置集治理。Opus 单评判可执行·小修,九条逐条修回(主控亲自落盘,因返修
子代理工具通道故障、我的主通道经 grep 逐批亲验):
- ①K1 决策材料轴向硬伤(git-ref 其实可热换:read_file cheap_run.py:84 现读盘无缓存,git checkout
  知识件路径后下次生成即读到新内容、不重启)——真轴改为「带内 config-center 推送 vs 带外整树 git op」
  + 补码/进程 skew 运维告警(这反使 MVP 先路甲更成立);
- ④E3 降风险改述:激活编排一行不改,codec 对 readiness-only 产空载荷、现有 dispatch/reconcile 天然
  短路(码证 GenConfigActivationServiceImpl.dispatch:178-182),不碰双路激活主链与补偿不变量;
- ②readiness ⊻ routeA/routeB 互斥 sanity(防误配拼伪 dataId);③ReadinessConfigProvider 依赖的
  getActiveVersionBySetKey 服务方法当前不存在、一并补契约;⑤MinIO read_file 根改造成本;
  ⑥NO_ROUTE 判据扩 !hasReadiness 保既有断言;⑦provider 定死短 TTL;⑧readiness 表单是新增非纯复用;
  ⑨doc↔code 锚 BUDGET_RMB:50=0.6 + 清 :19/:151 陈旧注释。
待创始人拍:D11 建模(枚举 vs kind)+ K1 存储(git-ref vs MinIO,材料已按真轴摆正)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 13:11:43 -07:00
lili
e21ab160e2 feat(obs): T2-5 Prometheus scrape game-cloud actuator(波② 端点已成立·dev target)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
波② 已给 huijing-server 挂 actuator/micrometer、/actuator/prometheus 端点成立并 dev 亲验,
本波启用 prometheus.yml 里预留注释的 game-cloud job:target=dev huijing-dev(100.64.0.7:48080,
staging profile 已放行 /actuator/**、exposure 仅 health,prometheus)。nacos/rmq job 仍留注释
(各自 exporter 未就位、不越界)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 11:50:20 -07:00
lili
ae1f9a003d docs(plans): W-ASSET-SRC 源工程存储执行计划(Opus 单评需返修→逐条修回·待创始人拍 §7)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
承接《游戏资产管理范围决策》设计 §3① 切 SRC 一段(把 tier2 BackendStore 从
"真实现已写好却没通电"推到接生产/受治理/有真跑证据/半落库孤儿有修法)。
Opus 单评(Codex 结构性取不回、协议 #8 兜底单评)判需返修,三硬伤逐条修回:
R1 fetch 两分支补 status='committed' 过滤(否则 pending 半成品被当最新取回)、
R2 tier2 表不塞 db-schemas 根(撞 huijing Flyway 对账契约)改 contracts/README 治理指针、
R3 status 列补 ALTER 受治理迁移 + CREATE DATABASE 前置;M1-M3/L1-L2/docstring 整块亦修。
四工单(接线/治理+孤儿修法/取回重建 harness/清扫 job)六要素齐、contract-first。
§7.1 补全 manifest-first vs versionId-only 真实复杂度对照,留创始人拍。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 11:36:47 -07:00
lili
e200bc4577 fix(smoke): --deep 写路径改便宜档真实流(空 templateId→归一 generic 派 worker)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
原 --deep draft 用 templateId=idle,撞 AigcGenerateExecutor:535-536 硬相等分派闸
(仅 templateId=='generic' 投 worker),fall-through 到进程内 LLM 旧路、到不了 :9501,
冒烟测的是废弃路径=假绿。改为不设 templateId(复刻真实「一句话不选模板」流:
后端归一 generic→派外置 worker),并更新陈旧注释(旧 poll=10s 落包→executor 派发 worker)。
R5 grounding 真 e2e 坐实(闭环-fix),配 staging-ops §8。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 11:23:50 -07:00
lili
04ad6bc14c docs(staging-ops): §8 后端→生成线派发接线(executor 命脉·内测 dev 闭环真 e2e 坐实)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
2026-07-05 起 dev 全栈栽在漏注 AIGC_EXECUTOR_*(默认 false→executor 整组 Bean
被 @ConditionalOnProperty 挡出装配→入队成功却无人分派、静默卡 queued)。真 e2e
坐实正确配置后蒸馏进仓,免重复探索:派发链路、/root/huijing-dev.env 关键项、
分派闸硬相等 templateId=='generic'(business-sim fall-through 旧路·冒烟须 generic)、
陈旧 game-staging/.env gamedef 时代值别照搬、status=0 预览包需审核台 APPROVE 才进 feed。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 11:17:16 -07:00
lili
7cdb3049eb feat(obs): huijing-server 接 actuator + micrometer-registry-prometheus 激活 /actuator/prometheus(阶段四观测 波② T2-2)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
单体聚合层(部署件)显式引入 spring-boot-starter-actuator + micrometer-registry-prometheus
(二者在 huijing-spring-boot-starter-monitor 里 optional 未随传递装入),wire 通「在席但残缺」的指标能力:
- /actuator/prometheus 端点成立、真出 JVM/HTTP/Tomcat 指标(供 mini-infra Collector/Prometheus 抓)
- HuijingMetricsAutoConfiguration 激活、aigc 的 SAA 图节点 ObservationRegistry 由 NOOP 转真(可产节点 span)
- /actuator/health 由假 {"code":404} 变真 Actuator HealthEndpoint
exposure 内网口径收敛为 health,prometheus(dev/local/staging 三 profile),不裸暴露 env/heapdump 等敏感端点。
不改 yudao 框架层 starter 的 optional 默认、不碰业务逻辑;版本由 spring-boot-dependencies BOM(3.5.14) 管。

验证:JDK17 下 mvn clean install -pl huijing-server -am -DskipTests 绿;repackaged jar 已含
spring-boot-actuator-3.5.14 + micrometer-registry-prometheus-1.15.11。
OTel java-agent 挂载属启动/部署项(T2-1),代码侧零改动,不在本 commit。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 10:29:07 -07:00
lili
9f42cd2c7b fix(cheap): requirements.txt 补声明 nacos-sdk-python==1.0.0(dev 起栈真暴露)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
cheap-worker 经 sys.path 复用 tier2 的 worker.genconfig_nacos 接配置控制面热源,但
cheap-worker/requirements.txt 一直漏声明 nacos-sdk-python(tier2/gen-worker 有声明)。
后果:新建 cheap venv 起 Service 时 `import nacos` 失败→Nacos 热源静默不 attach、回落本地
YAML(门参不热更)。2026-07-05 dev 环境全栈起栈时真暴露(便宜档 Service 首启 ModuleNotFoundError)。
补声明钉 v1.0.0 与 tier2 同版。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 10:10:50 -07:00
lili
f92a764fb3 docs(staging-ops): 生成线在 mini-desktop 的环境地图 §7(波③ OTLP 真跑蒸馏·免重复探索)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
把这轮 ③真跑摸底出的生成线坐标钉进配方,后续接 cheap/tier2 Python 服务直接照用:
- 真检出 = /root/games-development-ai/(dev/2.0.0),非陈旧红鲱鱼 /root/tier2-run/(c0135926);
- cheap venv = cheap-worker/.venv(uv 建·带 agentscope+otel)、tier2 venv = /root/.venvs/agentscope-tier2、uv 在 /root/.local/bin;默认 /usr/bin/python3 三样皆无;
- mini-desktop cheap-worker/ 带本地未提交补丁(m3_stream_patch 等)=分叉,别盲 pull 覆盖,单文件 scp -o ProxyCommand=none 更新;
- 生成线端口 :8300/:9501/:8200,门参从 Nacos(namespace 空串)热读;
- Python 跨机/出网绕 clash fake-ip(NO_PROXY=100.64.0.8+清 http_proxy),实证 →:4318=200;
- 波③真跑配方:CHEAP_OTLP_ENDPOINT=http://100.64.0.8:4318→Tempo 见 cheap-gen-worker,查询等 ≥15s(decision_wait 10s+ingest),只有 error span 必采;
- 观测栈自观测缺口:Prometheus 未 scrape collector :8888 内部 telemetry(波⑤补)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 09:27:39 -07:00
lili
daa49e5864 feat(obs): 便宜档主生成路 OTLP span sink + 双入口 fan-out 并接(阶段四观测 波③ T3-1)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
便宜档 Service(cheap_service_app)+ CLI(cheap_studio)主生成路此前只经 make_jsonl_sink
写 trace.jsonl、不产 OTLP span,观测栈 Tempo 看不到便宜档生成。新接 cheap_otlp_sink:与
make_jsonl_sink 同签名,把每步 TraceStep 推成 OTLP span 发 mini-infra Collector
(service.name=cheap-gen-worker),span 属性映射对齐 tier2 studio_sink 的标准 gen-ai 键。

- 默认关(env CHEAP_OTLP_ENDPOINT / infra_config 取不到即 no-op),build_trace_sink 原样返回
  jsonl sink、现有行为字节不变;开则 fan-out(jsonl 先落盘照旧、OTLP 额外发一份,各 best-effort)。
- best-effort 铁律:缺 otel / Collector 不可达 / 发送失败 → 记一次告警、永久降级 no-op、绝不抛、
  绝不咬生成主链(设计 §8);observe-only 从不回写生成/门判定字段。
- 惰性 import otel(顶层零重依赖,对齐 build_cheap_app 惰性红线)+ 代理旁路(T3-4,建 exporter 前
  把 Collector host 并入 NO_PROXY,绕 clash fake-ip)。
- provider 做进程级共享单例(非 per-run):长驻 Service 中间件工厂 per-turn 建 sink,per-run 会逐局
  泄漏后台上报线程;trace_id 只作 per-span 属性,BatchSpanProcessor 一条后台线程跨局复用,atexit 兜底 flush。
- 双入口都接(Service :273 + CLI :214),fan-out 不破坏既有 jsonl 落盘。

终审(亲跑非照搬):cheap-worker/.venv 全套 350 passed/1 skipped(含 span sink 11 例)、零回归、
py_compile 三文件过、docs-gate 七检绿。跨机 OTLP 命门已验(mini-desktop→mini-infra:4318=200)。
真发 Collector→Tempo 见 span 排 mini-desktop 起服务后验。

T3-3 metrics 空口按红线#7(不留孤儿)剔除:本波无生产调用方,真值填充随波⑤ T5-2 带埋点调用方一起落。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 09:16:16 -07:00
lili
960198bd20 docs(资产/观测): workflow 双产出 fable 终审通过(资产面范围决策设计 + 阶段四后续波 plan)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
workflow wdfr57899 异步产出、fable 终审:
- 资产面范围决策设计(①源工程存储+②素材市场都要):opus 调研→主笔→对抗/完整性/材料三视角评审→修。fable 终审:对抗评审 3 硬伤真修(孤儿覆盖断言据代码纠正+修法二选一+清扫job抬必交/assetRefs据实化+跨线前置/验收改字节等价硬门sha256)、关键事实亲验坐实(BackendStore save:482/fetch:574 真实现非占位、assetRefs/lineage 契约零命中、TIER2_STORE 部署零命中)。四段拆:SRC最优先/MAT-VERIFY并行/MARKET-READONLY排期/MARKET-TRADE后置(对齐数据飞轮§4)。待创始人评审§7六项。
- 阶段四观测后续波 plan(②game-cloud挂agent+actuator/③Python两线接OTLP/④三跳traceparent/⑤埋点+看板+告警):照已签设计施工、不触发双评审门;工单六要素齐、碰生产窗口(game-cloud单体②⑤/生成线③④)全文分开、验收引设计§8六条+脱敏第7条。待创始人定窗口§7六项。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 08:38:20 -07:00
lili
3ab1b7693e docs(mvp): 16周主计划 SoT 补内测里程碑(创始人 2026-07-05 拍 7月中旬硬目标·反推压缩)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
创始人拍板:种子外测/内测从原阶段三(W9-12≈8月)提前到 7 月中旬、立显式里程碑倒逼压缩。§2 波次轴总述后加内测里程碑块:
- 工程命门(全力压):生成≥80%放量(决策⑤)+ 前端五链路真机验收 + A11 计费 e2e
- 合规硬约束(真墙):大模型登记/算法备案数月级、须外测前完成、现未提交;7月中旬能否成立取决于内测豁免口径(≤2万人+不接广告+报备删档),须律所#11先拍;豁免拍不下则日期后移
- 压缩后波次:阶段二真机验收与内测冲刺并行、变现走mock不阻塞;留存运营验收按自然周期
frontmatter status 补此决策。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 08:28:16 -07:00
lili
3a0f65eabb docs(.agents): 观测栈起容器四坑蒸馏进 staging-ops §6(compose 部署 mini-infra)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
阶段四第一波起容器排障蒸馏成复用 checklist(staging-ops.md 新增 §6):
①端口 ss -tlnp 查(docker ps 看不到 host 网/宿主进程端口,如 mihomo:9090)
②expand-env 组件配置注释禁写 ${}(Loki/Tempo/collector 连注释严格校验、通配符触发 missing closing brace)
③镜像 pull 成功≠binary 在,docker run --version 验(daocloud mirror 的 collector 0.116.0 缺 binary)
④换 tag 复核配置字段兼容(redaction blocked_key_patterns/redact_all_types 降版本丢=脱敏红线)
+ §4 边际登记②观测保留期第一波已定(Prom/Loki 15d、Tempo 7d);README 索引描述补 compose 部署。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 07:44:34 -07:00
lili
7406b06d23 docs(凭据): 观测栈访问方式落档(Grafana/五件端点/MinIO 桶/ssh 连法)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
阶段四第一波观测栈五件起在 mini-infra,访问方式进凭据文档 SoT:
Grafana http://100.64.0.8:3002 admin · Prometheus 9091(避 mihomo)· Tempo 3200 · Loki 3100 · Collector OTLP 4317/4318;镜像定版含 collector 0.155.0 周折;ssh 真 IP -o ProxyCommand=none 连法。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 07:28:32 -07:00
lili
9c4638ee9d fix(观测): 阶段四第一波起容器四处排障修复(端口/expand-env/镜像)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
起容器碰生产 mini-infra 暴露四坑,逐个修:
- 端口:9090 被 mini-infra 自身 mihomo/clash API 占(docker ps 看不到 host 网/宿主进程端口、摸底漏),Prometheus 让到 9091
- Loki+Tempo:配置注释里的 ${MINIO_*} 被 expand-env 连注释严格校验、通配符触发 "missing closing brace",改纯文字(先前误判 Tempo 宽松、其实同款)
- Collector 镜像:daocloud mirror 的 collector-contrib:0.116.0 缺 binary(exec no such file、force 重下同 digest 仍坏);0.114.0 的 redaction 缺 blocked_key_patterns/redact_all_types(脱敏红线);定版 0.155.0(binary 完好+redaction 字段最全)
五件全绿:Collector/Prometheus(9091)/Tempo/Loki/Grafana 全 200,实占约 170MiB(<< 3.4G 上限)。
follow-up:0.155 提示 otlphttp→otlp_http(deprecated warning、不阻塞)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 07:25:39 -07:00
lili
62ce5531b6 feat(观测): 阶段四第一波观测栈 compose(五件+脱敏+MinIO后端,不起容器)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
deploy/infra/observability/:OTel Collector+Prometheus+Tempo+Loki+Grafana docker-compose,照已签设计施工(opus 写 + fable 源码级终审)。
- 端口逐个不撞现有(Grafana 3002 避 new-api 3000/gitea 3001;Collector 4317-4318/Prom 9090/Tempo 3200/Loki 3100)
- 资源三上限(mem 合计 3.4G / cpus / cpu_shares=512 CPU 争用让路 new-api)
- 脱敏 redaction 三 pipeline 导出前(手机号/token/JWT/密钥)= 安全红线
- Tempo/Loki 存 MinIO 独立桶 obs-tempo/obs-loki(minio-init 幂等建、不碰 ragflow)
- 镜像全钉版本、密钥全走 .env 不入仓
终审验通:git 纯新增未 commit / compose config exit=0 / infra-minio 在 infra-shared 网 DNS 可解析(最大风险排除)/ grafana:11.4.0 经 daocloud mirror 拉取成功。起容器待创始人 go(碰生产 mini-infra)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 05:28:52 -07:00
lili
e1f5a66a5d docs(观测): 阶段四设计创始人评审通过定稿(§10 六项拍板回写)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
创始人 2026-07-05 评审 §10 六项已拍:
- 告警件 Grafana 统一(替夜莺)· admin 一键进盘本期做 · traceId 并存关联 · 落点 mini-infra 32G
- new-api 冻结阀:本期只做通道巡检加告警,自动冻结阀排下一期
回写 §10 结论、§6/§7 内部一致(去评审前「待确认/待表态」措辞)、frontmatter status 转定稿。
docs-gate 七检全绿。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 04:48:32 -07:00
lili
aceea4e52f docs(观测): 阶段四设计二轮 Opus REVISE 三条修回(便宜档 OTLP 现状/脱敏验收/sot-impact 改动面)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
二轮 Opus 评审裁 REVISE(小幅定向)。亲验源码坐实后订正:
- Finding 1(一轮改过头):便宜档 Service+CLI 用 make_jsonl_sink 写 trace.jsonl 不产 OTLP;
  唯一 OTLP exporter=tier2 专属 studio_sink、发 AgentScope Studio 私有端点、私有 root 不读入站 context。
  订正 §3 面二/面三·§4 图·§5 面二/面四·§6 表;删「重定向十分钟」旧断言,改写为两条线各一处真实接线。
- Finding 2:§8 补第 7 条脱敏可跑验收(注入手机号/token→验 Tempo/Loki 打码)。
- Finding 3:frontmatter sot-impact 补明两 canonical 真实改动面(观测体系 §1 现状订正+告警多段;
  k8s迁移落点反转牵动目标/拓扑/阶段/风险/验收)。
- Finding 4 顺手:§5 面三 scrape 拉/推方向澄清、面四 Java traceparent 注入依赖面一先装 agent。
docs-gate 七检全绿。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 03:38:02 -07:00
lili
8409f19c2a docs(svg): 配置控制面阶段二 4 张人读 SVG(W-DSGN SVG 尾波核心)+ 接入阶段二设计档填占位
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
opus 按 atlas 标准产 4 图落 docs/agent-specs/assets/,fable 终审(结构良构+viewBox 自适应/最复杂的双路激活图
qlmanage 渲 PNG 亲看无溢出配色准/设计档 diff 零 prose 改):
- cfgctl2-01 配置中心分层与分工(yudao 治理⊕Nacos 路B、基建vs业务分工、prompt 出 Nacos 进 MySQL)
- cfgctl2-02 双路激活编排(sanity 前置→beginActivating 快照→路A PATCH∥路B publish→markVersionActivated→补偿)
- cfgctl2-03 激活一致性状态机(草稿→待审→ACTIVATING V30 持久态→已激活;recoverActivating 幂等/双恢复语义)
- cfgctl2-04 漂移对账三态(IN_SYNC/DRIFT/不可达;8s 容忍窗;篡改→检出→重推→收敛闭环)
接入阶段二设计档 §2/§3.2/§3.3/§3.6 四处 SVG 占位为真实内嵌+图清单同步(11增8删,零 prose 改)。
atlas 复验全过(界内/良构/脚注/转义)、docs-gate 绿。W-DSGN 只剩旧档 SVG(plan①顶图/quality/重推演,非阻塞)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 01:43:41 -07:00
lili
4ff754c634 docs(design): 阶段四 §10.6 扩容收口——mini-infra 32G 已扩并复验健康(available 427Mi→24Gi,OOM 风险解除)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
创始人 2026-07-05 选 32G,mini-infra 15G→31Gi 可用;fable SSH 复验:used 6.7Gi/free 20Gi/available
24Gi、12 容器全回来零异常退出(minio/mysql/postgres/redis/nginx/new-api healthy)、Nacos readiness 200。
观测栈 3-4G 常驻装进 24Gi 余量绰绰、OOM 风险解除;本项收口(内存维度已备,CPU/IO 隔离+跨机拓扑仍按设计执行)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 01:39:23 -07:00
lili
d5dae4aa45 docs(design): 阶段四观测设计 双评审修订(Codex+Opus REVISE→9+6 条修回,两处事实冲突亲验纠正)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
fable 主笔草案经 Codex(6条)+Opus(9条)双评审均裁 REVISE,两处 reviewer 事实冲突我亲验纠正后全修回:
- 亲验:otel wheel「已随 agentscope 2.0.2 传递装齐」(cheap-worker/.venv 有全套 1.43.0、Requires-Dist 带)
  →面二叙事从「缺 wheel 会炸」改「依赖已齐、真因没配地址 no-op、重定向=配 Collector 地址」;
- 亲验:monitor starter「经 system/infra 两模块传递进 huijing-server」(两 pom 均引)→§3 现状从
  「classpath 不存在」改「starter 在席但残缺(actuator/micrometer 未装、SkyWalking Bean 注释死)、OTel 共存收编」。
必修六项修回:①面二 otel 叙事 ②面四 Python 真实三跳 traceparent(worker_service 手动 extract/worker→本机
Service:8300 注入/Service span 接传入 context;端到端 trace_id 列回硬验收)③sot-impact 补《k8s迁移》canonical
(落点反转取代其 mini-desktop k3s observability 段、两份同批回写)④脱敏 Collector processor 安全红线写回+
admin 一键进盘表态 ⑤§8 验收补回端到端 trace_id/告警真送达/成本对账/agent 性能量化六条硬判据。细化四项:成本
自估非权威标注+logs.quota follow-up、SAA 仅 saa 路限定、CPU/IO 挤兑+跨机拓扑隔离纪律、冻结阀去留表态。
status→待创始人评审(§10 六项确认项)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 01:21:42 -07:00
lili
fd2546399b docs(design): 全链路可观测性 OTel 三信号全栈 落地设计(阶段四草案·待双评审+创始人评审)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
方向 B 全栈 OTel(Collector+Prometheus+Tempo存MinIO+Loki+Grafana 三信号)+ 落点 mini-infra
加内存后落(创始人 2026-07-05 两拍)。摸底坐实五面现状(game-cloud SkyWalking 追踪已死需上
OTel Java agent+actuator / Python studio_sink 已是 OTLP exporter 重定向近零成本[requirements 缺
otel wheel 隐雷] / deploy 观测栈零 / 跨语言 traceparent 打通两条 HTTP 接缝 / 业务指标埋点零命中)。
本设计修订 canonical 观测体系.md 三处(落点 mini-desktop→mini-infra扩容 / 告警件夜莺→Grafana 统一 /
补五面落地+埋点清单),sot-impact 已申报、上级指 canonical。§10.3 已写回 mini-infra 实测(15G/free
427Mi/容器实占~7.5G ragflow 独占 3.35G)+ 扩容建议(32G 下限 / 64G 一台管到底)。实施卡硬件扩容窗口。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 01:01:22 -07:00
lili
5cb84c1ca6 docs(boards/plan/distill): 阶段三 UI 完成+终审对账回填 + tech-decisions §14⑥(工单契约出入·vite 构建门)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
- 作战清单/进度总账:阶段三 game-admin 配置控制台 UI  完成+fable 终审(79264197,6文件+1276:
  api 14端点+详情三区[JSON 编辑器保 routeA/routeB 信封]+菜单种子 7120-7125;Opus 评审 REVISE→
  F1-F7 修回、F5 拍档A;逐字对源修工单3处出入;vite build 亲跑绿;真后端 e2e 排 staging 窗口)。
- 阶段三 plan status→已执行完成。
- tech-decisions §14⑥:列单人工单也会有契约出入(枚举名/参数名写岔)、executor 逐字对源核是免费第二道门
  (与①路由字面量对源同源);game-admin 构建门=直调 vite 二进制,pnpm build:* 的 runDepsStatusCheck
  无-TTY/无网中止≠编译错,别误判构建红。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 00:11:37 -07:00
lili
79264197ae feat(aigc-admin): 配置控制面阶段三 game-admin 配置控制台 UI(14端点封装+列表/详情三区/版本diff/漂移对账+aigc:config五权限菜单种子)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
消费阶段二已落的 AdminGenConfigController(/admin-api/aigc/config 十四端点),把受治理生成配置变得可视可操作、有权限边界;不改一行后端契约。

- api/aigc/config/index.ts:14 端点封装 + VO 逐字对齐 TS 类型;三个 @RequestParam POST(archive/recover-activating/rebroadcast)走 params 位防真机 400;全走标准 CommonResult request(排除 genMonitor 裸 axios 范式)
- views/wanxiang/config:配置集列表+新建+归档;详情抽屉三区——草稿编辑(prompt 大文本域 + JsonEditor code 模式,解析→改叶子→原样回序列化保 routeA/routeB 信封 round-trip + routeA sanity 前端预校验)/ 版本历史+全量查看+与上一版 diff / 激活·回滚·恢复卡激活+漂移对账三态+一键重推;写按钮全 v-hasPermi 收敛(save/freeze/archive/activate)
- game-module-aigc/sql/aigc_config_menu.sql:自建父菜单(id 7120,component=wanxiang/config/index)+ 5 权限点(7121-7125:query/save/archive/freeze/activate)INSERT IGNORE 幂等,id 段避撞 biz(7100-07)/trade(7110-12)
- 契约核实:状态枚举实为 AigcConfigStatusEnum 五态(补工单漏的 ACTIVATING=15)/ verdict 五态 / changeType 三态逐字对源;version/get 参数是 versionId、version/diff 参数是 versionAId+versionBId
- 验收:vite build 绿(exit 0)+ eslint 干净(exit 0)+ vue-tsc 我方文件零类型错误(总数持平基线 55,均上游 yudao);真后端 e2e 走查待 staging 部署窗口(诚实口径:本地只到 build 绿)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 00:03:13 -07:00
lili
37bbb5e55e docs(plan): 配置控制面阶段三工单 Opus 评审修订(REVISE→F1-F7 修回)+ F5 创始人拍档A
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Opus 开工前对抗评审裁 REVISE,抓三处「mock 绿真机断」硬伤,已修回:
- F1[阻断] content_json 是 routeA/routeB 嵌套信封(非扁平)——草稿编辑器定 JSON 编辑器 round-trip
  保信封(F5 创始人拍档A:schema 驱动引导表单降二期跟进)+ 前端 routeA sanity 预校验;信封契约
  取自 GenConfigContentCodec 钉入 §3.2①。
- F2[阻断] 3 个 POST(archive/recover-activating/rebroadcast)绑 @RequestParam 非 body → 前端走
  params 位否则真机 400;§二逐端点标参数位+精确字段名(freeze 用 id、activate/rollback 用
  configSetId+versionId);枚举逐字对源码核。
- F3[中高] 菜单权限种子欠定——自建 type=2 父菜单+5 按钮=6 行、id 取 7120+ 实查 max、INSERT IGNORE。
- F4 权限门用非超管角色验;F6 api 范式点名 infra/config·trade.ts 排除 genMonitor;F7 diff/漂移 VO 扁平直渲、风险 2 收窄。

Codex 半评审走异步 runtime 不可内联取,按 protocol #8 Opus 单评生效。待放行执行。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 23:38:12 -07:00