980 Commits

Author SHA1 Message Date
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
lili
315c18e25f docs(plan): 配置控制面阶段三 game-admin 配置控制台 UI 实施工单(草案·六要素·待双评审+放行)
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
阶段二后端 AdminGenConfigController(/admin-api/aigc/config 14 端点+RBAC aigc:config:*+VO)已就绪,
阶段三=纯前端在 game-admin(Vue3+ElementPlus yudao fork)建配置控制台接这 14 端点+菜单权限种子。
六要素:目标背景/端点面/范围 MECE(做:api 模块+配置集列表+详情三区[草稿编辑/版本历史/激活]+diff 视图+
漂移对账面板+菜单权限种子;不做:schema 驱动动态表单[stretch]/BPM 审批[放量后]/阶段四观测/知识件配置面)/
可验证断言五条(build 绿+端点全接+权限门真+真后端走查闭环+诚实口径)/依赖前置/风险回滚。
上级=阶段二设计档,sot-impact=无契约变更。作战清单挂草案指针。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 21:54:32 -07:00
lili
3834e51450 docs(boards/distill): 阶段二部署窗口批完成+SSH 终审 + 测试债两条清 对账回填 + tech-decisions §14 两坑蒸馏
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
- 作战清单 W-CFG:部署窗口批 🔄→✅ 完成+fable SSH 独立终审(路A `/sessions` 双证/灌 dataId
  零漂移/门阈值热改亚秒/两 smoke succeeded/回退一处可逆/三 follow-up);既存测试债两条 ✅ 已修
  `167cedde`。
- 进度总账:最近更新窗回填部署完成+测试债清。
- tech-decisions §14 增两坑:④ worktree isolation 默认基线=仓库默认分支 dev/1.0.0(893 提交前
  TS monorepo 老线)→派 worktree 干 dev/2.0.0 活须先 reset、小活主树直修;⑤ venv 缺「已声明但
  惰性 import 故建 venv 未装」依赖(nacos-sdk-python)=开旗后热源静默不 attach,启用旗前置须
  pip install -r requirements.txt;并记 live 变更终审工艺=SSH 只读独立核实与报告逐字比对。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 21:45:00 -07:00
lili
167cedde15 fix(aigc-test): 修两条既存测试债——控制平面测补 MQ producer @Mock + schema 校验测夹具自包含化
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
条1 AigcControlPlaneTest(原 6 err):AigcTaskServiceImpl 接 RocketMQ(T-AGC-07)后新增
genTaskProducerProvider 软注入字段,本纯 Mockito 测未声明对应 @Mock → @InjectMocks 留 null →
成功入队路径(insert 后 getIfAvailable() 发 MQ 信号)6 例 NPE。补 @Mock provider(字段名同源
按名消歧)+ setUp 桩 getIfAvailable()→null(走生产「producer 缺席→跳过投递、任务留 queued」
软兜底;本测只断 insert 落库、不断 MQ 投递)。

条2 GameConfigSchemaValidatorTest(藏红/陈旧 target 假绿):accepted-configs.json 夹具由 pom
copy-wanxiang-test-fixtures 从 docs/agent-specs/2026-06-09-generation-spike 拷入,该源目录已随
史料档清理删除(6d2f8789)→ 干净构建拷空、夹具缺失、assertNotNull 红,仅靠上次构建残留 target/
陈旧副本假绿。修=从 git 史(6d2f8789^)捞回 6 条 clicker accepted 配置、落一等 test 资源
src/test/resources/wanxiang-test-fixtures/accepted-configs.json(普通 test 资源自动进 classpath)、
删已破 pom 执行段(另一拷 contracts 的执行段不动)。

验证(干净 mvn clean test 清陈旧 target/):两目标类 27/0/0;整个 aigc-server 模块套 363/0/0
Skipped 7(基础设施门测),BUILD SUCCESS,零回归。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 21:38:35 -07:00
lili
c3f9c26bf9 feat(aigc)+docs: 决策5「按推荐」落 BUDGET_RMB 0.15→¥0.6(D11 效率维纠错配,待外置)+ 决策6「进配置集」裁定入档 + 板追加四增量(W-CFG-EXT D11 外置/W-CFG-KB 知识件入集/阶段四 reframe 全链路 OTel-Prom-Grafana/W-ASSET 资产管理待 scope)
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 21:05:18 -07:00
lili
c01359262e docs(boards/distill): 阶段二全五步收官对账(作战清单 W-CFG 终态+W-DSGN 文本债勾账只剩 SVG 尾波+总账第二窗)+ tech-decisions §14(路由字面量对源码核/门旗+fail-closed 凭据双保险/Nacos 最终一致/激活一致性落地形态/MP NULL 指针写法)
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:59:29 -07:00
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