lili
|
69307df8a5
|
fix(cheap-gen): 修 check 假阴性——stripCode 字符串内 // 致级联误抹真代码
n=5 跨主题验证 trpg-cyber 失败根因坐实:赛博主题文案用 '> JACK IN // FLOOR 01' 这类
字符串内含 //。旧 stripCode 用 5 条独立正则(先剥行注释、再剥字符串),字符串里的 // 被
行注释正则误当注释、吞掉闭合引号 → 引号失衡 → 后续字符串正则跨行匹配 → 级联误抹 169 行真
代码(bundle.tick/_forensicsView/handleTap 一起抹)→ check 误报三红线缺失 → 模型明明写对
却被反复拒 → thrash 到步数硬顶熔断、烧 ¥13.84 失败。
根治:stripCode 改单遍左→右状态机(码/行注释/块注释/单引/双引/模板 六态),同一时刻只一种态、
嵌套的 // 与引号各归其态绝不越界——「注释与字符串互嵌」词法问题唯一正确解。逐字节保长、换行
保留(红线行号定位不变)。影响面广:任何 game-logic 字符串含 //(URL/路径/N//M/科技赛博文案)
都触发假阴性,部分历史失败率实为此 bug 冒充模型质量差。
验证:trpg-cyber check.ok false→true;heritage/narrative 无回归;amodel-gen 35/35 绿
(check-banned 加 2 条 //-in-string 回归守卫)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-10 04:27:17 -07:00 |
|
lili
|
c8a15db349
|
feat(cheap-gen): 轻A 参数化收敛——create 路 per-genre 换皮写锁,模型只写 game-logic
n=5 收敛环第一性坐实便宜档失败主根:模型被放任重写引擎文件(render/core),大文件
整写截断丢导出→黑屏(heritage 坏死)、自造楼层推进死锁(trpg)。根治=生成面收窄:
create 路 route 命中 per-genre 黄金模板时,write_whitelist 物理锁 render/core,模型
只据 brief 换皮 game-logic.js(+assets.js)。机制早存在(write_whitelist 只用于
modify、6 个 per-genre 完整可玩模板已建),只差 create 接线。
- cheap_roles: build_reskin_system_prompt(引擎锁死、只写 game-logic 语言,镜像
build_modify)+ SCAFFOLD_DESC_BY_TEMPLATE(5 品类换皮描述)
- cheap_studio: run_studio 据 write_whitelist 自选换皮/通用提示
- cheap_service_driver / hard_genre_batch: create 路 route 命中即写锁 game-logic+assets
it5 验证:heritage bright 0→178812、phase menu→play(真修好);trpg H_progress
floor→6 登顶(死锁消失,生成码天赋分支补了 dealFloor);写锁逐字节生效(render/core
与模板相同);未锁对照组(idle/action,无品类模板)仍坏死=证明是锁起效。
route_genre 覆盖 4 类,idle-sim/action-physics 无模板=已知覆盖缺口(round-2)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-10 04:27:17 -07:00 |
|
lili
|
824b4eaba3
|
fix(cheap-gen): 重同步 cheap-system.md 正文——补 edit_file 提示欠账
热取源 04-config/cheap-system.md 停留在「六工具/没有 edit_file/改文件用 write_file
整体覆盖」,而内联 _SYSTEM_PROMPT 早已加 edit_file(七工具/小改优先 edit_file)。生产
热取到 stale 提示 → 逼模型整文件重写 → 大文件截断(便宜档死圈病根之一)。按「.md 正文
= _SYSTEM_PROMPT 逐字节对齐」铁律重同步正文,registry.yaml + .md frontmatter version
双升 1.6.1→1.6.2;test_roles hotload 不变量 2 测试转绿。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-10 04:27:17 -07:00 |
|
lili
|
9bd428040f
|
fix(cheap-gen): 死圈修复 fix①-B 重实——改挂 resume 续修层(on_acting 版无效)
n=5 收敛环 iteration 3 坐实:上一版 fix①-B(on_acting 拦截畸形参数)日志 0 触发=无效。
源码核实根因:AgentScope _agent.py:1376 jsonschema.validate 失败 → _handle_error_tool_call
→ return(Step1),在 Step3 工具执行/on_acting 钩子之前,故畸形调用【根本不进 on_acting】,
上一版是死代码(单测 mock next_handler 吐错误、但线上错误不经它)。已 revert。
重实挂到真能触达 agent 的层:cheap_studio resume 续修循环 wrap writer.reply,catch
Tier2CircuitBreak——【仅 missing-param 类 stuck】(reason 含 'is a required property'=MiniMax 漏
必填 path 撞满阈值)不当终态杀,还有 resume 预算 + 未越 ¥ 软停就带贴脸补参反馈续修(与 gate-fail
resume 同机制、跨 reply memory 保留=原地续修)。只清 stuck 连击计数(_fail_repeat/_last_fail_sig,
不动 spent_rmb/tool_calls 防误清预算);非漏参 stuck(反复 check 红线/build 编译错=真死圈)/budget/
其它熔断照旧向上抛终态、不放行。整环验证随 n=5 re-run(iteration 4)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-10 04:27:17 -07:00 |
|
lili
|
e4e4e23564
|
Revert "fix(cheap-gen): 死圈修复 fix①-B 便宜档畸形参数纠偏——n=5 收敛环坐实 heritage 死圈复现"
This reverts commit 26f94f1f0b9137b342c0d37c1f7583d0f03e4369.
|
2026-07-10 04:27:17 -07:00 |
|
lili
|
3c0c105aeb
|
fix(cheap-gen): 死圈修复 fix①-B 便宜档畸形参数纠偏——n=5 收敛环坐实 heritage 死圈复现
n=5 收敛 loop iteration 2(难品类)复现死圈:heritage 局 stuck 终杀,签名=连续 4 次
write_file:'path' is a required property——MiniMax 长参数下漏 write_file 必填 path,agent
收默认校验错不理会、反复漏同参 → 撞满 stuck 阈值(4)→ 九门从未跑 ok=False。fix①-A 给了
edit 替代但没阻止 agent 选 write_file 漏 path,故 fix①-B(此前押"证据门")现证据到、实现。
修:CircuitBreakerMiddleware.on_acting 非软停态给「漏必填参」的 write 类工具结果追加一条比默认
校验错更贴脸的补参提示(催补 path / 改 edit_file 短载荷),让 agent 撞满 stuck 前出圈。
经既有 _augment_toolresponse(<system-reminder> 追加,agent 下轮读得到)+ on_acting 洋葱钩子,
符合设计不自造机制。cheap-only(enable_malformed_correction,cheap_budget 工厂置 True;tier2
默认 False、逐字节零行为变化);不重置 stuck 计数(仍漏照常熔断,上界由现有阈值封死、不新增无界重试)。
测:test_malformed_correction 4(cheap追加/tier2零变化/非漏参不追加/非write工具不进)+ tier2
回归 test_circuit_stuck_signature 5 + test_repair_middleware 5 = 14 passed。整环验证随 n=5 re-run。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-10 04:27:17 -07:00 |
|
lili
|
c2a86b3a02
|
feat(polaris): 《山海巡异录》③首页下半补完——scrim 放出山水金乌+主按钮册页托+CTA 加重
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
创始人真机眼验:表现层二轮③首页只消化上半,下半四主按钮(启程/每日一巡/图鉴/成就)仍黑底金边方钮、整屏死黑。死黑真因=上轮 scrim 0.5 把 bg-scene-02(金乌·苍岭·云海亮国风画)压死、四按钮又落偏暗青黛山峦区读成黑底方钮;现 scrim 0.5→0.3 放出山水金乌整屏即国风底,描金屏框+四角云纹装裱成卷轴,四主按钮落浅米册页卷轴托成组、启程出巡 CTA 朱漆+描金外飘框与次级拉层次,副标加墨条背衬保 scrim 降后可读性;computeHomeTargets 靶位未动。home-drive displayCount 50→58、scene-smoke 全绿、esbuild EXIT=0。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-09 00:51:34 -07:00 |
|
lili
|
d4cb740a86
|
docs(creds/ops): 补 dev 栈 HMAC 回调密钥入档 + 修 staging-ops 过时"secret 空"claim
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
AIGC_CALLBACK_SECRET=e8aab273…(32hex,Complete A 起已配、env 文件持久化)此前只在 mini-desktop
huijing-dev.env、未入仓凭据档(§9 缺口);staging-ops §100 还写着"空(验签关)"是过时。补凭据档
可复现副本(两端逐字相同=验签开、空=内网可伪造回调内测必须非空)+ 校正 §100 为非空 + 补 quota flag。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-08 07:57:21 -07:00 |
|
lili
|
231b17194a
|
fix(cheap-gen): new-api 额度耗尽真机探测揪出误判——401+「额度已用尽」修为 quota_exhausted
内测开放项真环境探测(2026-07-08,dev 栈恢复后):建 remain_quota=0 测试 token 打 new-api
/v1/chat/completions,坐实 new-api 对额度耗尽返 HTTP 401 + message「该令牌额度已用尽
!token.UnlimitedQuota && token.RemainQuota = 0」——非代码假设的 402/403,且关键词只认「额度不足/
insufficient」漏了「额度已用尽」。旧 classify_newapi_failure_reason:401→llm_error(可重试)、
关键词不匹配 → 把耗尽误判成可重试 → 反复重试到 15min watchdog 超时,而非干净"额度用尽"。
修:message 额度关键词优先(含实测「额度已用尽」「RemainQuota = 0」),401 不再无脑判 llm_error
(401 与凭据失效重叠,按 message 分辨:耗尽→quota_exhausted、真凭据失效→llm_error 可重试);
402/403 保守保留判耗尽。删代码 §3.9【阶段2 待验】TODO(已真机坐实)。新增真机 401 回归用例,
26 测过。正是代码自带 TODO 与「真环境>桩」要抓的:桩测永远发现不了 new-api 用 401 不用 402/403。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-08 07:52:57 -07:00 |
|
lili
|
520238de55
|
docs(creds): 补 new-api 预置池 provision 凭据(创始人点名不可逆项收口)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
WU2 内测 per-user ¥100 走离线预置池,ops 脚本 newapi_pool_provision.py 建/补池必直连
new-api postgres(S0 实证 admin 不能替他人建 token),但所需 NEWAPI_PG_PASSWORD 此前只在
脚本 docstring 引「见凭据文档」、实际未入档(PostgreSQL 行标"按需补")=悬空引用,池空补不了。
从 mini-infra 权威取并实测:new-api 库超级用户=root(非 postgres)/口令 f6710…bc54,
docker exec -e PGPASSWORD infra-postgres psql -U root -d new-api 可连,2026-07-08 池水位
11 条可用 token。填 PostgreSQL 行真值 + new-api 段补 provision/补池指引 + NEWAPI_ROOT_TOKEN
选填说明。docs-gate 七检绿。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-08 07:27:45 -07:00 |
|
lili
|
ed3d8a9a5d
|
feat(polaris): 《山海巡异录》表现层二轮——奖励屏爆字闸+首页国风化+手牌卡面补描述+职业名统一
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
创始人真机眼验批①③④⑧。① 奖励横幅被战斗结算爆字(delay~1600ms、depth60)压住;新增 BATTLE_ONLY_FX 闸+onBattleScreen(),离战屏抑制战斗结算类演出,过场/奖励/商店类照播。③ drawHome 套 skin 皮肤基元(山水底/卷轴题头/五行相生珠带/职业卡遗物徽记/册页托),去黑底金边方钮,靶位 computeHomeTargets 未动。④ 手牌卡面下半空白根因=battle-core handCards 投影漏 text 字段;补齐+cardFront 下半重排(元素分隔线/描述铺满/脚注)。⑧ 战斗 HUD+地图英雄名去硬编码「巡异使」、统一取 CLASSES[heroClass].name 与首页同源。scene-smoke(home 显示~20→50、battle=42)+battle-core.test 双门 EXIT=0。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-08 04:35:44 -07:00 |
|
lili
|
4a2f782a9d
|
feat(polaris): 《夜市一条街》表现层二轮——弹层期抑制世界飘字+灶台案板让出街景
创始人真机眼验批②⑦。② Hud 新增 _floatMuted 闸(飘字 depth=100 高于研发/图鉴/日结弹层部件≤94,照绘会压菜谱列表);MainScene.update 按弹层 open 态每帧驱动,仅抑制被动世界飘字/飘心,dock 主动「不行」反馈在 drainFx 循环外触发不误伤。⑦ STALL 操作台 330×120→300×72 矮案板让出中上部街景消失点;STOVES 灶台坐标未动、service-loop 用 index 非坐标,招牌 y 与案板高度解耦。logic-smoke(M0+M1+M2)+build 双门 EXIT=0。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-08 04:35:44 -07:00 |
|
lili
|
a9c0367f6d
|
feat(polaris): 《山海行纪》表现层二轮——地面弃水岛主铺治重复+暂停空槽降重
创始人真机眼验批⑤⑥。⑤ drawGround 病根=base 段(0-15)本是水面小岛母题、满铺=规则重复小岛;改大尺度分区选帧(~40%青绿矿岩32-47/余深岩16-31穿插)+按位翻转+drawGroundShade 极轻云影+装饰补至8种加密,弃水岛主铺。⑥ drawSlotGrid 空槽改极淡底+虚线边+drawLockGlyph 锁形微标降重、已填略实突出。render-evidence fellBack=0(tiles/panel 真接线)、build-report 首屏 350702B PASS、headless-smoke S1/S2/S3 零回归。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-08 04:35:44 -07:00 |
|
lili
|
462946518f
|
docs(mvp): 内测A段文档账校正——退役过时误建 plan + 07-07 三档对齐已建地面
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
内测 A 段(WU-1/2/3)代码上会话 Complete A 已全量实现并合入 dev/2.0.0(三 opus 子代理
读码坐实)。本次理账,不重复产设计门:
- 退役误建的 A 段 plan(39c64712):其框架把已建当缺口、§4 抄了创始人 S0 否决的旧路
(运行时管理 client 开户,实际落地是离线预置池)。07-07 三档 + tech-decisions 才是 SoT。
- WU3 07-07 档校正实例归属:全篇共享 muse :18080 → game 专属 :28080(创始人 workspace
分离约束),加 2026-07-08 校正横幅,凭据见内网端点档;端口 :28080/:28443/plugin :25003。
- 三档 status 草案 → 已实现,附各自实现 commit;WU2 显式记「落地=预置池、非否决的管理 client」。
docs-gate 七检绿(退役 plan 后 G7 谱系仍达 canonical——三档挂 MVP作战清单)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-08 03:28:38 -07:00 |
|
lili
|
39c64712d4
|
docs(mvp): 内测上线闭环 A 段 plan——三 WU 缺口+创始人四决策+dify 专属实例修正
港 breezy 仓外调研前身进仓(六项并行读码坐实),作阶段0 三设计门的共同上级(谱系锚)
与决策留档。上级→16周主计划(canonical),docs-gate 七检绿。关键修正:dify 从共享 muse
:18080 改为 game 专属实例 :28080(创始人 workspace 分离约束,凭据已落内网端点档)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-08 02:45:55 -07:00 |
|
lili
|
182b3680dd
|
docs(gen): 便宜档死圈修复执行进度——工具层四修全落+回路成环证,剩 n=5/fix①-B 证据门后置
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
fix①-A(596ea136)/fix②-prompt(596ea136)/fix②-check(b63fd1b8)/fix③(8f700c4b)+回路
集成证(29da2373)全落,24 单测绿。剩 n=5 真环境收敛环(同时是 fix①-B 是否需要的证据门)
与 fix①-B 共享熔断纠偏(证据优先,不投机先改共享代码),均非内测阻塞。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-08 02:32:17 -07:00 |
|
lili
|
29da237307
|
test(cheap-gen): 死圈修复外科修复回路确定性集成测试(fix①-A × fix②-check 成环)
n=5 收敛环的确定性内核(不含大模型,只证工具能组合成环):scaffold 合规起点 → 注入一处
裸 Math.random(模拟模型自造回退)→ check 经真 node tools.mjs 报「红线 + 确切行号 +
edit_file 补救指向」→ edit_file 精修那一行 → check 红线消失、整体回 ok=True。
证的正是死圈出口:过去=产物带违规 + 只有整文件覆盖 write_file + 报错无行号 → agent 整文件
重写、漏 path、连撞熔断;现在=报错点名到行 + 给 edit_file → 一行精修即出圈。「大模型会不会
照做」交真环境 n=5 收敛环。1 测过(scaffold→inject→check→edit→check),exit=0。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-08 02:28:51 -07:00 |
|
lili
|
8f700c4b42
|
fix(cheap-gen): 死圈修复 fix③ brief 落 evidence/brief.json 供根因取证
问题:一局 brief 原只内联在 run-summary.json,收口末尾才落——run 硬失败/挂死(如熔断
os._exit)时收不了口、brief 丢失,死圈根因取证断链;且无完整性戳、无限长策略。
改动(cheap_studio.py):scaffold 就绪后即调 _persist_brief_forensics 落
game_dir/evidence/brief.json,字段 {brief(限长)、bytes、sha256、truncated、promptMax、source}:
· 早落——硬失败/挂死也留得下,取证不断链;
· sha256/bytes 按【完整原文】算——核 worker 收到的 brief 与后端下发字节一致(查是否 brief
被截断/篡改害翻车),截断不掩盖完整性核对;
· 超 PROMPT_MAX=1000 截断 brief 字段 + truncated=True——脱敏 + 防超长撑爆;
· 落 evidence/(forensics,不随 src/ 进素材市场交易),【绝不】落工程根——源工程会被交易、
brief 是用户私有输入,不得泄进可交易源;
· 非阻塞铁律:落盘任何异常只告警、绝不咬生成主链(try/except 兜底)。
测:新增 test_brief_forensics.py 4 测(落 evidence 非工程根/字段齐 + sha256 按完整原文/
超长截断但摘要仍完整/空与 None 非阻塞),+ 回归 test_edit_file_toolkit 6 测,pytest exit=0;
cheap_studio import smoke 通过(import hashlib + 接线未破坏加载)。
待续(本计划剩项):fix①-B 共享 tier2 熔断窄口径纠偏(最险,另做)、n=5 收敛环。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-08 02:23:36 -07:00 |
|
lili
|
b63fd1b8f7
|
fix(cheap-gen): 死圈修复 fix②-check 红线报错带确切行号 + edit_file 补救指向
问题:红线判定原只输出正则 source(如"禁用 \bMath\.random\("),agent 拿不到
行号、要靠整文件重写去猜改哪行;且旧 stripCode 把跨行块注释塌成单空格,若据
stripped 串算行号会漂。这正是死圈触发面之一——报错越模糊,越逼 agent 整文件重写。
改动:
· stripCode 改为"内容抹成等量空格、保留换行":结果串与原文行号一一对应,
长度不变且不误匹配(空格非 \w/`.`),既有 5 处调用点(形状门/API 门/结构门)语义不变。
· 抽出可测的 _bannedLineErrors(rawSrc, f):整串正则做权威判定(不漏 \s* 跨行写法),
逐行定位命中行号(1-based、最多列 10 处),报错带"红线 X 第 N 行 + 用 edit_file
改回 ctx 形态、别整文件重写";函数内回退/typeof 守卫后的裸调、任意嵌套照样命中。
· check 第3节红线块改调 _bannedLineErrors(同 _shapeGateErrors 抽法)。
测:新增 check-banned.test.mjs 7 测(行号正确/跨行块注释不漂/多处逐行/typeof 守卫
后仍命中/注释字符串零误杀/合规零报)+ 回归 check.test.mjs 8 形状测 + check-undef,
33 pass 0 fail 0 skip,exit=0(stripCode 改动未破坏既有门)。
待续(本计划剩项):fix③ brief 落 evidence、fix①-B 共享 tier2 熔断窄口径纠偏、n=5 收敛环。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-08 02:19:56 -07:00 |
|
lili
|
596ea13666
|
feat(cheap-gen): 死圈修复 fix①-A 增量 edit 工具 + fix②-prompt 克隆纪律/check-early
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
死圈根因(双评审坐实):产物带小红线违规→check FAIL→agent 想修但只有整文件覆盖的
write_file→改3行变重写22KB→MiniMax 漏 path 连撞→stuck 熔断→九门没跑→ok=False。
fix①-A:cheap_run.edit_file(读现文件→校验 old 唯一命中→精确替换→经 write_file
回写继承 L1_FIXED/game_dir 保护)+ cheap_toolkit edit_file 工具(whitelist 把关)注册进
七工具面;edit_file 加入软停 blocked-tools(middleware.py,越软停线同 write_file 拦)。
edit 自身失败面(old 未找到/不唯一)给结构化提示。6 单测(命中/未找到/不唯一/L1拒改/
越界/缺文件)+ 现有 toolkit 8 测全绿。
fix②-prompt(cheap_roles.py):① 工具清单纠正为七工具、明确 edit_file 小改优先(修
之前"没有 edit_file"的错误引导——否则 agent 不会用新工具);② 克隆纪律"rng/nowMs 照
_template 逐字克隆、禁自造 Math.random/Date.now 防御回退、check 函数内裸调照拦";
③ check-early"先写最小核心→立即 check→edit_file 修红线→再扩玩法"。
待续(本计划剩项):fix②-check 报错行号(tools.mjs)、fix③ brief 落 evidence、
fix①-B 共享 tier2 熔断窄口径纠偏(最险另做)、n=5 收敛环(ok=True 判据)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-08 01:46:22 -07:00 |
|
lili
|
d9660c8ef1
|
docs(gen): 便宜档死圈修复计划过双评审并校正(Codex+Opus 收敛修计划后执行)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
两审独立坐实根因链、收敛「修计划后执行」。纳入发现校正三处:
① fix② 前提错(实测 _template rng 本就合规 ctx?next():0、无 nowMs,违规是模型
自造)→ 从「改模板」重定向到 check 报错点破规则+提示层克隆纪律+check-early(更上游);
② 阻塞判断纠正:实测真过门率 9/23≈39%(初版把「跑到门 83%」当过门),死圈只是多种
失败模式之一,三修到不了 80%,80% 缺口(E/G/H 玩法正确性)属另一工作面;
③ fix① 边界钉死:edit 走 read→apply→cheap_run.write_file 继承 L1/L3+whitelist、
不触发 check、加软停 blocked-tools;纠偏仅 schema 缺字段/不重置 stuck 计数/cheap-only
别改坏共享 tier2 熔断;edit 自身错配纳入纠偏。fix③ 落 evidence 脱敏(源工程可交易)。
验收改 ok=True 收敛(非「跑到门」)+ 预置违规 fixture。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-08 01:08:46 -07:00 |
|
lili
|
47f0f404e1
|
docs(gen): 蒸馏便宜档生成死圈失败模式 + 修复计划(不阻塞内测)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
根因实证(amgen-dify-9da8f701):小红线违规(rng/nowMs 裸 Math.random/Date.now)
→check FAIL→agent 正确想修但六工具面无增量 edit→改3行变重写22KB→MiniMax 反复
漏 path 参数→连撞4次 stuck 熔断强杀→九门没跑→ok=False。品类跑偏真但非因(对照
dify-1783477578 同动作类 brief 成功改出 Shmup);读多写少是常态非杀手。
蒸馏 cheap-model-game-generation.md §11(失败模式+非根因清单+可追溯缺口)。
计划 2026-07-08-便宜档生成死圈修复(上级=便宜档M3 cutover):fix①增量修改工具+
畸形参数纠偏(最高杠杆)/fix②模板 rng/nowMs 默认合规+check 报错指行/fix③ brief
落盘。阻塞判断:不阻塞已交付 A 段、非内测 beta 硬阻塞(死圈少数模式+飞轮迭代),
归便宜档质量线排期 fix① 优先。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-08 00:35:58 -07:00 |
|
lili
|
b9d73ae3c7
|
spike(dify): WU3 形态A 真建成跑通——game 专属 dify 实例 + workflow 导入发布返 202
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
原计划建进共享 muse-dify 遇两阻塞:①muse 锁单工作区+create-tenant 抛错 ②HTTP
节点经 ssrf_proxy 打内网 worker 被 deny to_private_networks 拦(muse→:9501 实测403)。
创始人拍板给 game 单起隔离实例:独立 compose(game-dify)+错开端口(28080/28443/25003)
+独立卷+新 SECRET_KEY,自有 ssrf 模板放行 gen worker,muse 零受扰(仍403)。
导入 DSL(0.1.5→0.6.0迁移完好)+发布+真跑:HTTP节点succeeded/worker返202/
worker日志'受理(202) userToken=<none>全局key回落'。凭据档回写 game-dify 端点+登录+
headless token 签发法(RSA/CSRF 绕过)。spike README/DSL 更新为已验证态。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 22:08:33 -07:00 |
|
lili
|
87b0c085b7
|
spike(dify): WU3 游戏开发节点形态A 搭建配方 + DSL 骨架 + ssrf_proxy 阻塞留痕
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
能力已证(直连 :9501→202→agentscope 真跑);但实测坐实 dify HTTP 节点经内建
ssrf_proxy(squid)出网,deny to_private_networks 拦掉 100.64/10 → 打 :9501 返 403。
两个创始人门:①放行 ssrf_proxy 到 worker 端点(共享基建+安全姿态,附最小侵入 squid
例外+回滚)②dify console 登录(凭据档缺,须创始人给)。含握手级超时/dify- 前缀去重/
budget 死字段/隔离靠专用栈等读码红线。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 20:34:02 -07:00 |
|
lili
|
7e7ac272b2
|
docs(agents): 蒸馏内测闭环 A 段——new-api per-user 额度预置池 + S0 硬约束 + facade HMAC
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
tech-decisions §16:额度不自建钱包对接 new-api per-user 配额;S0 实测 admin
令牌不能替他人建 token(user_id 忽略/access_token 不可 API 写)→ 预置池 CAS claim;
生成计费以 new-api used_quota 为权威(worker 自估偏高);注册防枚举固定假 BCrypt
同码路 + fail-open IP 闸;facade 回调空 secret=可伪造 → 两端 HMAC-SHA256 验签。
README 索引行同步。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 20:26:25 -07:00 |
|
lili
|
210ce70160
|
merge(neice): 内测闭环阶段1 integration 并入 dev/2.0.0
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
WU1 注册登录(用户名+密码/无短信/网关IP限流/防枚举/outbox)
WU2 new-api per-user ¥100 额度(预置池 claim/job userToken 位/per-user 门/quota_exhausted)
WU3 dify 形态A 游戏开发节点设计 + ops 池预置脚本
全 opt-in 默认 off(AIGC_NEWAPI_QUOTA_ENABLED / wanxiang.passport.password-auth-enabled)。
阶段2 dev 真机全环 e2e LIVE 反假绿。dev 前进 36 文件与本支 57 文件零交集。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 19:34:15 -07:00 |
|
lili
|
a54ba9bb42
|
docs(neice): 内测闭环三份设计档(WU1注册登录/WU2 newapi额度预置池/WU3 dify节点) + ops 池预置脚本
阶段0 三份 feature-design-doc 过对抗双评审+主控终审;WU2 按 S0 实测改预置池机制。
ops 脚本离线预建 new-api user+token+¥100 灌 game-cloud 池表。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 18:05:00 -07:00 |
|
lili
|
d91d857c17
|
feat(polaris): 《夜市一条街》厨房音效 CC0 真采样——6 事件换公有领域采样(创始人拍夜市采样)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
创始人拍夜市 SFX 走 CC0 真采样(烤肉滋滋/收银声真录音比合成贴)。7 个真实世界 foley 事件:6 换核验过的
CC0/公有领域真采样、1(切菜 chop)如实退回合成(无干净 CC0、Commons 搜空/freesound 要 OAuth,不硬凑)。
采样(逐个机读 Wikimedia Commons license 字段核验、下载+定稿两次复核,只收 CC0/PD 弃 CC-BY/CC-BY-SA):
烤肉滋滋 sizzle(PD)/收银钱箱 cash(PD,选硬币落金属钱箱真声)/金币叮当 coin(PD)/下单铃 bell(CC0)/
顾客满意 applause(PD)/失败差评 buzzer(CC0);curl 直下→ffmpeg 裁≤2s 单声道淡入淡出→mp3 96k,共 106KB。
授权逐文件留痕 assets/audio/sfx/manifest.json+批次二音效CC0采样台账.md(clean-room/备案证据链)。
接线:采样懒加载(首手势后 decodeAudioData 不进首屏)、缺文件/解码失败/node 无 fetch 逐事件回落合成不崩。
证据:回归 logic-smoke 95/tree-check 15/单测 30 零倒退+两本账不破门(总 4.336MB≤10MB/首屏 1.13MB 一字不差、
采样懒加载不计首屏);成本 ¥0。真播听感待 mini-desktop 窗口人耳评。抽象/UI/设计音 20 类保留合成。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 17:41:39 -07:00 |
|
lili
|
cccedd9ac5
|
docs(polaris): 表现层精致化波台账——割草美术接线 bug 修复+三款 UI 去方框+内容音效
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
创始人验玩批三条(割草没渲染/UI 方框/音效芯片音)优化收口:割草修美术未接线真 bug(0cd53b5d)+夜市/卡牌
UI 去方框接真美术(b4a6956b/c931ea41)+三款音效去芯片音;音效路线拍山海合成+夜市采样,夜市 CC0 采样补齐在飞。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 17:17:27 -07:00 |
|
lili
|
c931ea4181
|
feat(polaris): 《山海巡异录》表现层精致化——UI 去方框(青绿卷轴)+国风器物音效
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
创始人验玩批 UI 方框/音效芯片音。关键发现:UI 帧(ui-frame/bg-scene)此前生成却零接线、run-scene 全 graphics
方框=方方正正根因。新建 skin.js 青绿卷轴皮肤基元单源(真素材优先+程序兜底+node 安全),run-scene 全屏改绘:
满幅山水背景/稀有度册页卡框+描金费珠/卷轴 HUD/灵力宝珠/五行链轴珠+相生脉动/敌区名号匾额+意图徽/三漆色钉角按钮/
铜章地图节点/册页奖励商店图鉴成就;动效=出牌飞行灵符/周天金环放射×3+满屏金闪/奖励回弹/终局弹入,既有 juice 保留。
生成 4 件 UI chrome(锚 r1 抠透明落 assets/ui/ 376KB:宝珠/铜章/匾额/横条)缺件退程序绘制。内容音效:
sfx.js 单振荡器升国风分层合成(磬/钟/铃/古琴拨弦/鼓膜/木鱼六音族对齐山海器物),链环八级五声音阶保留换三泛音磬音。
证据:八门+手感门 42 断言全绿+数值 CI 金标 52.0%(漂移-0.5pp);scene-smoke 绘制对象 map=54/battle=42(原~20)
=去方框硬证;CDP 探针音频节点 0→osc2/noise1/filter1。核心数值文件未动。音效路线=山海合成(符创始人拍)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 17:15:39 -07:00 |
|
lili
|
b4a6956bdb
|
feat(polaris): 《夜市一条街》表现层精致化——UI 去方框(暖夜霓虹设计系统)+内容音效
创始人验玩批 UI 方框无设计/音效芯片音。新建 ui-kit.js(347 行程序化设计系统零字节)去方框改造 5 界面:
HUD(金币/声望/口碑/时钟图标 chip 化+数字滚动+圆头进度条+光泽药丸加速钮)、dock 四页签(木牌光泽 chip+
图标+红点徽章+禁用态)、弹层(研发/图鉴/成就=木质金边面板+霓虹标题+圆角卡片+药丸按钮三态+分页+弹入缩放)、
日结面板(木质金霓虹边+图标药丸钮+scrim)、点单气泡(带尾对话泡+金边);动效=数字滚动/弹层缩放/按压/满意飘心/
事件霓虹横幅。内容音效:sfx.js 从 ZzFX 芯片音重写为分层 foley(27 类)覆盖烤肉滋滋/切菜/下单铃/进账收银双铃递进/
顾客满意/连击/研发解锁/失败。真机 CDP 揪修两真渲染 bug(fillGradientStyle 在 SwiftShader 黑→实色分带修/
dock close 漏销 _listParts 串影→补销)。
证据:mini-desktop 真浏览器 CDP 九门+富三门 decision=accept;回归 logic-smoke 95/tree-check 15/单测 30 零倒退;
两本账零字节新增(首屏 1.13MB/总 4.23MB 持平)。**音效路线创始人拍夜市走 CC0 真采样**(本席合成为过渡,
CC0 厨房 foley 采样补齐另单)。evidence/dist 不入库。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 17:15:39 -07:00 |
|
lili
|
0cd53b5d30
|
fix(polaris): 《山海行纪》表现层精致化——修美术未接线真 bug+UI 国风化+内容音效
创始人验玩批中真 bug:美术图集入库但 render.js 零接线(117 处程序色块、0 真图)。修:
新建 art.js 图集接线层+atlas-frames.js 帧表(gen-atlas-frames.mjs 生成)+重写 render.js,主角/异兽/双 Boss/
符器弹道/符阵/拾取/tile/装饰全换真 sprite(裁剪补偿+朝向翻转),缺图回退色块+日志不崩;manifest 补 assets[]
宿主预载首屏(boss 页 1.03MB 懒加载)。UI 国风化:出击页接 vista 底+面板九宫格+按钮+描金选中,升阶三选一龙纹卡框
(canvas-ui-kit 零改),HUD 血球/Boss 条/摇杆接真图。内容音效:新建 sfx.js 分层 WebAudio foley 替 ZzFX 芯片音,
八配方(灵晶叮/击破碎裂/受击闷响/升级编钟/聚灵上扫/异象微光/Boss 登场威压/伏诛崩解)。
证据:render-evidence 注桩 drawImage=63〔tiles45/主角8/异兽/UI〕fellBack=0 零缺帧;CDP 四态截图真 sprite 在画;
音效结构测试 5/5(每音≥2 声源层非单振荡器)。回归:游戏 53/53+整库 269/269+三场景+压测 1.503ms+
包体首屏 349KB≤0.6MB+首图录证 D0/D1 与 M3/M4 逐值一致(表现层对 sim/meta 零偏移)+存档 13/13。
未竟:tiles 非无缝(3px 压接缝)/真声人耳评待真机窗口/CC0 采样路径预留(合成已足)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 17:14:37 -07:00 |
|
lili
|
7ecf016914
|
merge: WU1(后端+前端) 并入内测阶段1 integration
|
2026-07-07 12:47:07 -07:00 |
|
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
|
a069afb649
|
feat(aigc): WU2③ job userToken 位 + per-user 额度门(只对真实 member 生效)
dispatchGeneric 组 §6.1 job 时追加 userToken 字段(向后兼容,worker .get 忽略未知键)。
per-user 门只对真实 member 在线创作生效——按 creatorUserId 是否命中一行 game_player 分流:
- 无 game_player 行(系统/编排器/bake-off/admin 触发)→ 旁路:不查池不懒 claim,userToken
留空,worker 回落全局 key(不误伤 n=5 收敛环/批跑既有验证路);
- 命中 game_player 行 → 取其 CLAIMED 条目 token_key;无 CLAIMED 则派发线单 CAS 懒 claim
(纯 DB CAS 非慢外呼,派发热路安全),抢到就用、池空抢不到当次干净失败 quota_exhausted。
token 随 job 内网下发日志脱敏(仅留前后 4 位)。经 12 参构造软注入,主开关关或未接线=现行行为字节零变。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 12:22:14 -07:00 |
|
lili
|
4cf0e14ec3
|
feat(aigc): WU2② 注册 claim 消费者——消费 WU1 注册成功事件从池 CAS 绑玩家
WU1 afterCommit 发「注册成功」事件(topic passport-register),本单作其消费者,不进注册
事务:渠道过滤(只 password/invite claim,sms/sms-mock 跳过防白占池)→ 从池单条 CAS
抢一个 FREE 绑 game_player(biz_no=claim_<id>,幂等靠 status='FREE'+两 uk)。
- 池空不抛异常(补池是离线动作、非 MQ 重试窗口内可恢复):记 WARN + 触发水位告警,
该玩家暂不绑,首次生成由懒 claim 兜。
- 跨模块不依赖 system-server:按同名字段建消费侧镜像体 PassportRegisterEvent(topic 是唯一 wire 契约)。
- 主开关 aigc.newapi-quota.enabled 默认 false,关时消费者不装配、服务全旁路(WU2 整体 opt-in)。
单测 9 例:claim 幂等/渠道过滤/池空不抛/并发 dup 收敛/身份分流/懒 claim fail-fast。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 12:22:00 -07:00 |
|
lili
|
fe6079ba62
|
feat(contracts): WU2④ quota_exhausted 跨契约共享枚举同批新增三处
额度耗尽/池空要干净失败给用户可读拒因,而非含糊的「生成失败」。该失败因是跨契约
共享枚举(FailureReasonEnum 头注禁单边扩展),contract-first 同一批落三处保持一致:
- FailureReasonEnum 加 QUOTA_EXHAUSTED("quota_exhausted","生成额度已用完");
- contracts/api-schemas/aigc.yaml FailureReason.enum;
- contracts/dify-workflow-io.json output.failureReason.enum。
落库列 game_aigc_task.failure_reason(varchar(32)) 容得下(15 字符)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 12:21:45 -07:00 |
|
lili
|
c13595fbc2
|
feat(aigc): WU2① new-api 额度池表 V32 + DO/Mapper——离线预建 FREE 条目 claim 抢占
内测 per-user ¥100 额度落 new-api 网关账本,game-cloud 维护一张预置池表:
ops 脚本离线预建 (user+token+¥100) 灌成 FREE 条目,注册/懒 claim 时 CAS 抢一个绑玩家。
- V32.0.0 迁移双落契约源 + huijing-server 执行副本(守门①),列名对齐 ops 脚本 INSERT,
uk_newapi_user/uk_claimed_by/uk_biz_no 三键仿 trade GrantDO 的 uk_biz_no 保幂等。
- NewapiQuotaPoolDO 继承 TenantBaseDO(系统级池,运行时 executeIgnore 跨租户);
Mapper 提供 selectClaimedByPlayer/countFree 水位/claimOneFree 单条 FREE→CLAIMED CAS。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 12:21:33 -07:00 |
|
lili
|
da05ecc0b1
|
feat(studio): WU1 前端——登录页新增用户名密码 Tab(注册/登录)
WU1 §3.5 步骤④前端落地:Login.vue 在 sms/invite 之外加第三个「用户名密码」
Tab,内含登录/注册子模式段控——用户名、密码两输入框,前端做与后端一致的
用户名正则 ^[a-zA-Z0-9]{4,30}$ + 密码 6-32 位预校验(仅提示,信任边界在后端);
复用既有隐私政策勾选、?redirect= 回跳、setLogin 落持久化、user_login 遥测
双带四段,登录成功路径与短信路一致(同拿 LoginResp)。
passport.ts 加 PasswordRegisterReq/PasswordLoginReq 入参接口与 passwordRegister/
passwordLogin 两函数(贴 VO 契约、走同一 request 信封解包),PlayerMeResp 补
username;Profile.vue fallbackMe 同步补 username 空串兜底。entry.zh/en 补 Tab
标题、用户名/密码占位、子模式与提交按钮多态文案、两条本地预校验提示。
自证:npm run build(vue-tsc -b && vite build)退出 0。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 12:04:02 -07:00 |
|
lili
|
28bd5339d4
|
feat(passport): WU1 端点+配置+防明文+单测——两 @PermitAll 端点/remoteAddr/stdout 屏蔽
照 WU1 设计 §3.2/§3.3/§3.4:
- AppPassportController 加 password-register/password-login 两 @PermitAll 端点,IP 一律取连接层
request.getRemoteAddr()(不读可伪造 XFF,§3.3 命门);@ApiAccessLog(sanitizeKeys=password)。
- ApiAccessLogInterceptor 代码级屏蔽两 password URI 的 stdout body 打印(不受 sanitizeKeys 约束的第二条
链路,防明文密码进控制台,不只靠 logging.level)。
- application-staging.yaml wanxiang.passport 加 password-auth-enabled(true)/register-ip-limit(20,60)/
login-ip-limit(30,100)。
- 单测:本地 mvn 34 通过(PassportServiceImplTest 31 + PassportSmsIpCounterRedisDAOTest 3),覆盖用户名占用、
登录防枚举(统一错误码+假 hash 对齐耗时)、禁用拒登、并发撞名兜底、IP 越限 429、Redis fail-open、outbox 原子落、
/me 空安全。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 11:52:40 -07:00 |
|
lili
|
d52696c589
|
feat(passport): WU1 服务层——注册扩参/BCrypt/防枚举/IP 泛化/outbox 生产者
照 WU1 设计 §3.2/§3.3/§3.6:
- registerPlayer 扩 username/encodedPassword 两可空参,按路径落列;默认昵称有 nickname 用之、
用户名路取 username、手机号路后4位;uk_username 冲突报 PLAYER_USERNAME_ALREADY_REGISTERED(不转登录)。
- passwordRegister/passwordLogin:复用 admin BCrypt 范式 encode/matches + buildLoginResp(MEMBER token);
防枚举——查无用户名与密码错误统一 PLAYER_USERNAME_OR_PASSWORD_ERROR,且查无用户名跑固定假 hash
matches 对齐 BCrypt 耗时(惰性以本类 encoder 编出,cost 一致,堵时序侧信道)。
- PassportSmsIpCounterRedisDAO 泛化按 scene 分桶(sms/register/login/invite),Redis 异常 fail-open+WARN;
发码回填 scene=sms,回填 sms-login(scene=login)/invite-register(scene=invite) 服务层纯 IP 闸。
- 注册事务内与建号原子写 outbox(三路共用出口);@Scheduled 投递器扫未投递发 RocketMQ(至少一次,
RocketMQTemplate 经 ObjectProvider 兜底 name-server 未装配、CAS 置已投递防重投)。
- getPlayerMe 补 username + mobile 为 null 短路回空串(用户名用户防 NPE 回归)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 11:52:23 -07:00 |
|
lili
|
987d489b63
|
feat(passport): WU1 契约层——用户名密码注册登录 schema/VO/错误码/outbox
内测种子用户「用户名+密码」注册登录(无短信)的契约层,照 2026-07-07 WU1 设计 §3.1/§3.6 落地:
- Flyway V31.0.0(同落 contracts 源+huijing-server 执行副本):game_player 加 username/password
两列、mobile 放宽可空、加 uk_username、register_channel 值域扩 password;建 game_passport_register_outbox
注册成功事件本地消息表。V31.0.1 回滚补偿仅置 contracts 源(手动执行,不进执行副本避免 Flyway 自动 DROP)。
- PlayerDO 加 username/password(password 仅服务层内部,永不进 RespVO);PlayerMapper 加 selectByUsername。
- PasswordRegisterReqVO/PasswordLoginReqVO;PlayerMeRespVO 加 username。
- 错误码 1_002_090_004/005/006(用户名占用/用户名或密码错误/通道未开启)。
- outbox DO+Mapper(@TenantIgnore 供 @Scheduled 投递器全表扫);pom 显式直依赖 rocketmq-spring-boot-starter。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 11:52:05 -07:00 |
|
lili
|
58d6eb50ca
|
docs(polaris): M4 波三款全交收口台账——夜市美术音频整装完成
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
夜市 M4 art(532161a7)纠正重派收敛:暖夜霓虹 92 图元换装+89 帧图集+4 场景+BGM3/SFX24,两本账过门+
三门零倒退+CDP 8/9。至此 M4 波三款全交(割草 meta/卡牌全工艺态含 BGM 补齐/夜市美术音频),三款全真美术+音频,
M0→M4 全线 25 笔落 origin/dev/2.0.0。M5 关口=真机窗口批(60fps/像素/存档正式槽)+分包压缩+内容侧图 2–5。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 09:59:18 -07:00 |
|
lili
|
532161a7ce
|
feat(art): 《夜市一条街》M4 资产整装——暖夜霓虹 92 图元换装+BGM3/SFX24
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
创始人锁锚候选 A 暖夜霓虹落地(纠正重派:看图+复用批次二产线+镜头单从数据表 import,首派 FAILED 后收敛):
P1 生图 92(顾客 39=13 类×3 态/菜品 30=recipes 真 id/设备 6/UI 图标 14+框 3)→抠图 89 sprite→
图集 nightmarket 89 帧 968KB webp+Phaser3 JSON;场景背景 4(日/夜/高峰/雨,复用锚图);
BGM 3(闲市 95/高峰 125/雨夜 78bpm,mmx music 各截 75s 循环 96k≈902KB 共 2.6MB 懒加载,压缩码率优于卡牌 256k);
SFX 24 类 ZzFX 程序合成零包体;表现层换装(顾客立绘 typeId+态切帧/点单气泡菜品图标/背景昼夜雨切换/HUD 金币/
dock 4 页签,全带缺图降级,readState 语义零改)。
门证据(主会话逐门复验):换装后三门零倒退(logic-smoke 95 断言/tree-check 15 查/单测 30)+两本包体账实测过门
(账一 assets 4.23MB≤10MB/首屏 1.13MB≤2MB,账二引擎首屏传输~2.42MB 与设计书预估 2.35 吻合)+CDP 九门 8/9
(唯 C_frame=本机 headless 无 vsync~110fps 环境采样非换装,mini-desktop 复验)+富三门全过;成本 <¥5(101 呼)。
少年类顾客漂卡通词面顽疾用「去学生词+反卡通厚涂」攻克;单骑手不满态待重摇=已知项。dist/evidence 按惯例不入库。
M5 缺口=rare/critic 立绘 6 类分包/食材图标 12/HUD 图标+9-patch/BGM 无缝循环点/C_frame 真机复验。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 09:55:17 -07:00 |
|
lili
|
cb9f135d7d
|
feat(art): 《山海巡异录》M4 BGM 4 首补齐——mmx music 服务恢复后生成,音频转全量
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
mmx music 服务恢复(创始人确认+主会话亲验),补齐卡牌 M4 缺的 4 首 BGM(全 instrumental 山海国风原创):
bgm-home(空灵探索古琴箫)/bgm-battle(民乐电子古筝战鼓)/bgm-boss(激烈压迫大鼓唢呐编钟)/
bgm-victory(恢弘结算笙箫钟磬);bgm.js 4 个引用路径精确匹配,音频系统从缺文件 no-op 优雅降级转全量播放。
服务间歇故障(生成准备失败/非JSON 交替),有界前台重试逐首补齐,主会话亲跑不派席(haiku 席三陷后台等待坑)。
**如实标 M5 压缩目标**:4 首共 15MB(256kbps 立体声原码),超账A 包体门(≤10MB)——BGM 系懒加载分包非首屏,
压缩(降码率/单声道/OGG)+分包懒加载是卡牌 M5 S21「包体两本账+分包性能」明文活,M4 只负责音频整装到位。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 08:16:10 -07:00 |
|
lili
|
f99c22d066
|
docs(polaris): M4 波台账——割草 meta+卡牌全工艺态收口,10h 核数首验/BGM 服务外阻记账
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
割草 M4(fc23901b)+卡牌 M4(c5100a86)已交验真绿:10h 内容核数首验割草线 11.21h≥10h(承诺首次机器可验);
卡牌演出 v2+juice+程序合成 SFX 24+教学+手感表逐条机验,BGM 受 mmx music 服务故障阻塞(主会话亲验复现)
优雅降级待恢复补;夜市 M4 art 首派 FAILED(串台数据/环境误判)纠正重派在飞;子代理后台等待坑全程 5 次纠偏。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 07:28:55 -07:00 |
|
lili
|
c5100a8670
|
feat(polaris): 《山海巡异录》M4 全工艺态——演出 v2+juice+程序合成 SFX 24+教学局+手感表
演出 v2(战斗表现升级接真卡插画图集,与逻辑经事件流解耦不改 battle-core/run-core 语义):presentation.js
(演出计划+手感参数+教学固定序纯逻辑)+atlas.js(图集帧索引)+run-scene 接线(juice/拖拽/音频/教学层/debug 钩子);
SFX 24 程序合成 sfx.js(链环八级五声音阶递升/出牌五行 5 变体/命中三强度/受击能量抽弃洗得金购买删卡翻牌遗物词缀
点按选中周天胜负 stinger,零包体);juice(手牌选中浮起 1.55×抬 30px/上滑 62% 线打出走 route 单源/伤害颗粒/
链轴金环扩散/周天全屏闪/爆字 48px+屏震/敌兽呼吸/程序粒子上限 24);教学局固定序。
门证据(主会话逐门真跑复验):九门全绿(battle-core/logic-smoke/run-core/run-smoke/save/meta/static-screen/
scene-smoke)+手感门 presentation.test 42 断言绿+数值 CI PR 巡罡使 A0 58.2% 入带+构筑指纹去重 100%>85%,
96k 矩阵未回退;真实集成进战涸泽鲛→教学 intro→固定序→9 批事件全 ≤1.6s。
手感表 §7.2 逐条机验绿(触摸响应 80ms/放大 1.55×/上滑 62% 线/结算爆字抖屏震命中停顿全长≤1.6s/演出加速
0.4×/误触回手/粒子上限 24);真机时延·像素观感·L2 rubric LLM 项如实标待 mini-desktop 窗口;两处如实缺
(设置页全局跳过=无设置屏/卡敌详情二层与两段式冲突未加)。
**BGM 4 首(菜单/战斗/Boss/结算)音频系统+清单+淡切+手势解锁完备,但 mp3 文件受阻 mmx music 服务持续故障
(主会话亲验复现同错「音乐生成准备失败 HTTP 200」=真实外部阻塞非席位失败),缺文件 bgm.js no-op 优雅降级,
待服务恢复 haiku 机械补生成。** M5 头号=包体两本账真机实测+图集分包懒加载(现 13 atlas 全量载)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 07:24:27 -07:00 |
|
lili
|
fc23901b9a
|
feat(polaris): 《山海行纪》M4 局外 meta——角色8/天赋树48/图鉴成就/存档定容,10h 核数首验 11.21h
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
局外 meta 全落 additive(纯逻辑内核语义零改动):meta-tables.js(8 角色差异化起始符箓/48 天赋树 DAG/成就 60/
图鉴投影/每日固定种子/schemaVersion,零魔法数)+meta.js(购买+可达+解锁+SaveEnvelope 读写+deriveMetaBonus);
sim 消费 meta 增益/阵亡续命/图鉴追踪 additive;出击页 roster 真投影+局末回写+每日入口。
门证据(全前台真跑,主会话逐门复验):游戏单测 44/44(原 27 零倒退+M4 新 17)、存档兼容门 12/12
(往返逐值一致落信封/未来版 fail-closed 不毁档/0 版 migrators 升 v1 回写)、**10h 内容核数首验 11.21h≥10h 下限**
(§5.4 机械和:首通 3.17+角色 2.42+难度 3.88+收集天赋 1.75,roster8/天赋48/图鉴51/成就60 真表溯源,
地图5·D2–D5·敌32 为 M5)、L3 结构面 3/3(rubric 分数纯 LLM 软判如实标待窗口不写代码校验)、天赋树可达门 6/6
(48 节点/id 唯一/无悬空依赖/DFS 三色无环/6 根/根闭包全可达)。
c2 平衡离群外科手术未收敛已回退(精化根因=rand-4 92% 是三投射符器协同驱动非缚灵桩携伴,削缚灵桩无效),
按「别硬凑」留 M5 夜批多参数调参。M0–M3 全回归:三场景 7/0/压测 p95 1.617ms/包体 328,848B≤0.6MB/
首图录证 d0d1 与 M3 逐值一致(meta additive 零偏移)/整库插件 269/269。M5 存档正式槽切换是发布门硬依赖。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 06:55:36 -07:00 |
|
lili
|
4e51633af6
|
docs(art): 山海资产一期批产留痕——兽谱增补+良率成本+拼板图(clean-room 审计链)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
割草与卡牌资产一期批产的可复现审计链:manifest.jsonl(逐张 prompt/参数/成本/淘汰原因留痕,clean-room 证据)、
兽谱-增补-{行纪,巡异录}.md(新兽谱面单源)、良率与成本档、6 张拼板图(创始人眼验记录:行纪 P1/P2、
巡异录卡全量 154/卡插画 66/遗物 40/新批抽样)、少量 rejects 留证。
原图源帧目录(images/ 19M+images-巡异录 7.8M)不入库=可从 prompt 复现的中间产物,归宿 W-ASSET-SRC 资产库;
审计链靠 manifest.jsonl 的 prompt 留痕+游戏内已入库图集即足。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 04:36:32 -07:00 |
|
lili
|
16c6af664b
|
feat(art): 《山海巡异录》资产一期批产(锚 r1)——154 卡+遗物 40+敌兽图集入库
职业甲 66+职业乙璇玑使 66+中立 22=154 卡插画位(真 id 对齐 M3 定容 tables.js)+遗物 40 图标+敌兽 39 立绘
(act1/2/3 分页)+UI 15+bg 6;10 图集页矿彩国风锚 r1 一致,主会话眼验(璇玑使星官×山海/遗物透明底/无走形)。
账A 契约包体 7.33MB(webp atlas 6.16MB,门 ≤10MB);卡面 154=2.57MB 贴 §9.3 预算 2.60 达标;机检门四检
(帧数对账/webp 可解/帧名唯一/bg 齐套)全过。累计 282 外呼 ¥9.31、物料效率 96%、0 质量淘汰。
clean-room 主体词守则(金乌/阳乌成神鸟非龙、应龙鳞作鳞片特写、符牌素面无字);清陈旧 beasts-act1 残留单页。
如实两项归开发席 M5 降尺寸分包(非本批):敌兽 39=2.93MB 超预算 1.40、场景 bg 6=1.17MB 超 0.50;
夔 kui-niu「无角独足」谱面 r1 文本通道不可达暂占位、列升档 B 多参考图候选头名。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-07 04:35:40 -07:00 |
|