zizi
|
ce9085df6b
|
feat(runner-v2): P3 3a+3b-A 派发面 plumbing——便宜模型生成游戏经后端 dispatch 自动入 feed 真玩(零回归验)
3a canary:pong 真 bundle→buildGamePackage→发布→feed 引擎真渲真玩(gameId 9301,brick-2 真值通路 mvn 13/13 验)。3b-A 派发面:执行器对 generic dispatch 外置 worker→worker 回调→buildGamePackage→feed,stub worker e2e 实证(任务129→版本93111→gameId 9302 引擎真渲 CDP 11/11)。
改动:① 点亮 AigcTemplateConstants(List.of(generic))+PromptResourceLoader ② 派发面 AigcGenerateExecutor(dispatchGeneric 分支:仅 dispatchTemplateId=generic 走、其余进程内 LLM 旧路逐行不变=零回归)+WorkerDispatchClient+AigcExecutorProperties/Configuration ③ 内网回调 AdminAigcTaskController @PermitAll /dify/callback-internal(注入系统身份解 updater-null=部署窗口#3 同根因复发,镜像 executeWithSystemIdentity)④ stub worker scripts/wg1_stub_worker.py + 灌库/发布桩 p3_*/p3b_* + config worker-url ⑤ 单测 +3 派发面用例(dispatch/失败/零回归 clicker 不 dispatch)⑥ 蒸馏 ai-generation-pipeline.md §⓪′ 派发面范式+2 红线。
零回归硬约束:AigcGenerateExecutorTest 20/0/0、AigcTaskServiceImplTest 9/0/0,clicker 仍进程内(dispatchSender 零交互)。主笔亲核 gating diff(:342-344 仅 generic)+肉眼复核 feed 真玩截图。🔴 安全红线(留 3b-B):/dify/callback-internal 跳 RBAC 仅恃内网兜底,真 worker/外部接入前必补 HMAC/mTLS 服务间签名。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 14:19:25 +00:00 |
|
zizi
|
737e6d5f5a
|
feat(wave4): community通知底座+biz轻量lead form 双模块建成(HJ-WAVE4-EXEC-001·代码就绪待工程门)
§0资源预占(serial·opus)+community(C1-C12)‖biz(B1-B9)三相Workflow编排,主控静态验证门已过(上游三挂点surgical+Boolean blocker已解+边界干净)。本机禁编译,工程门留mini。
community(5 P0·通知底座):
- 站内信(投递幂等/已读归属校验/未读数)+等级引擎(published_count原子自增UPDATE+里程碑uk幂等插reward)+CommunityNotifyApi@Primary本地实现
- 3上游同进程notify挂点(均事务提交后+try-catch吞异常仅error log):
aigc生成完成(回查task终态SUCCEEDED&&versionId!=null,非result==TRUE)/project审核结果1·2+发布计数/trade收益首次入账
- R3系统身份写防护:CommunityNotifyApiImpl入口LoginUser(id=0)+finally clearContext,防定时任务线程updater NOT NULL 500
biz(6 P0·轻量lead form):
- 询单/报价/进度/验收四表+单线性五态状态机(canTransit仅相邻单跳)+demo可预览负路径降级(注入RuntimePackageApi,失败不透传500)
- 7 app端点(getLoginUserId归属隔离)+7 admin端点(@PreAuthorize biz:*);BizTemplateService返clicker/merge/idle/tycoon 4可玩模板
- 权限seed=独立sql/biz_menu.sql(不进V13保两副本字节一致)
§0地基: Flyway V12(community三表)/V13(biz四表)各两副本md5一致+错误码段1_107/1_110+community.yaml/biz.yaml契约+root pom两module+yudao-server pom两依赖
已知留债(诚实登记·待工程门/staging实测兜底):
- mini工程门(mvn编译/单测/Flyway migrate/@Primary装配/Swagger)未跑——'骨架编译过≠可验收'
- 系统身份写雷+DO↔BIT映射单测mock测不到,须staging两链路实测
- 上游既有单测(trade/aigc)未mock新@Resource会打被吞NPE日志(断言仍绿)
- P-INC-01尽力计数at-most-once(评审版已认非缺陷)/UNLIST第二路径不通知(非P0)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-11 11:28:01 +00:00 |
|
zizi
|
f0c4e810cb
|
fix(passport): e2e双P0修复——匿名写路径审计列兜底×5写点 + 手机号/验证码明文日志两面合围
- P0-1: @PermitAll匿名无登录态→DefaultDBFieldHandler不填creator/updater撞NOT NULL(V11漏继承审计列,与M-b执行器updater雷同根)。修=Service写点显式兜底"0"(注册/会话开局/会话收尾UPDATE形态/遥测batch+beacon共点/ad计费台账),归属维度user_id/anon_id/creator_user_id不受影响
- P0-2: ApiAccessLogInterceptor非prod无条件打印原始请求体(不读@ApiAccessLog注解,framework不可改)→staging抬该logger至WARN关控制台面+三端点sanitizeKeys脱敏持久化面;SmsSendConsumer脱敏mobile、code不打印
- 单测: 4模块匿名落库creator='0'断言+登录态不强置负向对照
- e2e第一轮判定: E3/E8/E12/UI过门;E2/E4/E6/E7/E1/E13被P0-1阻断待二轮重跑
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-10 10:31:42 +00:00 |
|
zizi
|
b0850a2ad9
|
feat(passport): 鉴权建设波——V11契约+system passport子包+14端点@PermitAll+白名单挂点+剔除桩+前端登录守卫
- 契约先行: V11.0.0 双落点(game_player/game_invite_code/runtime_session匿名兼容ALTER) + passport.yaml(4 app+4 admin) + events登记user_login
- B1 system侧: passport独立子包(fork隔离), 验证码+邀请码旁路登录注册一体, OAuth2 MEMBER token(client=default已核), 错误码1_002_090/091远段, PlayerApi @Primary本地化(mock豁免裁决=无行+mockEnable放行), R6限频(IP 10次/h+Redis日/时双闸), 25单测
- B2 存量: @PermitAll恰好14端点(主agent grep复核, 不放行名单零触碰), 匿名session(player_user_id可空+anon_id), 白名单5挂点(studio/aigc/project), ad计费限频, telemetry剔除桩(照落库不进聚合+Redis降级放行), EnvelopeReqVO文案回写
- F1 前端: 登录页两Tab+占位协议, isRealLogin守卫(isLogin恒真不可用), 401统一拦截, 互动转正onInteract单入口gating, user_login遥测双带; test1批跑路径原样保留(主agent复核)
- 三面对抗核验全pass零blocker; 构建门待mini-desktop(本机禁构建铁律)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-10 09:40:10 +00:00 |
|
zizi
|
054564d334
|
feat(aigc): M-b 薄轮询生成执行器——真实用户 submitGenerate 链路贯通件(C5)
按 HJ-AGENT-LOOP-EXEC-002(已审定)实施:
- AigcGenerateExecutor: @Scheduled 薄轮询(条件装配,Bean 注册铁律:零组件扫描)
+ DB CAS 0→1 认领防重四层 + watchdog 收尸(阈值不等式配置校验 stale×60>budget+273)
- 生成流水: classpath 契约快照渲染 Registry 策划 prompt(语义对拍 prompts.py)
→ JDK HttpClient 走 spike 配方调 LLM(90s/重试×2/json_object)
→ networknt 按 clicker.schema.json 同源校验(含 1 次 findings 重出)
→ 构造 DifyCallbackReqVO 进程内调 DifyCallbackService(唯一写入路径,不绕过不复制三表)
- §5.4 失败映射决断表 M1-M9 全分支(no_template_match/config_invalid/llm_error/timeout)
- key 缺失/资源缺失自禁用不崩 app(告警节流); T6 模板列表最小实做(1 条硬编码 clicker)
- 27 个新用例(执行器14+渲染器7+校验器6), aigc-server 47 测全绿+聚合编译绿
(mini-desktop 双隔离克隆独立复跑, md5 对账)
- 部署默认 aigc.executor.enabled=false, 灰度开关+回滚=关开关
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-10 02:28:19 +00:00 |
|
zizi
|
e670eaf476
|
feat(B1): 黄金闭环契约先行基座 — 接口/DTO/V10/契约 yaml/错误码/pom
contract-first 基座(B1 step①,编译验证待 mini-desktop,与 step② 合并后编译):
- feed-api: FeedApi.upsertRank + FeedRankUpsertReqDTO(UpsertMode 分流) + ApiConstants
- runtime-api: RuntimePackageApi.publish + ApiConstants
- project-api: ProjectVersionApi.createForPackage + DTO + 错误码 PROJECT_PUBLISH_PACKAGE_NOT_READY
- V10: game_runtime_package.package_json + game_telemetry_event.event_id/uk_event_id(替换 uk_dedup);仅 contracts 源 + yudao-server 单一执行副本(守门②)
- 契约 yaml: events/telemetry 信封加 eventId + runtime /manifest 端点(原样 JSON 不包 CommonResult)
- pom: project-server→feed/runtime-api、telemetry-server→feed-api(守门④无环已核)
主 agent 独立核验: V10 双副本一致 / uk_dedup 索引名 / 错误码无碰撞 / 守门①②④ / telemetry x-mq 幂等口径同步改 eventId 避免契约自相矛盾
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-09 13:50: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
|
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
|
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 |
|