zizi
|
eb5dbcb1af
|
docs(mvp): 建立 MVP 进度总账(单一事实源)+ 刷新 game-cloud/game-studio 过期 .agent
- 新增 docs/mvp/MVP进度总账.md:把「计划↔完成↔待办↔执行记录」对账在一处
(M0-M5 里程碑账 / 13 模块建设矩阵 / 5 条闭环链路 / 8 类契约 / backlog / 波次史)
- 诚实口径:结构骨架~70%(9/13模块脊柱+M1单体真启动),真实可验收P0仍早期(M2-M5为桩)
- 刷新两个 .agent:Wave2/3 已建已提交、M1 达成、contractGaps 已补;均指向总账为准
- 修复"跑了波次却无活账"的项目管理缺口
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-09 06:00:36 +00:00 |
|
zizi
|
8565fa242e
|
fix(wave3-staging): 去除 system/infra-server pom 的 repackage(修 admin-api 控制器单体内 404)
真因(比"嵌套Feign回环"诊断更深):yudao-module-system-server / infra-server 的 pom 带
spring-boot-maven-plugin repackage,被打成可执行 boot jar(class 落 BOOT-INF/classes/+Main-Class)。
作为 yudao-server fat jar 的嵌套依赖库时,Spring Boot 嵌套类加载器只读 jar 根 class、读不到
BOOT-INF/classes/ → system/infra 的 controller/service/@Primary 实现全加载不进 → /admin-api/system|infra/* 404,
且 game admin @PreAuthorize 经 Feign 回环到死掉的 rpc-api/system/permission 也 404。app-api 正常因 game 模块是普通库 jar。
修法:2 个 pom 去掉 repackage 改回纯库 jar(同 game-module-*-server)。
验证(主 agent 独立):BUILD SUCCESS;system-server 181MB→1.3MB、infra 172MB→601KB,UserController.class 落 jar 根、无 Main-Class;
mini-desktop 运行态 /admin-api/system/user/page→code:0 返 20 真实用户、/admin-api/ad/slot/page→code:0、/app-api/feed/stream 回归 200。
注:其余被注释未 bundle 的 yudao 模块(bpm/pay/member)pom 仍带 repackage,本波不动(不在 fat jar 内);将来 bundle 须同样去掉。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-09 05:26:30 +00:00 |
|
zizi
|
d7fac9038d
|
fix(wave3-staging): yudao 单体启动装配修复 + application-staging.yaml(mini-desktop 真启动通过)
首次真启动整个 yudao-server 单体暴露预存装配缺陷(此前只验编译+单测)。按 live 错误栈两层根因修复:
- 撤销 yudao-server/pom.xml 对 spring-cloud-starter-openfeign 的排除——framework starter
(YudaoSecurityRpcAutoConfiguration 等)自带 @EnableFeignClients 需 openfeign 在 classpath
- 补 yudao 上游漏标的 primary=false:OAuth2TokenCommonApi/TenantCommonApi/ApiAccessLogCommonApi/
ApiErrorLogCommonApi 四个 @FeignClient + 对应 4 个 *ApiImpl 加 @Primary(同 PermissionApiImpl 范式),
使单体内本地实现胜过 Feign 远程代理
- application-staging.yaml:DB/Redis→隔离容器 13306/16379(${ENV} 占位非明文)、nacos/xxl 关、
mock-enable、tenant.enable=false(单租户)、openfeign 回环 48080
验证(主 agent 独立 mini-desktop 观测 + 本机编译):Started YudaoServerApplication;Flyway V1-V9 全 success;
24 张 game_* 表;/v3/api-docs 87 paths 9 模块无 game/ 前缀;POST /app-api/project/1/publish→admitted+gates 含 key=compliance;
本机 mvn -am compile BUILD SUCCESS。Application.java 未改(原 @EnableFeignClients 假设会致双 primary 冲突,实测不需要)。
P1 遗留:admin-api @PreAuthorize 端点撞 yudao 单体嵌套 Feign 回环 404(app-api 主链路不受影响)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-09 04:55:23 +00:00 |
|
zizi
|
2ae0c6f267
|
fix(wave3): 补回被 .gitignore build/ 吞的 runtime build 包源码(克隆即崩,后端版)
staging fresh clone 编译失败暴露:根 .gitignore 的 build/ 规则(为产物设计)又静默吞掉
后端 cn.wanxiang.game.module.runtime 的 build 包 5 个源码(RuntimeBuildDO/Mapper/Service/
ServiceImpl/Test,编译任务域)——与此前 game-admin 同根因。本地有盘上文件故 reactor 编译/单测
绿,但推送的仓库缺这 5 文件,任何 fresh clone 都编译不过。
.gitignore 已加通用豁免 !**/src/**/build/(src 下名为 build 的一律是源码非产物),根治该类复发。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-09 03:23:42 +00:00 |
|
zizi
|
18e263b4c7
|
fix(wave3): V8/V9 集中复制到 yudao-server/db/migration(同 G0,确保 staging Flyway 扫全 9 迁移)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-09 02:37:59 +00:00 |
|
zizi
|
6c8844f3be
|
feat(wave3-phaseC接入): project.publish 注入 ComplianceGateApi + 封禁下架联动 seam
主 agent 串行收口黄金模块(project 15 测 + compliance 8 测全绿):
- R1 接入:project-server 依赖 compliance-api;submitPublish 注入 ComplianceGateApi.evaluate,
映射 key=compliance 的 GateResultVO(block→拦/review→放行进审核/pass→放行);admitted=gates 全 pass
- R3 接入:ProjectApi 加 unlistIfPublished seam(仅 PUBLISHED 以系统审核人调既有 reviewProject 下架,
复用状态机不重写=D2);compliance UserBanServiceImpl 封禁游戏时联动调用(失败不回滚封禁主操作)
- D2 锚点:reviewProject/resolveReviewTargetStatus 字节级未改写,三测断言未动
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-09 02:31:32 +00:00 |
|
zizi
|
b70e90b775
|
feat(wave3-phaseB): compliance/studio 模块 + contractGaps(后端全绿)
Phase B 并行建(4 路互斥目录),主 agent 合并 reactor 验证:
- compliance(109/V9):ComplianceGateApi.evaluate seam + 风格原子桩(StyleComplianceAtom/IpComplianceSeam)
+ 分级 + 封禁(R3 状态分支,下架联动留 Phase C)+ V9 DDL(gate_result/content_rating/user_ban,不建审核状态机表 D2)
- studio(112/V8):创作任务链(createDraft→project.createProject / generate→aigc)+ attachments 持久化-only
+ 新增 AigcApi seam(additive)+ V8 DDL
- contractGaps 后端:GAP-3 feed ShareMeta versionId(调 getCurrentVersionId 仅已发布)、GAP-2 runtime manifestUrl(纯派生零DDL)
- contractGaps 前端 game-studio:GAP-1 publish admitted/gates、GAP-3 share→play versionId、GAP-2 取包 manifestUrl+sha256
- 合并验证:全 53 模块 reactor 编译 SUCCESS;新/改模块单测全绿(compliance8/studio11/feed12/runtime24)
- 注:前端 game-studio build 待 mini-desktop 验;Phase C 待接入 project.publish→ComplianceGateApi
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-09 02:15:20 +00:00 |
|
zizi
|
096020fa0a
|
feat(wave3-phaseA): project 侧跨主线收口(publish 唯一化+ProjectApi seam+GAP-4+治理+V6V7 G0)
Phase A 串行收口(主 agent 独占改黄金模块,11 单测绿),为 Phase B 并行建模块铺底:
- R1 publish 唯一化:submitPublish void→ProjectPublishRespVO{admitted,gates};门禁收集不抛、
block→admitted=false 不改状态机;compliance gate 留 Phase C 接入 seam(TODO,不 import)
- R2 ProjectApi seam 单点定稿:+getCurrentVersionId(GAP-3)/+createProject(写类RPC 显式 creatorUserId)
- GAP-4:events.schema.json 信封 envelope/user 由 snake→camelCase(与 telemetry/前端 SDK 对齐,破坏性窗口收敛)
- R4 治理:登记 studio=112/Flyway V8(README §4/§1/§2 + CLAUDE.md;与前端仓 game-studio 区分)
- R6 G0:V6/V7 集中复制到 yudao-server/db/migration(diff-identical)
- project.yaml publish 响应同步结构化;D2 锚点 reviewProject/game_review_record 未动
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-09 01:37:06 +00:00 |
|
zizi
|
43fce856d7
|
feat: Wave2 变现域 ad+trade 后端建成验证 + game-admin 运营台脊柱
后端(主 agent 独立复跑验证,非采信子 agent 自报):
- 新建 game-module-ad(广告引擎)+ game-module-trade(分账/结算/提现),克隆黄金模板 project
- 契约先行已锁:ad.yaml/trade.yaml + Flyway V6/V7;ad 计费 uk_trace 收紧为 (trace_id,event_type,tenant_id) 防 reward 被 impression 静默吞掉
- ad↔trade Feign seam(AdRevenueApi.getUnsettledRevenue/markSettled)+ project-api 归因(getCreatorUserId,game 模块首个跨模块 Feign,仿 yudao DictDataApi)
- AdProvider SPI(mock,留 csj/gdt 注入位);资金安全:金额用分/uk 幂等/状态机 CAS/防超扣/T+1 结算补偿
- pay 不建,复用 yudao-pay 后置(Doc B:收单归 pay、钱包提现归 trade;MVP 钱财闭环 ad→trade 不经收单)
- 验证:mvn -pl yudao-server -am compile 全量 BUILD SUCCESS;ad 15 + trade 24 = 39 单测绿;huijing 残留=0、裸 select*=0
前端 game-admin(运营后台):
- 克隆 yudao-ui-admin-vue3 裁剪(删 crm/erp/mall/mes/iot 等无关业务模块)+ 5 个 MVP 运营页接 admin-api(审核/精选/看板/广告位/提现审核)+ mock 兜底
- 构建验证移至 mini-desktop(本机 5.8G 内存 OOM,见执行 spec)
文档:HJ-PAR-002 review+execution 双 spec + Workflow 编排脚本
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-08 16:20:17 +00:00 |
|
zizi
|
9e95a66ea6
|
refactor: 技术命名空间 huijing→wanxiang 全栈落地(代码+契约,原「只改文档」决策反转)
- Java 包 cn.huijing.game→cn.wanxiang.game:126 .java + 15 目录 git mv(保留历史)+ Application scanBasePackages/@MapperScan + yaml type-aliases
- SDK HuijingGameSDK→WanxiangGameSDK + postMessage channel huijing-game-sdk→wanxiang-game-sdk(契约 + 前端 host/sdk/inject/bridge)
- 契约 contracts/ 同步(sdk-interface.d.ts / runtime.yaml / game-package.schema / $id URL / V3 SQL 注释)
- 主 agent 独立验证全绿:后端集成编译+55 单测(cn.wanxiang)、前端 build+/browse 冒烟(WanxiangGameSDK+demo 911 像素+遥测 200)、残留 huijing=0、Flyway 5 迁移 diff-identical、yudao cn.iocoder.yudao 2167 文件未误伤
- 保留 yudao 框架 cn.iocoder.yudao + Maven groupId cn.iocoder.cloud
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-08 10:16:52 +00:00 |
|
zizi
|
c4e2d73300
|
feat(backend): Wave1 后端脊柱 5 模块 + 8 类契约 + yudao-cloud fork 接线
- game-cloud:yudao-cloud fork(裁剪至 system/infra)+ 5 业务模块 project/aigc/runtime/feed/telemetry
- 黄金模块 game-module-project + 克隆 4 脊柱模块;46 单测绿 + 41 模块集成编译绿
- contracts/:8 类契约锁定(5 API YAML + sdk-interface.d.ts + game-package.schema + events 等)
- yudao-server 接线:全局组件扫描 + @MapperScan + Flyway V1-V5(baseline-version=0)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-08 09:10:05 +00:00 |
|