lili
|
e8f7dc8347
|
feat(worker): WU2 §3.7 worker 取 job.userToken + §3.9 额度耗尽/凭据失效分辨
per-user 额度按用户扣的最后一环:三 worker 入口从「读全局 env NEWAPI_KEY」改「优先
job.userToken、缺失回落全局 env key(WARN 脱敏)」;新失败因 quota_exhausted 干净失败。
§3.7 F(取 job token,默认关时字节不变):
- cheap_service_driver._resolve_key(user_token) 优先 per-user token、缺失回落 env+WARN;
drive_cheap_generation 从 job.userToken 取、透传给凭据体;token 日志脱敏(前后各 4 位)。
- worker_service 整 job(含 userToken)透传给 driver;do_POST 记 userToken 存否(脱敏)。
- wg1 _client.get_api_key/get_client/chat 支持 user_token override、回落 env(WARN 一进程一次)。
§3.9(分辨两类失效,one-api 惯例初值,确切 message 阶段2 待验):
- result_out 新增 quota_exhausted 入枚举 + _map_failure_reason 认 summary.failureReason +
classify_newapi_failure_reason/newapi_error_status_text(402/403→quota,401→llm_error 可重试)。
- cheap_service_app collector 崩溃路 best-effort 分辨 402/403→写 sidecar failureReason,
driver→result_out 落 quota_exhausted;凭据失效/其他维持 llm_error,纯旁路不咬生成。
- wg1 _client.chat 额度耗尽抛 NewapiQuotaExhaustedError(不重试);service.handle_job 映射
quota_exhausted。注:两 worker 主生成经 AgentScope 模型封装调网关,402 埋框架内,主路
额度耗尽分辨待阶段2 拦模型封装;本次覆盖直连 _client.chat 路 + cheap 崩溃路分辨。
自证:test_result_out 25/25、test_worker_service 17/17(stdlib 直跑);driver/wg1 token 与
分辨逻辑 standalone 断言全过;八文件 py_compile 绿。test_cheap_service_driver 需 pytest
(本机未装),已同步桩签名待阶段2 e2e 真验(per-user token 调网关/used_quota 按用户增/耗尽落 quota_exhausted)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 12:44:08 -07:00 |
|
lili
|
8ea972340e
|
chore: 工作树散落活账整理提交(多工作线)
- .gitignore:忽略 AgentScope 2.0.2 源码克隆(.claude/skills/agentscope-skill/agentscope/,本机开发直读参考、~17MB、含自带 .git、非本仓产物、可重克隆)
- .claude/skills/agentscope-skill/SKILL.md:agentscope skill 更新
- contracts/prompts/04-config/cheap-system.md:便宜档 system prompt 加「核心操作非无脑」第9条好玩自检(否决项:⑨不命中则①-⑧全中也只是有元素的无趣游戏)+ 决策层与九门自动验收解耦(基础分保盲驱动器过门 / 技巧分给真人爽感)
- game-runtime/evidence/integration/evidence.json:集成 evidence 更新
- game-studio/public/mock-manifests/:U5+U2 真 UI 走查 runbook + walk 脚本 + mock manifest
- wg1/gen-worker/results/gamedef-quickcheck.json:bake-off 结果(同既有 27 tracked 同类)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-01 19:00:42 -07:00 |
|
lili
|
b31cc37a4f
|
chore(brand): 造梦AI→绘境AI 全活层品牌不变量收口(441 文件)
把活层退役旧品牌「造梦AI」统一改为现行「绘境AI」,brand-invariant 门红线归零。构成:
~412 Java @author 署名 + game-studio/index.html 浏览器标题 + game-runtime/package.json 描述
+ game-admin/.env VITE_APP_TITLE 运营后台标题 + contracts API title/@Schema 用户协议示例/events 描述
+ docs-design mockup 品牌位 + 各模块注释。全是注释/显示/元数据,零逻辑改动。
zaomeng 拼音持久化标识符按 2026-06-24 评审 GR-05 不动(347 处保留)。
白名单(docs/ip 法律备案 / _archive / 带日期留痕)与 AGENTS.md 门定义自身不动。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-25 08:29:11 -07:00 |
|
lili
|
d5d3d09b0f
|
fix(gen-qc): cutover 早读三修——并发化 + assert 进展过滤 + M3 thinking 关闭/宽松解析
1) 并发化(gamedef_quickcheck): ThreadPoolExecutor 跨局并行,每局独立 port/cdpPort(4400+i/9300+i)
+ flush 日志;局内 repair 链恒串行→聚合过门率与串行等价。
2) assert 进展过滤(SaaPrompts.extractGatespec 产线 + quickcheck 镜像): 有进展断言时只留进展断言
(increased/decreased/changed/比较),丢终局态断言(phase/result==gameover/win、误编码 score=="gameover")
——bot 限时常到不了终局但 score 已涨=真有进展(tictactoe 0→9/saolei 0→12 假阴修正);无进展断言则全留
(规避类 result==win 为唯一信号)。终局完成度另由 expectLatch 把关。
3) M3 协议修(_client._extra_body + extract_json_obj): MiniMax-M3 OpenAI 端点默认 thinking=adaptive、
<think> 内联进 content→复杂局飙 token→max_tokens 截断丢 JSON(假"parse 失败")。官方关法 thinking=
{type:disabled}(按 model gate MiniMax);严格 json.loads 失败回退 json_repair(镜像后端 looseParse)+
<think> 剥离兜底。
实证: M3 parse 6/13→2/13、过门 2→3/13,与 deepseek(4/13)同档=M3 不弱(旧 2/13 系截断伪象)。
SaaPrompts 经 mvn 反应堆 BUILD SUCCESS;Python 经 py_compile+单测+真跑。快走查口径;权威 cutover≥60% 在 mini-desktop。
产线 follow-up(6c6g): Java M3 fallback 路同款 thinking 截断潜伏 bug,须补 thinking:disabled。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-19 03:04:23 -07:00 |
|
lili
|
80aaa116ab
|
feat(game-runtime): clickable 声明式点击基元(harness 探针证 9/9)+ tap-targets prompt 迭代——治便宜模型 tap-handler 顽疾
plan 2026-06-18-001 U3 迭代3-4轮(据快走查根因)。
根因(全budget+stage2 都不解,3轮prompt不解):便宜/强模型均**顽固把 tap 命中门控在分离 state 实体/计时器/turn 上**
→ 盲点驱动点不中 → tap-targets 类系统性 E_live/F_wiring/G_input/H 挂。即「让模型写 tap-handler」这条路便宜模型走不通。
引擎线根治(gd-runtime.js):新增 **clickable 声明式基元** `{kind:'clickable',score?,mark?:{shape,color,r},hitW?,hitH?}`——
运行时内置:本帧点中带此组件且 !occupied 的实体 → 自动翻 occupied+spawn 标记(可见)+计分+fx。**离散点击类声明它即可、免写 handler**。
验证:gd-runtime 单测 16(含 clickable 派发) + 全套 60/60;**手写纯声明式(behaviors:[])clickable tap-targets gamedef 过 harness 9/9**(E_live distinct=8/F_wiring/G_input/H 全过)——证基元+管线正确。
GAMEDEF_SYSTEM:教 clickable(替「写 tap-handler」)+ 参照2 改纯声明式 clickable few-shot(经探针证 9/9)。
runtime-api-2d.md:补 clickable 组件文档。
**关键测量定论(终结本机迭代)**:便宜模型 tap-targets 单管线生成**高方差**(同 brief 一轮 8/9 一轮 5/9)——
N=1~2 小样 lili-mac 早读**信噪比不足**,无法可靠优化「模型产出过门率」(我前几轮在追噪声)。
**管线/运行时/约定已证正确(手写金样两品类均 9/9)+ 引擎补了 clickable 基元**;**模型产出 cutover 率是统计量**,
需大样+全 repair 预算 → **authoritative=mini-desktop SaaFullGraphE2eTest -Dsaa.e2e=1**(多 brief+5+3 repair+stage2)。
快走查工具:加 stage2 救场升档(QC_STAGE*)+ gamedef assert 字段 coerce 到 score(治 design 造 moves/totalRound 等取证读不到字段)。
设计决策待 6c6g:design↔gamedef 的 assertAfterPlay 字段词汇契约(design 应约束到 gamedef 暴露集 score/remaining,
或运行时暴露更多)——触共享 DESIGN_SYSTEM。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-18 06:13:18 -07:00 |
|
lili
|
c24b7fb4d2
|
fix(saa): GAMEDEF_SYSTEM 加 tap-targets few-shot(harness 探针证 9/9 正确)+ 快走查 repair 可配
plan 2026-06-18-001 U3 迭代2轮:据 cutover 早读「tap-targets 类系统性 5/9(E_live/F_wiring)」根因诊断+整改。
根因决断(harness 受控探针,无 LLM):把**手写 known-correct tap-targets gameDefinition**直接过全 harness
→ **9/9 真过**(E_live distinct=8/8、F_wiring 12 引擎调用)。**故运行时+装配器+tap-targets driver+约定全正确**;
whack/tictactoe 失败 = **便宜模型生成质量**(tap-handling 写错:点击未判中→无 spawn/fx/计分→画面恒定),非基建/集成 bug。
GAMEDEF_SYSTEM 加 tap-targets few-shot(SaaPrompts.java):tile 网格每格 tags:["target"]+idx+occupied,
justTapped→pointer overlap 判中→occupied 翻+spawn 标记(可见)+addScore+fx;win=score>=N。
few-shot 本身经探针证 9/9 正确(教对 idiom);实测使模型确给 target 打标(gd-whack 9/10 tagged)。
残留 tap-handling 精度=R3 便宜模型质量,靠 **repair 回环(真图 5+3 轮,本机只跑 3)+ stage2 升档(强档)** 解。
快走查:MAX_RETRIES 改 QC_MAX_RETRIES 环境可配(真图 maxRepairs=5,本机早读取 3 平衡时延)。
结论:**gamedef 路两大品类(realtime/physics + tap-targets)路径均证正确**;首攻便宜模型质量随品类波动,
cutover 率 = repair 预算 + 模型档 的函数(二者在 mini-desktop 全图满配)。≥60% authoritative=mini-desktop。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-18 02:42:41 -07:00 |
|
lili
|
099fb8106d
|
test(wg1): gamedef 快走查加 repair 回环——证 repair 抬升率(runner 7/9→9/9 真过)
plan 2026-06-18-001 U3 capstone:快走查加 repair 回环(mirror 真图:验证/真玩失败→verdict 回喂→重生成,≤2 重试),
证 ≥60% cutover 的真机制(repair)在本机可抬首攻失败到过门。
with-repair 早读(design+gamedef 全图镜像,deepseek-v4-flash):
- gd-runner ✅ 9/9 真过(att=3)——首攻 7/9,repair 回喂后重生成补齐 → 满九门。**repair 回环端到端证实有效。**
- gd-breakout 8/9(att=3)——H_progress(砖 remaining 未降):paddle-intercept 接球清砖精度,3 轮便宜模型 repair 未完全攻克
(R3「九门是机制地板」难类;仍真渲染/构建/玩、挡板接指针)。
- 1/2 小样硬类:与 ≥60%(全图+更大样, authoritative=mini-desktop)目标一致——runner 类过、paddle 精度类待更多 repair/更强档。
总:gamedef 路本机已证 ①端到端可玩(pong/runner 满门)②repair 回环真抬率。≥60% cutover 量化门 authoritative=
mini-desktop SaaFullGraphE2eTest -Dsaa.e2e=1(全图+repair+大样)。密钥经 _client 读 .env 不入码;throwaway 已清。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-18 01:18:33 -07:00 |
|
lili
|
da4801828d
|
fix(saa): GAMEDEF_SYSTEM driver 对齐加固 + 快走查升级全图镜像(design+gamedef)——据 U3 早读根因
plan 2026-06-18-001 U3 迭代1轮:据 lili-mac gamedef 快走查根因诊断,加固 GAMEDEF_SYSTEM 与九门 driver 的对齐。
快走查根因(design+gamedef 全图镜像, deepseek-v4-flash 单发无 repair):
- 路径端到端真成立:声明式 gameDefinition→装配→构建→真九门;pong 9/9(无 design 简版)、breakout 8/9。
- 单发首攻失败模式根因:① I_control——挡板命名变体(paddlePlayer≠gatespec 的 paddle)/ 只接键盘不接指针(driver 靠点指针位驱动)
/ 控制体 clamp 范围窄于 driver 边缘 tapX(340);② H_progress——设计稿 assertAfterPlay 引用取证读不到的自定义字段(totalRound)。
GAMEDEF_SYSTEM 加固(SaaPrompts.java,gamedef 路专属,不动现 SYSTEM):
- 命名逐字对齐 gatespec(挡板=paddle、球=ball,别用变体——读到 undefined=挂)。
- 可控体必须响应指针(`if(rt.input.pointer.down) paddle.x=rt.input.pointer.x`——driver 靠点指针位驱动,只接键盘=I_control 挂)。
- 进展落在可取证字段(score/remaining/实体位置;assertAfterPlay 别用读不到的自定义字段)。
验证:再跑 breakout 模型确按指令接指针控制(`if(pointer.down) paddle.x 追 pointer`)+ I_control tapX:50 已过;
残留 tapX:340 未过=首攻 clamp 范围精度,属**repair 回环**(已建:验收失败→verdict 回喂→重生成)territory。
快走查工具升级(gamedef_quickcheck.py):加 design 步(抽 DESIGN_SYSTEM+复刻 extractGatespec)→ 全图镜像
(classify 略/design→gamedef→装配→九门),getter truer 早读;prompt 抽自 SaaPrompts.java drift-free。
定位:单发快走查=首攻质量早读(非 cutover 门)。**≥60% cutover 门=全图含 repair 回环, authoritative=mini-desktop
SaaFullGraphE2eTest -Dsaa.e2e=1**(单发 0/6≠失败:repair 回环抬升率,本机不跑 repap 多轮)。密钥经 _client 读 .env 不入码。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-18 00:58:01 -07:00 |
|
lili
|
d8df5f27ec
|
test(wg1): gamedef 路 lili-mac 快走查驱动 + U3 cutover 门早读(pong 9/9 真过)
plan 2026-06-18-001 U3 验证:run.py 的 gamedef 版——generate(GAMEDEF_SYSTEM,从 SaaPrompts.java 抽取 drift-free)
→ build-from-source.mjs(校验 schema/引用/静态扫描+装配)→ scaffold/build/play 九门(harness 复用零改)。
早读(deepseek-v4-flash 便宜档,lili-mac 小样):
- gd-pong 9/9 真过门(声明式 gameDefinition→可玩→满九门,范式端到端证实)。
- gd-runner/whack 8/9、gd-flappy 7/9,共性缺口 G_input——本快走查跳了 design 步、多数 brief 的 play_spec
无 controlCheck/driver(gatespec),故 G_input 无控制驱动可施=快走查 harness 工件,非 gamedef 生成缺陷
(游戏真渲染/真构建/输入真接线:runner justTapped→jump 在;pong 满过)。
- authoritative ≥60% cutover 门(全图含 design 产 gatespec) = mini-desktop SaaFullGraphE2eTest -Dsaa.e2e=1。
密钥经 _client 读 .env(gitignored)、绝不入码;throwaway 生成游戏(gd-*)已清,不入仓。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-18 00:25:13 -07:00 |
|
zizi
|
069ae73e97
|
feat(aigc/worker): U3 trace 扩展键 + U4 缓存命中落账(B5/B9)
6c6g 后端 Tier0 计划 U3+U4(docs/plans/2026-06-17-001-...)。execution §5.8 trace+cost 落值。
- U3 extractTraceQuietly(Java)+ _extract_trace(worker)additive 抽 modelTier/escalationEvents/giveupDumpPath;
仅真升档态(stage2/escalationEvents 非空)落 modelTier + 形态校验(非空 str/非空 list)→ 字节兼容(无扩展键键集与扩前一致)、Java/Python 两路同口径
- U4 cost.py 缓存命中折¥:两套字段取 max(DeepSeek prompt_cache_hit_tokens / MiniMax prompt_tokens_details.cached_tokens)
+ cache_ratio 折真实 quota;worker usage 捕获(_safe_int 兜脏不抛);pricing 不可达 tokens-only+costFallback 标记;不阻断仅观测
- 诚实边界:SAA Java 路无 cache 字段源→省略不伪造(follow-up);AgentScope 丢 DeepSeek 顶层字段(待真跑对账);worker 生产路完整落账
验证:mini-desktop Java 12+(SaaGraphDispatcherTraceTest)+ Python 73(test_cost 56/wg1_groupb 17)全绿;
codex 评审 NO-MERGE→2 P0(字节兼容/usage 阻断)+2 P1(pricing 口径/两路一致)全修后绿。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-17 22:26:27 +00:00 |
|
zizi
|
96081a574c
|
feat(aigc): W-G1 组B 落库组——9d trace 账本 + D11 就绪评分 + D9 反同质化(全非阻断)
把 worker 已产出、当前在边界被丢弃的富生成轨迹(9d)接过来落库,补"放了能管/追溯/不雷同"
三件 v0 能力,全部 best-effort 非阻断(口号"放了能管,非放了能拦")。三件全关=现行字节零变。
契约先行:
- contracts/api-schemas/aigc.yaml DifyCallbackReqVO 加 trace(object,nullable) additive 字段;
顺带补 engineBundle 漂移对齐(Java 已加 yaml 漏)——守契约先行收口。
9d trace 账本(公共底座):
- Flyway V16.0.0:game_aigc_task 加 trace_json(JSON NULL)+readiness_score(SMALLINT NULL),
additive 可空 AFTER failure_reason(接 V15 组A level,勿撞号);AigcTaskDO 加两映射字段。
- worker service.py:_extract_trace 从 run_studio result 抽 9d 子集(必填子集7项+可选段,camelCase),
build_callback_payload 加 result 参可携 trace,handle_job 把 result 提到函数作用域传入(成败路都抽)。
- 后端 DifyCallbackTxService.persistTraceQuietly:succeeded 步骤⑦后 + failed markTaskFailed 后
best-effort 落 trace_json;全程 try-catch 吞异常,绝不回滚三表写链/绝不阻断 PUBLISHED。
D11 就绪评分:
- 新建 ReadinessScorer:读 trace 算 0-100(playability 0.50/firstPlay 0.25/stability 0.15/efficiency 0.10,
权重占位待校准;缺字段取中性 0.5,纯函数无副作用);算分独立 try-catch,失败仅 readiness 降级 NULL、
不拖累 trace 落库(§7)。AigcTaskRespVO 加 readinessScore(BeanUtils 平铺自动映射)→ /task/page 零改透出。
D9 反同质化:
- 新建 worker agent_loop/dedup.py:移植 agent-loop-v1 run_batch.py:96 _norm_text(归一≈复制)
+ ledger.py:50 mint_design_id 思路(compute_sig 精确撞重键);重接 _dedup_gate 逻辑——解绑实例状态
改 FS jsonl 登记表、engine 路取字段(title=brief 派生/theme=generic 占位)、落库改塞 trace.similarity。
- studio.py result 注入 similarity(AIGC_DEDUP_ENABLED 开关门控);撞重只 log.warn+dupHit=true,
照常回调入 feed(v0 只观测避免误杀,九门已是硬地板)。
回滚:三件各一开关(aigc.trace.enabled 默认 false/D11 随 trace/AIGC_DEDUP_ENABLED),全关=逐字一致;
列 additive 可空,真回滚写 V17 drop(不改 V16,遵 V2.0.0 头注铁律)。不触公平性铁律(只读 gatespec)。
验证(mini-desktop /root/build-lane-a 隔离目录):
- Java:aigc-server 全模块 clean test 111/111 通过(0 fail/0 err/4 skip,BUILD SUCCESS);
含新 DifyCallbackTxTraceTest 5/5(trace 落库/失败不阻断/D11 算分 pass-vs-fail/算分失败不阻断/RespVO 可见)
+ 既有 DifyCallbackServiceImplTest 13/13 零回归(坐实 traceEnabled=false 现行行为字节一致)。
- worker:wg1_groupb_test.py 17/17(9d trace 必填子集完整率 5/5=100% + D9 撞重/归一/不撞/坏行容错);
真 venv 验 dedup/service/studio import 链健康 + result=None additive 兼容。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-16 18:04:02 +00:00 |
|
zizi
|
a2cbabe647
|
fix(gen): tap 类 design-agent 自产 driver——规则③家族二分补 tap-targets,闭 driver:none 临门一脚(Python+SAA 逐字同改)
DESIGN_SYSTEM 规则③旧「纯点击类用 driver:none」一刀切 = moat「一句话现生成」对 tap 族不可靠真因(盲打打不中离散目标→H_progress 卡)。改家族二分:
- 离散点击目标类(井字棋/打地鼠/扫雷)→ 必产 tap-targets + 导出 targets[{x,y,idx,occupied}];规避/推理族 +safeOnly +导出 safe(仅 _forensicsView 测试可见不渲染)+断言 result==win;安全放置族断言 progress↑
- 技巧挡板类→ 仍 paddle-intercept(ball.x,绝不 ball.y);其余→ none
roles.py(Python worker)与 SaaPrompts.java(SAA backend)规则段逐字一致(1076 chars,公平性铁律),SAA test-compile 绿。
验证(Python 派发面,play_spec={} 逼自产,stage1=deepseek-v4-flash):
- tictactoe(放置族)整链 9/9 全绿一次过=design 自产 tap-targets→factory 自产 targets→九门含 H_progress+latch 达终态(铁证)
- saolei(避负族)driver 自产正确 3/4,但九门未翻绿=便宜模型扫雷 factory 质量(Math.random违禁/win不可达/A_boot崩),九门正确拦截,与本修正交(O1 factory 级,§9/scale-20 跟踪)
- breakout 回归未误伤=恒 paddle-intercept,H_progress 绿;成本闸内(¥0.014~0.052/款);仅改 prompt 未加 extractGatespec 兜底
源:2026-06-15-WG1-tap-targets-driver-自产缺口-L1brief.md / driver-coverage §6
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-16 17:08:12 +08:00 |
|
zizi
|
2b59f53f44
|
feat(saa): Python agentic 生成系统迁移到 SAA(Spring AI Alibaba)裸图 spike (HJ-AGI-002)
全图 design->generate->validate->[repair环]->scaffold->build->play(九门)->player->emit;build/play 复用既有 harness 子进程。
SAA 完整框架集接入 aigc-server(graph-core/agent-framework/builtin-nodes/observation/openai,3 BOM;Boot3.5.14/Redisson4.4.0 保住)。
双评审(Opus+Codex)9 项对比前必修:LLM超时重试/ProcessBuilder超时修复/采样面对齐/playerFeedback清串味/gatespec强解析/problems归一/recursionLimit兜底/cost/端口参数化。
首轮对比 breakout/whack/flappy:SAA 通过率 2/3 >= Python 1/3。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-16 07:55:27 +08:00 |
|
lili
|
06e59de659
|
feat(wg1): angrybirds 也翻绿——drag-aiming 解析瞄准(暴露物理常数闭可测性边界)
续 cc5fa48:最后一个 driver-coverage 边界 angrybirds 转确定性闭口(复刻 asteroids「暴露所需常数+适配 driver」范式)。
- play.cdp.cjs drag-aiming 加 45° 抛【解析模式】:游戏暴露 launch{gravity,powerScale} 即反解拖拽矢量(各发±力度微抖兜物理离散),否则退化力度扫描
- angrybirds brief:pin 死简单可解析物理(powerScale=8/gravity=1200,无阻力)+ 导出 launch:{gravity,powerScale}
- flash 重生成首发过(retries=0):launch 导出与 pin 完全一致、score 0→20 result=win 清场、latch✓
- 终局:flappy/multiball/asteroids/angrybirds 4 款翻绿;仅 t2048 余 8/9(2048 抗死锁 latch 体裁边界,游戏真可玩,建议放宽门)
- 回填:闭口报告 + game-e2e §8(drag-aiming 解析)+ cheap-model §9
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-15 03:36:01 -07:00 |
|
lili
|
cc5fa486ac
|
feat(wg1): driver-coverage 闭口 + P2 三档对照——flappy/multiball/asteroids 翻绿,0 模型造不出
创始人 2026-06-15 定档「driver 残留闭口 + P2 对照(L1 自主)」;P1 校准放量 blocked-on-founder。
- play.cdp.cjs driver 库 1→8 型:+flap-to-gap vy 前瞻 / paddle-intercept 弃守排空 / drag-aiming(第7) / aim-fire(第8)
- flappy ✅(重生成 score 0→5,vy 前瞻+可达缝隙 brief)
- multiball ✅(重生成首发 retries=0,弃守排空 driver+底部丢球语义 brief)
- asteroids ✅(enrich exportState 暴露陨石坐标+aim-fire driver,score 0→6=可测性边界转确定性闭口范式)
- t2048(8/9,键盘桥已修 score 0→4;latch=2048 抗死锁体裁边界)/ angrybirds(8/9,隐藏弹道物理可测性边界)honest 留界
- 三分类铁论:0 模型造不出 / 0 3D 硬界——全是宿主键盘桥(L0 已修)/driver 覆盖(我域已增强)/可测性边界(游戏 exportState)
- P2:同款 Breakout 三档对照(flash ¥0.194/M2.7 ¥0.514/pro ¥0.417)+ 创始人锚(pro 碰撞 bug 被两便宜 player 假绿=人锚不可替代)
- 蒸馏:game-e2e §8(driver 1→8 型 + H 假阴四因归因铁律)、cheap-model §9(重生成区分实例bug/可测性/模型短板);W-G1 spec 执行进展回填;新增 L1 闭口报告
- 顺带:run.py/prompt.py 注释 六门→九门 对齐(我域,trivial)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-15 02:00:07 -07:00 |
|
zizi
|
824ff672e3
|
merge(wg1): 并入 L1 saolei-borderline 修复(tap-targets safeOnly 避负族 driver)
独立验证(saolei verdict pass=9门0挂、trial merge、roles.py 未碰)后并入 L1 38032c7:
✅ L1 完成(避负族 facet,真+验证):
- harness driver runTapTargets 加 safeOnly(规避/推理族只点 safe===true 确定性避负到 win;
安全放置族缺省关、零回归)
- saolei 题面加 safe x-ray 观测位(仅 _forensicsView·勿渲染)+ safeOnly + 断言改 result==win
- 重生成 saolei flash 一次过九门(revealed 0→71/all_cleared/win-latch)=borderline→confirmed-playable;
自产 safe 正确→坐实缺口在题面非模型;回归 tictactoe/invaders 全绿
- 家族二分法(安全放置 vs 避负/推理)沉淀进 cheap-model/game-e2e skill
冲突解:brief add/add(L1 与 L0 同路径不同切片)取 L1 版为底 + 追加 §十 L0 补充——
澄清 L1 治的是 lane/避负族(saolei),与 3b-B 派发面 driver:none 是不同 facet;
cheap-model skill auto-merge 已含两 facet(line 58 dispatch 面 / line 80 避负族)。
⚠️ 仍 pending(不同 facet):3b-B 派发面 design agent 给 driver:none(roles.py:32,安全放置族
在派发面拿不到 driver)=「一句话现生成 tap 类」缺口,L1 本次零碰 roles.py/studio.py→属 L1 下一步。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-15 04:56:42 +00:00 |
|
lili
|
38032c72b4
|
feat(wg1): tap-targets safeOnly oracle driver——扫雷 borderline 翻绿(自产缺口修复)
driver: runTapTargets 加 safeOnly(规避/推理族只点 safe===true、确定性避负到 win;安全放置族缺省关、零回归)。题面: saolei.json targets 加 safe x-ray 观测位(勿渲染)+ safeOnly + 断言 result==win。重生成 saolei: flash 一次过九门(revealed 0→71 / all_cleared / win-latch),自产 safe 正确→坐实缺口在题面非模型。回归 tictactoe(X)/invaders(win)全绿。沉淀 L1brief §九 + game-e2e/cheap-model skill 二分法。零碰 L0(boot-game-host/契约/门面)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 20:36:51 -07:00 |
|
zizi
|
238ec2dbe8
|
test(aigc-3b-B): 视觉终局达成——真游戏真玩入 feed(亲眼验);一句话现生成腿缺口=tap类driver:none→L1
3b-B 重跑视觉终局(mini-desktop·证据 wg1/gen-worker/evidence-3bB-final/):
✅ 视觉终局达成(亲眼复核截图):feed 里一款真渲+真玩有进展的井字棋(gameId=9306/versionId=93112)——
空盘「轮到X」→ 落子填盘 X·O → 「X 胜!」+ 重新开始(latch 终态);feed 真玩门 10/11 过
(no_demo_fallback/engine_rendered/lively_interactive 全 true,唯一 false=play_start 遥测非阻断)。
经真 HMAC 回调写链落库(验签通过 engineBundleLen=210891→建版本→组包 checksum 自洽→翻 feed)。
走兜底路(诚实标注):主路一句话现生成两次均失败,故取已验证过九门样板 tictactoe(便宜模型 flash 真生成、
verdict A-I 全 pass)的 engineBundle 经派发面真回调路落 feed,DB bundle 与样板 sha256 字节级一致。
仍是便宜模型真生成的过门游戏,只是非本次现生成。
★ 主路两次 fresh 失败真因(非模型壁垒,铁证):design agent 在 dispatch 面 run_studio(play_spec={}) 下
均给 driver:{type:none}→harness 盲打打不中目标→moves/score 恒 0→H_progress 挂+latch 不触发,repairs=5
耗尽。游戏本体全对(gen9306/9307 verdict 8/9 门过,targetX/Y/radius·board·moves 导出正确,G_input/
I_control/F_wiring 均过)。样板过门靠 lane brief 手供 play_spec.driver=tap-targets。
→ 蒸馏入 cheap-model §7:DESIGN_SYSTEM 须对离散点击类强制产 tap-targets driver(纯 L1 生成域,
moat『一句话现生成』腿的真·临门一脚)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-15 00:48:50 +00:00 |
|
zizi
|
23e86934d2
|
merge(wg1): 并入 L1 scale-20 放量 + 宿主键盘桥 fix(d754b71·关键盘输入缺口)
独立验证(不信自述)后并入 fix/host-keyboard-bridge(=wg1/scale-20 超集,merge-base d79f2c3):
✅ 宿主键盘桥 fix(d754b71·5行纯增量):boot-game-host.js attachInput() 补 window keydown/keyup
桥接(ctx.getInput 键盘通道原为空→方向键/空格游戏输入死),对齐 host-dev/host.js:427-428 既有范式,
inputBridge _assertType 白名单本已含 keydown/keyup=零兼容风险。独立验:tetris verdict 修后
pass=True/9门/0挂(翻绿铁证)、tictactoe pass=True。
L1 scale-20 14 款放量(briefs/results/calibration/m3_player_test.py + tictactoe/tetris 正样本):
主力 7/8 真可玩;spec 预判门面缺口几乎全推翻(CCD/文本HUD/网格/match-finding 便宜模型自写对),
真·L0 门面缺口收敛为唯一一处=宿主键盘桥(本 fix 已补)。trial merge 干净(仅 .agents skill
auto-merge),我 3b-B 文件(service.py/CallbackSignatureVerifier)完好。
校正:我 §5『点击坑=moat 真壁垒』系单样本(3b-B)过度泛化,与 L1 §9 scale-20 实证矛盾→已改为
承认便宜模型相当能干、真缺口=键盘桥(已修)+driver-coverage(harness),非模型能力。
重大上修:moat 生成质量远好于 3b-B 单样本所示;失败主因=宿主门面(已补)+harness driver 覆盖,非模型。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 23:49:40 +00:00 |
|
lili
|
4836a6f519
|
feat(wg1-scale20): 20基准放量(14款)+ 三方门验证 + driver库泛化 + 宿主键盘缺口定位
主力批 7/8 真可玩(Opus 对抗审计 0 假绿)、压测 match3 ✅;失败收敛:3 键盘款(2048/Tetris/Asteroids)挂宿主缺 keydown 桥=唯一真·L0 门面缺口(已 spawn_task 交 L0)、multiball/flappy/愤怒小鸟=driver-coverage(非模型)。spec 预判 CCD/文本HUD/网格/match/手势缺口全推翻(便宜 flash 自带 swept CCD/自写网格文本)。
- driver 库 1→6 型(tap-targets/flap-to-gap/seek-x/tap-pairs/key-cycle/paddle-intercept)+ drag 输入事件 + key() Arrow 修
- M3 视觉 player 当生产过滤器实证(与门 8/9 一致、抓显性空心)→ 门(地板)+M3(主观过滤)+创始人(人锚)三层互补
- 短板量化报告定稿 + 两 skill 沉淀(game-e2e §8 driver库/门承重/键盘缺口 · cheap-model §9 模型能力画像)
- 2 个 ultracode 对抗 workflow(审计10+诊断7 agents)抓 saolei 弱断言、纠 flappy 归因(driver 非模型)、定位宿主键盘根因
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 10:30:06 -07:00 |
|
zizi
|
c99014c243
|
test(aigc-3b-B): 派发面 e2e 真证安全面+全自动管线闭合(HMAC双向),P5 生成质量转 L1
3b-B e2e(mini-desktop 真跑·证据 wg1/gen-worker/evidence-3bB/):
✅ P0-P4 安全面+全自动管线=真证闭合(铁证 backend-callback-hmac.log + p4*.txt):
- HMAC 双向证:缺签名头→HTTP 401 / 错签(deadbeef≠482147b5)→HTTP 401 / 正签→过门(走到下游"任务不存在"非401)
=关死 /dify/callback-internal 裸 @PermitAll 缺口
- 全自动派发链真通:执行器认领 taskId→dispatchGeneric 投 §6.1 job→worker 真生成(真烧模型)→
HMAC 签名回调→验签通过→handleCallback 落库(gen-9303/9304/9305 三轮齐全)
❌ P5 一句话真生成=未达终局:三款全 nine_gate_failed。但截图(gen-9303-after-play.png)证生成
真出 on-theme 可渲可动的「点击小怪物」游戏(Score/3s 倒计时/多彩怪物 monsters/targetScore=12),
仅点击→计分坏(Score 仍 0)→九门确定性地板正确拦截「看着像但玩不了」=质量门正确履职、拒发不可玩。
判:L0 交付(管线+安全+质量门)已完成且证;缺=便宜模型把「点击命中→计分」写对=L1 生成域
(prompt 点击坑+模型档+player/calibration,run_studio 自修 max_repairs 未救回)→转 L1 v3 迭代。
附带:serve-and-play.sh 跨平台 Chrome 探测(CHROME_BIN 覆盖>Linux /usr/bin>macOS>PATH 兜底,
Linux 在前因 mini-desktop x86 是权威 e2e 机);p3bB_*.sql 发布四态/翻 feed 桩。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 16:20:28 +00:00 |
|
zizi
|
d59093f84c
|
feat(aigc-3b-B): 派发面真 worker 服务壳 + HMAC 服务间签名(关 @PermitAll 裸缺口)
P3 W-G1 派发面 3b-B:把 3b-A 的 stub worker 升级为真生成 worker 服务壳,
并补 HMAC-SHA256 服务间签名关掉 /dify/callback-internal 的裸 @PermitAll 安全缺口。
后端安全面(评审验证):
- CallbackSignatureVerifier(新):HMAC-SHA256 对回调原始字节验签,MessageDigest.isEqual
常数时间比对(抗时序),JDK 原生零新依赖,空密钥=回退 3b-A 仅内网兜底(灰度/回滚兼容)
- AigcExecutorProperties:加 callbackSecret 字段(来源 aigc.executor.callback-secret)
- AigcExecutorConfiguration:注册 Verifier @Bean(随 executor.enabled 装配)
- AdminAigcTaskController.difyCallbackInternal:接 @RequestBody String rawBody 先 HMAC 验签
(错签真 HTTP 401),再用同字节反序列化为 VO,补 traceId/status 非空(绕 @Valid 手动校验);
系统身份 id=0 注入 + finally clearContext 保留(部署窗口#3 同根因)
- application-staging.yaml:加 callback-secret 占位符 + worker-url 指真 worker :9401
worker 服务壳(语法+契约对账验证):
- wg1/gen-worker/worker/service.py(新):http.server 服务壳包 L2 run_studio
(design 展开一句话→自产 gatespec→九门真玩),run.py/agent_loop 逐行不改;
POST /generate 收 §6.1 job 立即回 202→后台串行真生成→读 bundle.iife.js→
HMAC 签名(逐字节对齐 Java 验签:json.dumps ensure_ascii=False 一次算定既签既发)→
POST 回调入参驱动落包入 feed
契约对账:执行器 dispatchGeneric job 含 brief/gameId/traceId/templateId ↔ service.py 读取一致;
HMAC 两侧密钥(CALLBACK_SECRET/AIGC_CALLBACK_SECRET)须逐字节一致。
e2e(worker 起+HMAC双向证+一句话真生成入feed真玩)待 mini-desktop 跑。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 15:03:53 +00:00 |
|
lili
|
405394d451
|
feat(wg1-gen): gate-H 推广 = design agent 自产 gate-spec + reframe 决策锁定
P1(gate-H 推广多游戏):确定性门从手写 brief 升级为 design agent 自产,适用任意游戏。
- roles.py:DESIGN_SYSTEM 末尾产机器可读 gatespec 块(exportState/driver/controlCheck/
assertAfterPlay/expectLatch);ballPath 明确为水平 x。
- studio.py:_extract_gatespec 抽取(json_repair 兜)+ 合入 play_spec + 安全归一
(paddle-intercept 的 ballPath .y→.x 兜底);结果记 gatespec。
- 实证:flash design agent 对 breakout 产出结构合法 gate-spec,studio 抽取合入成功
(唯一内容误差 ball.y 已由 prompt + 归一双修)。
reframe 锁定(WG1 review §8,创始人亲玩校准后):确定性 gate-H = 可玩性真值/地板;
player = 主观层(消费 gate-H、判不出手感、须人锚校准);创始人/人锚不可替代;
生产三层 = 确定性门 + 便宜 player + 创始人抽检(无 Claude)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 05:16:04 -07:00 |
|
lili
|
a205929f15
|
feat(wg1-gen): L1 对齐官方 latch 壳 + 确定性手感门 + player 校准(founder 锚揭天花板)
W-G1 生成主线 L1 worker 本轮收口(lane wg1/gen-worker;便宜模型 + harness 门兜底,HJ-GEN-001):
机制/契约
- 可测性红线 + P0 latch 终态:生成工厂导出 _forensicsView().state().phase
(booting|playing|gameover,进 gameover 恒驻留、禁自动重开),对齐官方 P3 契约;
flash 实测能遵此契约(v4/v5 latch 驻留 ✓)。
- 套官方 generic 壳:worker 产 generated-factory.js → entry-bundle 用 buildGenericHostConfig
装配(=官方 entry-generic.js 的取证超集,多透传 recHook 供 F 门)→ esbuild __GameBundle。
真玩门(七门→九门)
- 门 H 机制+latch:assertAfterPlay 进展断言(剩余↓ 等,证非空心) + expectLatch 真玩到
gameover 且驻留。
- 门 I 控制手感:controlCheck 连点验控制体平滑逼近(逮"一格一跳"/卡死)。
- 适配性真玩 driver:读 state 实体位置自动接球,解"盲打固定坐标打不动技巧游戏"的
H 假阴性(创始人亲玩 + v4/v5 regen 双重实证)。
质量评估(player 校准)
- studio(design/code/fix/player panel on AgentScope 2.0.1) + calibrate.py 校准 harness。
- 创始人亲玩锚揭结构性天花板:便宜 player(静态截图+数据)判不出物理/碰撞/控制手感
(把碰撞有问题的 pro 高估为最佳);gate-H 盲打会假阴性;founder/人锚不可替代。
"上下文是杠杆"实证:接地使成本 −50%、修复轮次 −80%;rubric 锚定使 player MAE 1.25→0.75。
含从 dev/2.0.0 @3108009 拉入的官方 P3 通用装载壳(_generic/ + generic-host-config.js + 双 spec)
作 L1 套壳靶(为 lane 自洽,内容与 dev/2.0.0 一致,后续 merge 自去重)。
未提交:AGENTS.md/.gitignore 的 localagents 改动(非本人);生成产物游戏目录(构建 artifact)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 04:58:25 -07:00 |
|
lili
|
6201f95146
|
feat(wg1-gen): 便宜模型生成可真玩轻游戏——L1 worker + 七门真玩 harness(HJ-GEN-001 成立)
W-G1 生成核心:brief→便宜模型写 GameHostFactory→esbuild __GameBundle iife→P1 bootGameHost
装载→本机 Chrome+CDP 七门真玩取证;失败回喂错因重试。只消费冻结契约,零改 P1/P2。
实测(deepseek-v4-flash 最便宜档):Pong/Simon/打地鼠 三款【七门全过真玩】,
单款 ¥0.01–0.03(远低于 ¥0.15 L1 闸门)。最优模型:flash 打底 + 难档升 deepseek-v4-pro(Simon 0 重试 ¥0.06)。
关键:实证「能生成代码 ≠ 能玩」——一处 prompt 输入坐标契约写错(误称 x/y∈[0,1],实为逻辑像素)
让生成游戏能编译/渲染/动但点击全失灵;Pong 因自走动画假绿混过、Simon 被正确判否。
为此加装 G 门(确定性 A/B 对照,隔离自走动画假绿)+ 修 prompt 后三款真过。
- harness:games/_wg1-gen/_shared/{entry-bundle 模板,index 模板,play.cdp.cjs 七门,serve-and-play.sh}(复用 ref buildRefHostConfig + browser-evidence.cjs)
- worker:wg1/gen-worker/worker/{_client(代理旁路),prompt(生成上下文包),validate(静态门+node --check),cost(¥折算),run(§3 编排+重试门)}
- golden-path 自检:ref 工厂 5/6(F=0 菜单态正确)+ probe 工厂 7/7 → harness 无假绿
- game-runtime/package.json:加 ws(CDP 驱动 devDep)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-13 22:50:24 -07:00 |
|