lili
bd70188e9b
feat(planB-p2): U7 rubric 打分仪 turnkey(R9)——抽样/聚合/判门 + 人工协议
...
Plan B Phase-2 game-quality 门(gated on gen-done)的非生成半边先建:
- rubric_score.py:5项×0-2(资产对位 veto)确定性等距抽样 N=8 / 聚合 / 判门(均分≥1.4 ∧ 资产对位无0);selftest 7/7 PASS
- rubric-protocol.md:人工打分 0/1/2 锚点 + 与九门划界(只补设计质量层)+ 执行步骤
- README.md:Phase-2 harness(U7 建好 / U8·U9 待建)总览 + gen-done 后跑法
turnkey:gen-done 批落地即填分出判、零搭建;逐项分人工给(工具不代打)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 01:28:47 -07:00
zizi
93c63f16ec
docs(arch): 生成平台架构演进-review(多架构师综合)——零rewrite/大面积keep,策略外置+九门去自评+单轨化
...
5 架构师据真实代码诊断+逐块keep/optimize/refactor/rewrite+迁移序列,对抗评审剔失实背书,总架构师综合。承重论据已复核属实(registry.yaml/V18·V20/land·markBuilt/llm_error)。挂入 plan-001/002 迁移,不另起编号。_index 加★指针。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 18:20:51 +00:00
lili
0daaac0306
fix(smoke): U6 smoke-test.sh 可移植性——裸 $var 紧贴全角字符加花括号(R3)
...
bare `$var` 紧贴全角()(等 → strict-locale bash(macOS 5.3)把多字节首字节并进变量名 → set -u unbound;
smoke 在 lili-mac 一贯断在 template/list 行。4 处加 ${}(tcount/VID/QSCORE/SID),语义不变、跨环境可跑。
U6 验证(staging 五业务链路,本机 curl 可达):11/12 真绿——创作 draft / 发布(feed/zones/project) /
试玩取包(vid=93112) / 广告钱包(ad/trade) / 数据回路(qualityScore=60)。唯一 FAIL=template/list count=0
= W-CLEAN 清旧四模板 + generic 桥接的设计态(总账 §1 记非回归);R3=链路就绪门(不代理 R1)成立。
follow-up: template/list assertion 按 generic 桥接更新(非本单元业务语义裁定)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 15:43:33 +00:00
lili
0a82a49f47
docs(agents): distill U2-U6 staging 验证 + dev/2.0.0 boot-repair 三类教训
...
ce-work U2-U6(staging 真验证)期间 §3 隔离门连拦 3 类 dev/2.0.0 boot P0,distill 防复发:
- engineering-conventions §1.4:admin/app 双包同名 controller 必显式 bean 名(裸 @RestController 默认 bean 名相撞=ConflictingBeanDefinition 拒启;含自检 grep)
- engineering-conventions §8:Flyway 迁移单一事实源(只放 huijing-server 聚合,禁 module 自带副本=同版本重复拒启;含自检 find)+ §9 Checklist 指向聚合器
- ui-walkthrough-cdp §1:lili-mac 系统代理→Chrome 假 502(curl 直连绕过、判据=ssh localhost)+ superpowers-chrome 陈旧会话坑;正解永远 mini-desktop localhost CDP
(actuator/health 假探活已由重部署 agent 入 staging-ops §5。)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 06:43:31 -07:00
lili
ff46b90ee7
fix(flyway): 删 5 个 module 迁移重复副本——消同版本重复致 dev/2.0.0 启动失败(P0 #3)
...
Flyway 在 classpath 撞同版本即拒启(Found more than one migration with version):V6/7/8/9/18 既在
huijing-server 聚合(V1-V25,已应用到 live = 单一事实源)又各在 module-server 重复(06-18 各 lane 加功能误放)。
删 module 副本、留 huijing-server 聚合:
- V6/V8/V9/V18 两边 md5 完全一致 = 纯去重
- V7(trade) 仅注释差异(列定义同;game_trade_grant 表在 V21 不在 V7)→ 留 huijing-server 已应用版
(改已应用迁移会 checksum 漂移;module 副本的注释改动弃)
全仓扫描:删后无重复版本、无 module-only 迁移(30=25 聚合+5 副本)。库停 V17 未污染。
注:依赖自身 db/migration 的 module 测试若存在需后续改 test-scoped schema(本修以解 boot 为先,redeploy -DskipTests 不受影响)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 05:55:09 -07:00
lili
de3bf4cb62
fix(compliance): 消 CompliancePolicyController bean 名冲突(P0 孪生,补齐 84c6bd02 漏修)
...
84c6bd02 仅修 ComplianceAppealController 一对;隔离 :48090 门又拦下孪生:CompliancePolicyController
(admin/app 同名裸 @RestController) → 默认 bean 名再撞 → 仍 ConflictingBeanDefinitionException 启动失败。
全仓扫 108 个裸 controller,这是唯一剩余同类冲突。各加显式 bean 名:
admin→compliancePolicyAdminController / app→compliancePolicyAppController。
修后全仓再无重名裸 controller(扫描实证)+ 无 @Service/@Component 同类冲突 → dev/2.0.0 后端应可启动。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 04:59:19 -07:00
lili
84c6bd0233
fix(compliance): 消两个 ComplianceAppealController bean 名冲突——dev/2.0.0 后端无法启动(P0)
...
admin 与 app 两包下同名类 ComplianceAppealController 均用裸 @RestController → Spring 默认 bean 名
都是 complianceAppealController → ConflictingBeanDefinitionException → 整个 context 启动失败。
staging 重部署隔离 :48090 安全门拦下此回归(live 未切、零回归)。各加显式 bean 名消歧:
admin→complianceAppealAdminController / app→complianceAppealAppController。
路径 /compliance/appeal 相同非冲突(框架按包名 controller.admin.*→/admin-api、controller.app.*→/app-api 加前缀区分)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 04:50:24 -07:00
zizi
81c1b2cfa9
merge(planB U1): 引擎资产渲染 + asset 孤儿闭合(死代码修) → dev/2.0.0
...
Plan B(core-done) U1:六类资产 ref→assets→drawImage 渲染链路 + GAMEDEF_KEYS 孤儿闭合(assets 在 sourceProject 顶层正确抽取并入运行时 GameDefinition,消死代码)+ drawEntity shape:sprite(受控面只取宿主预载 boot.assets/运行时不碰 DOM/缺图源降级类目色占位)。已过 ce-code-review(P0 assets 层级/P1 契约同步/校验洞)+ 6c6g SHIP review。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 09:59:40 +00:00
lili
db14845d12
fix(review): U1 资产渲染——ce-code-review 整改(P0 assets 层级 + P1 契约同步 + 校验洞 + P2 群)
...
6-reviewer ce-code-review 揪出并整改:
- P0(api-contract,读 schema 实证): assets 在 source-project.schema sourceProject 顶层(非 gameDefinition,
后者 additionalProperties:false)→ 原加进 GAMEDEF_KEYS 丢合规顶层 assets。改:validateSourceProject 从顶层
sp.assets 抽取(容差回退 gd.assets)并入 cleaned.assets;GAMEDEF_KEYS 移除 assets;测试改顶层。
- P1(api-contract+project-standards 双证): runtime-api-2d.d.ts 同步—GameDefinition.assets / RenderComponent
shape:'sprite'+asset?/ref? / AssetSpec / createRuntime boot.assets(contract-first)。
- P1(adversarial conf100 复现): 非字符串 asset.ref(对象)绕过校验→零 repair 信号死循环 → ref 须非空字符串。
- P2(adversarial+maintainability): id/ref key 空间歧义 → drawSprite 经 asset.ref 查 boot.assets(宿主按 ref 键)。
- P2(maintainability): 数组化循环复用 GAMEDEF_KEYS 去重 / placeholderColor 补 music 色 / 弃 c.sprite 别名 / 32px 具名 DEFAULT_SPRITE_SIZE。
- P2(project-standards+api-contract): 宿主预载半-wired → game-host.d.ts + boot-game-host.js 加 HOST TODO 指针。
测试: 重写 assets(顶层/非串ref/非数组/端到端) + sprite 7 路(ref键/无图/image=null/抛错/悬空/music/asset:0)。node --test src/host 31/31 绿。
残留(已 TODO 指针 + plan U1 剩余 + task 记录): 宿主 loadAssets→boot.assets 真 wiring(浏览器耦合、node 难测)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 01:32:07 -07:00
lili
73d3391696
feat(engine): U1 引擎资产渲染地基 + asset 孤儿闭合(死代码修)
...
plan 2026-06-19-001 Plan B · U1。
- build-from-source: GAMEDEF_KEYS 纳入 assets(原缺→line 101 strip 掉=六类资产产物永不被消费的死代码,
评审 P0);assets 六类(sprite/character/effect/scene/ui/music)/ref 校验转 repair 信号。
- gd-runtime: drawEntity 加 shape:'sprite' 分支 → 经 boot.assets(additive,宿主 init 预载图源)drawImage 居中;
无图源降级类目色占位 rect(前向兼容,宿主预载落地后自动转真图,不崩不空屏)。
- game-host.d.ts: additive 扩 boot.assets(assetId→{image})落实 init「装资产」意图,零破坏既有 boot。
- 测试: build-from-source「assets 存活白名单+六类/ref 校验」、gd-runtime「sprite drawImage/无图占位双向」。
node --test src/host 31/31 绿(无回归)。
剩余 U1 wiring(单列·触宿主实现侧): 宿主 init 预载管线 asset ref→image map→boot.assets;
六类资产 demo 截图 + 孤儿闭合截图需 mini-desktop CDP。R11 代理判据待真图源接通后验。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 00:57:26 -07:00
lili
0518d24592
docs(plan): plan003 Plan B — Phase-1 core-done 验收闭环执行(双线拆分)
...
ce-plan 据 2026-06-19 验收闭环需求档产出 Plan B(core-done):引擎资产渲染(原003-U5)+
验收 harness(核心纵切e2e/广度抽检/8页走查/smoke)+ 双里程碑收口。
依赖排序:Phase1 六单元全独立(执行期可并行 fan-out)、Phase2 gated on gen-done(Plan A ≥80%产出)、Phase3 最终收口。
gd-runtime 整面归本档(解 U5↔U1 共面冲突,Plan A 走 DESIGN_SYSTEM)。gen-done(U1/U2)=Plan A 另 session。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 00:45:00 -07:00
lili
e5c0497d26
docs(brainstorm): plan003/Phase-1 验收闭环需求档(过 Codex+Opus 双评审)
...
ce-brainstorm「completed plan 003」产出:定义 plan 003 = Phase-1「done」验收判据闭环——
gen-done(A) ∧ core-done(B∧C∧D) 双里程碑独立收口 / 证据深度=核心纵切真机+广度抽检 /
生成 done 绑死已 flip saa / 设计完整性 rubric 已定标(5项×0-2·资产对位一票否决·均分≥1.4·N=8) /
U5 升 R4/R9 前置 / 性能可用性轴延后 Phase-2(风险接受) / 日历闸门项排除。
过 AGENTS.md §6.8 Codex+Opus 双评审,整改 5 P0+6 P1+多 P2 文内,3 跨档 TODO 落 003-U2/U5。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 00:04:27 -07:00
zizi
f7f1262b05
docs(plan): 生成质量 v3 战略转向——用对 agentic 的 M3 提主路(Anthropic协议+thinking/历史保留+工具循环)
...
- 根因分析档 v3 重写:整合二轮双评审 P0(n=5 非 13 / M3 论点降工作假设 / 点击消除 H 归上下文非门测错 / a3 救场回传未做 / best-of-N 整图串行) + M3 双协议实测探针 + 官方 Interleaved Thinking 文档
- 最深根因=用法错:M3 是 agentic SOTA 却被当一次性 JSON 填空机用 + thinking 剥离 + 历史不留;QC thinking:disabled 是错补丁(该分离+保留)
- 003-U1 杠杆重排:① 用对 M3(U-A Anthropic /v1/messages + U-B 完整 response/thinking 入历史 + U-C agentic 工具循环=接法B 提主路)② 测量/门修(不改 H 门本体)③ 上下文 8/8 driver ④ best-of-N 次要;加第 0 步真基线门(n≥30 + 证伪实验)
- 退路分支/R2/已拍板 #2:ReAct 从 P2 contingency 提为 M3 主路;升强档/Claude premium=退路
- M3 身份确认:真 MiniMax agentic 双协议模型(非 Claude 改名),探针 /v1/messages 返原生 ['thinking','text'] 块
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 01:33:38 +00:00
lili
affb507bc3
docs(.agents): 沉淀 003-U1 e2e 验收门工具化 + 「SAA 路无¥(token≠¥,折¥=F3)」坑
...
扩 saa-graph-orchestration「真·全图 e2e 测成功率」章一条:SaaFullGraphE2eTest 003-U1 工具化
(n≥10/外部 brief 文件、minSuccessRate 可配硬门默认不设、token 成本会计软警告、模型无关单测),
并记关键坑「SAA 路无 ¥ 数据(SaaGraphDispatcher cost 整段省略,折¥=F3)→ 别接¥门、别造假¥」。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 16:30:43 -07:00
lili
730b399dd6
test(saa): 003-U1 验收门工具化——SaaFullGraphE2eTest n≥10 + minSuccessRate 硬门 + token 成本会计
...
把 SaaFullGraphE2eTest 从「内置 5 条 / 只断≥1 跑通」改造成可作 flip 前置硬门的客观量测工具
(plan 2026-06-18-003 / 003-U1;该路代码 001-U1~U4 已在 dev/2.0.0 落地,本单元只工具化验收门):
- brief:内置扩 5→12 条多品类(偏 realtime/physics/tap-targets/clickable)+ -Dsaa.e2e.briefFile
外部文件(行式,去空白/跳空行/跳 # 注释,解析空则回退内置);-Dsaa.e2e.n 取前 K(未设=全量)。
- 成功率门:-Dsaa.e2e.minSuccessRate 可配硬断言;默认不设=仅存在性(保 003-U1「先实测真基线再收敛」、
不破普通构建),显式 0.8 即 flip(003-U2)前置硬门。
- 成本会计:从回调 trace best-effort 抽 prompt+completion token + 升 stage2 计数作成本证据;
-Dsaa.e2e.maxTokensPerGame 仅软警告不硬阻断(遵创始人「质量优先、允许临时破价、记账对账」)。
¥折算 blocked on F3(SaaGraphDispatcher cost 整段省略,§6.3)→ 不造假¥。
- 纯逻辑抽 8 静态方法 + 新增模型无关单测 SaaFullGraphE2eGateLogicTest(覆盖 happy+边界)。
验证:mvn test-compile 全 reactor BUILD SUCCESS;SaaFullGraphE2eGateLogicTest 12/12 过;
e2e 无 -Dsaa.e2e=1 仍 Skipped(门控完好)。质量收敛到≥80% 须 mini-desktop 权威量测(blocked,非本单元)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 16:30:43 -07:00
zizi
9b280d668e
docs(ledger): 002 判收口标记 + U11→003-U5 回填(创始人 2026-06-18)
...
总账顶栏本轮日志补:plan002 status=completed、真验证并入 003-U4、引擎 U11→003-U5、carry-forward 入 backlog(3bf6deb7)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 23:15:02 +00:00
zizi
3bf6deb70a
docs(plan): 002 判收口完成 + U11 引擎收尾移入 003-U5(创始人 2026-06-18)
...
- 002: status=completed;U1-U10+P-OPN-08 已交付(后端 447 测试绿+各单元 codex 评审;前端 build 绿+mock),真验证并入 003-U4;加收口横幅
- U11 引擎资产渲染(六类资产 ref→draw + asset 孤儿 GAMEDEF_KEYS + 4 短板)移出 002 → 003-U5:与 003-U1 共改 gd-runtime/build-from-source,归生成运行时串行序列(双评审 P0-2)
- 003-U5 含评审修订:验收门改可断言(九门测不到资产→build 单测+截图比对+端到端孤儿闭合)、闭合 U6 素材 ref 消费链(P2-2)
- 003: 刷新过期"零行已建"状态表→001 已合 dev/2.0.0(39c16630)+时点纠正横幅;003-U4 前置补 003-U5
- carry-forward: P-ACC-03 feed 卡 ageRating / P-CRT-12 进度展示 → backlog
- 评审 provenance: U11 内容本次 Opus 评审 P0-2 已专门分析并建议本 relocation
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 22:59:04 +00:00
lili
ceafedfed3
docs(.agents,mvp): plan002 收口续——进度总账回填(U8/U9/U10前端 + P-OPN-08公开API) + @PermitAll公开读纪律蒸馏(P-OPN-08实证)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 14:33:42 -07:00
lili
8238bf2d7a
merge(P-OPN-08): 创作者公开聚合API(project+telemetry @PermitAll·仅status==4·无PII·评审SHIP 0P0/0P1+P2软降级整改) → dev/2.0.0
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 13:56:46 -07:00
lili
5f2d0021fd
fix(telemetry): P-OPN-08 评审P2整改——公开统计下游异常软降级零汇总(契约永不报错·对齐list非脆失败)+测试
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 13:56:42 -07:00
lili
1ebedf2939
merge(002-U9): studio前端 素材中心/玩法模板中心/创作者公开主页(public) + P-ACC-03徽标(build绿;feed卡ageRating gap已记) → dev/2.0.0
2026-06-18 13:45:09 -07:00
lili
c7a58b8c45
feat(project,telemetry): P-OPN-08 创作者公开聚合API@PermitAll(仅status==4·聚合统计无PII)
...
新增创作者公开主页两只读端点(契约+实现+单测,全 additive):
1) GET /app-api/project/public/creator/{creatorId} @PermitAll
→ PageResult<PublicCreatorProjectRespVO>{id,title,summary,coverUrl,ageRating,
playCount,likeCount,publishTime,creatorId,creatorName};仅 status==4 已发布作品。
2) GET /app-api/telemetry/public/creator/{creatorId}/summary @PermitAll
→ {creatorId,publishedCount,totalPlayCount,totalLikeCount};对该创作者 status==4 作品聚合。
跨创作者公开读(#1 正确性风险)处理:本仓 DataPermission 仅注册 system DeptDataPermissionRule
(仅作用 AdminUserDO/DeptDO 表),game_project 无任何 DataPermission 规则 → MP 拦截器不追加过滤;
project 的"创作者只见自己数据"一向由 Service/Mapper 手动 eq(creatorUserId) 强制而非拦截器。
故公开读只需按"目标 creatorId(路径参数,非登录人)"+status==4 等值即天然跨创作者,无需 @DataPermission(enable=false)。
口径:publishTime 取 update_time 近似(项目表无 publish_time 列,同 count-published 口径);
公开统计经 project-api getCreatorPublishedSummary 取(发布态权威+play/like 计数列均在 project);
creatorName 经既有 AdminUserApi.getUser().nickname 尽力解析(查不到为 null,无 PII)。
单测(Mockito,test goal GREEN):
- ProjectMapperTest(新):SQL 形态守卫——公开查询恒 status==PUBLISHED(4)+按 creator_user_id 过滤,不放行下架(5)/封禁(6);
- ProjectServiceImplTest(+5):跨创作者读(走 selectPublishedPageByCreator 非 selectMyPage)/creatorName 兜底/空/聚合/零;
- GameStatServiceImplTest(+2):跨创作者经 project-api 聚合(不走"我的作品"归属链)/null DTO 兜零。
mvn -pl game-module-project/...-server,game-module-telemetry/...-server -am test → project 32/32 + telemetry 46/46 绿。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 13:43:08 -07:00
lili
2eb507da4a
feat(studio): U9 素材中心/玩法模板中心/创作者公开主页 + P-ACC-03适龄徽标
...
3 new pages(view→store→api→request CommonResult 范式,全 mock 兜底):
- 素材中心 /studio/material:六类浏览(GET /app-api/studio/asset/browse)+ 上传
(POST /infra/file/upload→POST /app-api/studio/asset)+ 选用入草稿
(POST /app-api/studio/asset/select)
- 玩法模板中心 /studio/template:GET /app-api/studio/template/list(5 品类
business-sim/narrative/puzzle/trpg/heritage)+ 一键去创作
- 创作者公开主页 /creator/:creatorId(PUBLIC 非 requiresAuth,P-OPN-08):
GET /app-api/project/public/creator/{id}(仅 status==4)+
GET /app-api/telemetry/public/creator/{id}/summary
P-ACC-03 适龄徽标 AgeRatingBadge(4 级 all/8+/12+/16+)渲染于:项目详情/我的项目
列表/创作者主页(VO ageRating)+ 试玩页(compliance/rating/get 回读)。
gap:feed 卡 VO 无 ageRating 字段(不杜撰,待 feed.yaml additive);profile/account
页无单局分级数据源——均显式留空。
HJ-FE-DS-001 token/组件复用 + i18n zh/en + 移动优先;strict TS 无 any;
新增 mock studio.ts(注册 index.ts,/infra 前缀放行)。
gate:npm run build(vue-tsc -b && vite build)GREEN;preview+curl 6 端点
+ 3 路由 200 实证。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 13:40:14 -07:00
lili
da5ec28c49
merge(002-U10): admin运营台接线(限曝光/导出/经营看板/赋余额订阅·funds-safe bizNo幂等+二次确认;build绿) → dev/2.0.0
2026-06-18 13:15:12 -07:00
lili
6771229921
merge(002-U8): 创作可用性前端(P-CRT-10引导/11示例库/13就地失败可重试+mock失败注入;build绿) → dev/2.0.0
2026-06-18 13:15:12 -07:00
lili
7219b613f9
feat(admin): U10 限曝光/导出/经营看板/赋余额订阅 运营台接线
...
新增 3 个 wanxiang 运营页 + 营收报表导出按钮,全部接 dev/2.0.0 真实 admin-api,mock 兜底齐备:
- 限曝光控制(exposureLimit): POST /feed/exposure-limit + 复用 featured/page 列表 + featured/export-excel 导出;perm feed:featured:update / feed:featured:export
- 经营看板(operationDashboard): GET /telemetry/dashboard 跨模块聚合(DAU/GMV/生成量/发布量) + 区间选择 + 指标卡 + dashboard/export-excel;perm telemetry:dashboard:query(区别于按游戏维度的 dashboard 页)
- 赋余额/订阅(grant): POST /trade/account/grant + /trade/subscription/grant 2-Tab;资金操作=二次确认 + bizNo 幂等键(自动生成可改) + 元↔分换算;perm trade:account:grant / trade:subscription:grant
- 提现页平台营收 Tab 追加 GET /trade/report/revenue/export-excel 导出;perm trade:report:export
接线对齐后端 ReqVO 实证(GrantBalanceReqVO/GrantSubscriptionReqVO/ExposureLimitReqVO):
bizNo @NotEmpty max64、amount 分>0、plan 1月/2季/3年、durationDays>0、exposureLimit Float>=0(>=9999 硬剔除)。
路由注册 remaining.ts wanxiang.children(5→8),菜单继承 route meta;导出走 request.download(blob)+download.excel。
gate: vite build --mode prod GREEN(3 新页+新端点均编入 bundle 实证)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 13:11:57 -07:00
lili
50a089170d
feat(studio): U8 创作可用性 P-CRT-10引导/11示例/13就地失败可重试 + mock失败路径
...
- P-CRT-10 创作引导: 创作页新手引导卡(三步, 可收起) + Prompt 输入近场写法提示;
示例库按钮始终可用(未选模板回落通用示例 genericExample); 升级中空态补「一句话造游戏」引导+示例预告
- P-CRT-11 示例库: Create.vue 消费真实 TemplateRespVO.examplePrompt, 强化「示例库」语义;
mock TEMPLATES 对齐真实后端 U7 五品类(business-sim/narrative/puzzle/trpg/heritage)逐字段同源
- P-CRT-13 就地失败可重试: Task.vue 监听 failed/timed_out 终态就地 showToast(一次, taskId 幂等去重),
区分 status=4 超时与 status=3 失败文案; 终态失败为 CommonResult code:0 不触发拦截器网络错误 Toast(单 Toast 不重复);
mock 失败注入: Prompt 含 test_fail→终态 failed(llm_error), test_timeout→终态 timed_out(timeout), 重试不继承失败(失败→重试→成功)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 13:10:29 -07:00
lili
9b96433bc2
merge(plan002): Tier-1 广度后端 U1-U7 收口(本会话 U3/U5/U6/U7 + 评审整改 + U6 media裁定对齐 + 外部IO不入事务红线蒸馏;447 测试绿) → dev/2.0.0
2026-06-18 12:51:23 -07:00
zizi
41a9d1f52a
docs: U5(ReAct)移出 001 → P2 agent-native 轨(创始人定)—— 001=U1-U4 / 003 退路作 contingency / 归 agentic canonical
...
创始人 2026-06-18:延期任务(U5 ReAct)不再算 001。① 001 plan 删 U5 单元(=U1-U4,已合)+执行状态/需求追溯标移出;② U5 归 docs/agent-specs/agentic编排-SAA.md(P2/Phase-1.5 agent-native 轨,已含接法B);③ 003 退路:ReAct 从'主杠杆'降为 contingency(P2 轨),达标主杠杆改 = 升档+prompt/gatespec修(remaining语义/asset/c4),升档+修不达80%才升级ReAct。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 19:44:36 +00:00
lili
3e04456097
refactor(studio): U6 上传归属对齐创始人裁定——撤 studio /asset/upload(字节走共享 infra),studio 改 ref 登记;浏览/选用/assetContext + 评审整改不变
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 12:12:04 -07:00
lili
4ca5263eb0
docs(.agents,mvp): plan002 Tier-1 收口——外部IO不入事务红线泛化(U3/U6实证) + 进度总账回填(U3社区/U5admin/U6素材/U7模板)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 11:51:50 -07:00
lili
72eebdd5bc
merge(tier1): U7 R-TPL 品类玩法模板注册(5品类·constants-only·克隆generic代码生成契约)
2026-06-18 11:46:51 -07:00
lili
046c061d60
feat(aigc): U7 R-TPL 品类玩法模板注册(经营模拟/剧情互动/解谜闯关/TRPG/非遗科普·constants-only·克隆generic代码生成契约)
...
注册 5 品类玩法模板(business-sim/narrative/puzzle/trpg/heritage),替代单一 generic 状态:
- 3 处代码同源点:AigcTemplateConstants.SUPPORTED_TEMPLATE_IDS 加 5 ID(保留 generic);
PromptResourceLoader.TEMPLATE_RESOURCES 加 5 行(pom 通配自动复制资源,零 pom 改动);
AigcTaskServiceImpl.getTemplateList() 回填 5 TemplateRespVO(中文品类名/说明/示例 Prompt/封面占位)。
- 10 契约文件:每品类 1 prompt(克隆 generic-coder.md frontmatter 形态 + 品类引导正文,范式=agent 写
GameHostFactory 源码而非填 GameConfig)+ 1 schema(克隆 generic.schema.json 的 bundle 校验结构,
校验 bundleText/hasGlobalName/bundleRawBytes,draft 2020-12,非旧 config-fill)。
- GameConfigSchemaValidator 无需改(经 getAllTemplateSchemaTexts 自动消费 5 新 schema)。
- 不触 SAA/executor/dispatcher/graph 代码(plan001 领域),仅动模板注册面。
- 测试:PromptResourceLoaderTest 9 / GameConfigSchemaValidatorTest 11 / AigcTaskServiceImplTest 11 全绿;
启动自检 PromptResourceLoader ready + 校验器编译就绪含 5 新模板。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 11:45:39 -07:00
lili
bdf452d704
merge(tier1): U3 R-SOC 社区社交(评论/关注/排行ZSET/弹幕WS + 评审整改)
2026-06-18 11:31:32 -07:00
lili
03d59b1672
merge(tier1): U5 R-ADMIN admin运营(限曝光/导出/经营看板 + 跨模块只读-api)
2026-06-18 11:31:32 -07:00
lili
5c415cdb21
merge(tier1): U6 R-MAT 素材后端(实体六类/浏览/选用/上传 compose infra FileApi + codex整改)
2026-06-18 11:31:32 -07:00
lili
edc3436f7e
fix(community): U3 评审整改——P0 ZSET 移出事务(afterCommit) + P1 弹幕长度门/弹幕广播出事务/举报接缝去重 + P2 注释与公开读
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 11:30:07 -07:00
lili
a6f8f58d23
fix(studio): U6 codex 整改——P0 FileApi 移出事务 + P1 magic-byte类型校验/选用悲观锁/草稿态守卫
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 11:17:16 -07:00
lili
ac7ffe4a92
feat(telemetry): U5 经营看板聚合+导出 + 营收报表导出
...
经营看板(跨模块只读聚合,缺数据兜底不 500):
- 新端点 GET /admin-api/telemetry/dashboard(telemetry:dashboard:query)→ DashboardRespVO,聚合四指标:
DAU(本模块 game_telemetry_event 去重活跃身份:登录 user_id + 匿名 anon_id,取 statDateEnd 当日,
新增 TelemetryEventMapper.countActiveIdentities)+ GMV(trade-api)+ 生成量(aigc-api)+ 发布量(project-api)。
- DashboardServiceImpl 容错:每个数据源独立 try-catch + CommonResult 解包兜底——任一源不可用→该指标兜底 0
+ degraded/degradedSources 标记,整体不 500(看板可用性优先);正常空数据(data=null)不算降级。
- 导出 GET /admin-api/telemetry/dashboard/export-excel(EXPORT 审计)单行导出看板快照。
- telemetry-server 加 trade-api/aigc-api 依赖 + starter-excel。
营收报表导出:TradeAdminController 加 GET /admin-api/trade/report/revenue/export-excel
(trade:report:export + EXPORT 审计),抽 buildRevenueReport() 与 /report/revenue 共用口径避免漂移。
测试:DashboardServiceImplTest 6(全可用聚合/单源抛异常兜底/CommonResult非0兜底/data=null不降级/
全跨模块故障DAU仍可取/跨模块只读 never 写方法)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 11:06:57 -07:00
lili
f85ae6c434
feat(feed): U5 限曝光降权 + 精选池导出
...
限曝光(boost 的反向运营操作):
- Flyway V25.0.0 加 game_feed_rank.exposure_limit DECIMAL(10,4) NOT NULL DEFAULT 0(additive,
镜像 contracts/db-schemas);FeedRankDO 加 exposureLimit 字段。
- 排序口径升级为 sort_score = quality + boost - exposure_limit,统一收敛在 deriveSortScore()——
setFeatured/setExposureLimit/发布基线重发布/算分回灌四写入点共用,保证 boost/exposure_limit 两个
运营维度在任意写入路径都被保留(限曝光穿越 telemetry 算分回灌存活,已单测验证)。
- 两层效果:① 普通降权(0<x<9999)持久化进 sort_score 使游戏下沉(cursor 分页仍正确);
② 硬限曝光哨兵(>=9999)在 buildStream 出流处剔除(复用既有二次过滤续取机制,不动 status、可随时改回)。
- 新端点 POST /admin-api/feed/exposure-limit(复用 feed:featured:update 权限 + @ApiAccessLog UPDATE 审计),
门禁=仅已发布且已有排序行(不新建孤儿降权行);错误码段 1-103-005-***。
导出:GET /admin-api/feed/featured/export-excel(feed:featured:export + EXPORT 审计)经 ExcelUtils
导出精选/限曝光排序覆盖层运营字段;空数据写表头。feed-server 加 starter-excel 依赖。
测试:FeedServiceImplTest 25→35(限曝光门禁/降权扣减/硬限曝光出流剔除/普通降权不剔/回灌保留限曝光/导出列表空与非空)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 11:06:35 -07:00
lili
240a18fc33
feat(trade-api/aigc-api/project-api): U5 看板只读count方法(additive)
...
为 U5 经营看板补三个跨模块只读数据源 seam(均 additive,删除后各模块既有单测仍绿):
- trade-api:新增 TradeApi Feign 接口 + TradeRevenueReportDTO + trade-server TradeApiImpl
(@RestController @Primary 委托既有 IncomeService.sumGross/sumNet + WithdrawService.sumPaidAmount,
口径同 /admin-api/trade/report/revenue)→ 看板 GMV。
- aigc-api:AigcApi 加 countSucceededTasks(start,end)(impl 委托新增 AigcTaskMapper.countSucceededBetween:
status=succeeded 且 finish_time 落区间,零 DDL)→ 看板生成量。仅 additive:不动 SAA/executor/生成代码。
- project-api:ProjectApi 加 countPublished(start,end)(→ ProjectService.countPublished → 新增
ProjectMapper.countPublishedBetween:status=PUBLISHED 且 update_time 落区间,零 DDL)→ 看板发布量。
时间维度为 update_time 近似(项目表无独立 publish_time 列,已注释说明)。
跨模块只读,无任何写;自然日端点在各 impl 展开为全天 LocalDateTime 区间。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 11:05:56 -07:00
lili
3f35acb4d3
feat(community): U3 R-SOC 评论/关注/排行ZSET/弹幕WS
...
社区社交后端四子能力(game-module-community),克隆通知底座/feed互动幂等范式:
- 评论 Comments:CRUD + 举报转 compliance。删除按 userId 归属强校验(防越权删他人评论),
举报落本端举报态幂等 + 事务提交后 afterCommit 接缝(compliance 无受理 -api,留桩 OPEN ITEM)。
- 关注 Follow:active 软开关幂等切换(不删行,范本=feed FeedInteractLog),不能关注自己,
并发双插由 DB 唯一键 DuplicateKeyException CAS 收敛;粉丝数/关注数 countActive。
- 排行 Ranking:Redis ZSET + ZSET↔DB 一致性窗口。DB=真相、ZSET=缓存索引:
写穿透双写(DB 原子累加 + ZSET incrementScore)、ZSET 缺失/启动从 DB 回填重建、最终一致;
维度白名单 RankDimensionEnum(game_hot/creator_hot)。
- 弹幕 Danmaku:WebSocket 单机最小实(LocalWebSocketMessageSender),自维护房间 gameId→sessionId
注册表做房间维度广播(框架仅按用户维度推送),断连懒清理;多实例需切 sender-type=redis(MQ future-state 未部署)。
契约/库表:
- Flyway V23.0.0(U3 独占 V23.x):game_community_comment/follow/rank/danmaku 四表 +
幂等唯一键(follow uk(user_id,target_user_id,deleted,tenant_id)、rank uk(dimension,target_id,...)),
同步 huijing-server/db/migration + contracts/db-schemas。
- community.yaml additive 加 8 个 app 端点 + 5 个 schema(既有冻结)。
- 错误码段 1-107-004 评论 / 005 关注 / 006 排行 / 007 弹幕。
验证:mvn -pl game-module-community/game-module-community-server -am test -o 全绿
(57 tests:新增 U3 35 + 既有 22;CommentService 9 / FollowService 8 / RankService 8 / Danmaku 10)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 11:01:24 -07:00
lili
09ced58930
feat(studio): U6 R-MAT 素材实体/浏览/选用/上传(compose infra FileApi)
...
R-MAT 创作者私有素材库(六类 sprite/character/effect/scene/ui/music,冻结同枚举):
- StudioMaterialDO + game_material 表(V24.0.0,归属 creator_user_id,idx_owner_cat)
- 3 端点 /app-api/studio/asset/{upload,browse,select}(studio 领域端点,需登录用户)
- upload:六类校验 + 大小≤10MB + 每类目 MIME 白名单 → composes huijing-module-infra
FileApi.createFile 存字节 → provider 包装 ref → 落库 → 返回冻结 StudioAssetContextItem
- browse:owner-isolated 分页(强制 eq creator_user_id),可选 category 过滤
- select-into-draft:把本人素材 ref 写入草稿会话 assetContext(JsonUtils 序列化,按 ref 去重合并)
- MaterialProvider SPI + 工厂 + mmx-cli mock(graceful degrade,仿 AdProviderFactory)
- 错误码段 1-112-005-***(七个);studio.yaml 加 3 端点 + schemas(additive)
验证:mvn -pl game-module-studio-server,-api -am test 全绿
(StudioMaterialServiceImplTest 17/17,studio 模块 61/61)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 10:54:56 -07:00
zizi
c290fd1be3
docs(plan): 001 评审 follow-up + media 裁定——asset孤儿→002-U11 · remaining语义/assertAfterPlay/9-9/worker→003-U1 · 上传归属=media
...
我的 001-U1~U4 codex+opus 评审(迟到于另一 session 的 FIX-FIRST 合并,但有料)落账:① 002-U6 上传端点=共享 media(创始人裁);② 002-U11 补 gamedef 路 asset 孤儿(GAMEDEF_KEYS strip assets + asset 节点 validate 后 merge=死代码,必修);③ 003-U1 评审更新:gamedef 已绕开命门(c1 对目标路 moot)→ 新焦点 remaining=alive.length 语义错位/assertAfterPlay 词汇门禁(c4)/9-9=金样非模型过门/worker prompt 切默认前补 GAMEDEF_SYSTEM。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 17:09:01 +00:00
zizi
c499d9c181
docs(总账): §7.1 Tier-0 标现状——SAA gameDefinition U1-U4 已集成 dev/2.0.0 + U5 延期 + 下一关 cutover 门
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 16:55:28 +00:00
zizi
4d48c0b497
docs(skills): drive-remote-claude-tmux 补 §7 实战限制——直驱活会话撞两墙(guard拦注入/模态吃键),记行得通三条路
...
本会话直驱 game 实证:auto-mode classifier 在执行层拦活会话 send-keys(口头授权不够·要设置层 Bash 权限规则)+ 'How is Claude' 反馈模态截获所有非选项键(Escape/C-u/BSpace 全失效)。行得通=创始人粘路径(本会话成功)/专用全新会话/直驱需权限规则+先关模态。铁律=完成判据靠 git push 非读屏。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 16:53:55 +00:00
zizi
e378f3c662
contract(source-project): kind 枚举补 clickable(6c6g 评审待办#1·additive)
...
clickable = U1 引入的声明式点击基元;原靠 additionalProperties:true 宽松放行(功能可用),此补正把它登记为一等 kind。additionalProperties 维持不变(收紧是独立设计决策,本次只做 additive)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 16:47:16 +00:00
zizi
39c16630ed
merge(saa): 真结构化生成地基 feat→dev/2.0.0——U1-U4(运行时约定/build-from-source/真产gameDefinition/多模型回退)+6c6g评审整改(P1 K_STATUS清零/P2 fallback注释);flag默认factory灰度opt-in,生产零行为变更
2026-06-18 16:46:19 +00:00
zizi
8ccb5c7c7e
docs: 内网凭据档(NEWAPI_KEY 等)+ AGENTS §6 条款9——内网阶段 keys/decisions 进文档、禁 env var(创始人定)
...
创始人 2026-06-18:内网阶段所有决策+密钥进项目文档,不靠环境变量(内网 key 允许入仓)。新建 docs/内网凭据与端点.md 作密钥/端点单一事实源(NEWAPI_KEY=sk-84GA…/base http://100.64.0.8:3000/四机/Gitea );AGENTS §6 加条款9立为硬约束——需 key 查该档,别再反复找创始人要(已给几十次)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 16:33:22 +00:00
lili
6a9bd4d349
fix(saa): 6c6g 评审整改——P1 K_STATUS 清零 + P2 stage2 fallback 注释
...
P1(真修):renderNode 起手 out.put(K_STATUS,"") 清 stale 状态——checkpoint/saver 跨 run 复用 state 时,
上轮 giveup 写的 K_STATUS="failed" 会残留,下次 modify 进来 modifyRouter 首检 K_STATUS 误判失败、
把 gamedef 确定性点改错误路由到 END。
P2(语义·仅注释):generateNode fallback 处加注,说明 stage2 升档后回退档仍取廉价档(MiniMax-M3)是
「可用性优先于本次升档边际质量」的有意取舍(强档超时也要出包),非疏漏。
验证:mvn -Dtest=SaaStudioGraphTopologyTest,SaaStudioNodesRegressionTest → Topology 30/30 + Regression 8/8 全绿。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 09:20:49 -07:00