lili
|
cbfd4d871b
|
feat(acceptance): 闭合 playtest v3 与 A+ 可信消费链
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
固化 Match-3 生产者、视觉、音频与双 Judge 证据闭包。
将《山海行纪》r1.1 绑定新的不可变 release,并以生产预检现场核验 bundle、Registry/2 和 25 项 Writer 快照。
同步地图1平衡锁值、跨游戏回归修复、验收契约与 SoT 证据。
|
2026-07-28 20:16:13 -07:00 |
|
lili
|
686aaaa421
|
feat(reference-assets): 签认《山海行纪》并闭合可信消费门
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
冻结地图1二十分钟纵切版的平衡、证据与金标登记。
新增 ReferenceAsset/2 清单、策略、release、受信快照及 CLI/Service/acceptance provenance /4 消费链;保持 survivor live、R1 签名与部署关闭。
|
2026-07-28 09:11:54 -07:00 |
|
lili
|
87777975c7
|
feat(w-axis): R1 生成可信闸代码收口(actor/judge闭合+W-GOLD-LIVE+full_gate+三批闸门)
actor/judge prompt eval 闭合: actor 3.0.5 正文强化+baseline(7轮); judge 3.0.14 正文强化+anyTerms同义词补全+baseline(judge-a 13轮/judge-b 33轮); registry/checker 版本对齐+顺序锚点 fail-closed 双保险
W-GOLD-LIVE live_prompt: play-loop 契约开口(request/3+provenance/3+ReferenceAssetRecord/1+Registry/1+迁移清单15条); cheap_verify 切v3+消费对账六闸(只消费active)+生成prompt注入接线(0 active不注入); Node runner playtest-v3.cdp.cjs 升/3+绊线恢复; 真模型回归验向后兼容
full_gate+三批基线: full_gate.py 集成runner串六子门+降级+22测; baseline_gates.py fresh25阈值+historical11预期表(2 needs_human交创始人定标)+shadow20框架+38测
注: registry cheap-system 登记 1.8.0→1.8.1 同步此前在途 cheap-system.md frontmatter 升版(修 pre-commit 版本漂移); cheap_verify/cheap_studio/validate/test_acceptance_v3/test_cheap_service_driver 为在途M含本会话叠加+此前W-AXIS在途(同一线无法hunk分离); 3红测试根因与raw审计未入本提交
|
2026-07-25 18:47:47 -07:00 |
|
lili
|
8d851ea716
|
feat(cheap-gen): W-AXIS-V2 波2——取证契约退役+提示全加载链清洗,四门∧测试员为唯一验收链
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
opus 执行位交付、主会话四步验收过(三套测试亲跑/红线 diff 亲读/冒烟截图亲眼):
- 验收消费:check 新增源码级插件调用存在断言(_pluginCallPresenceErrors 词法层,
接替 F_wiring 真接线护栏);_forensicsView「必须实现」拦截摘除,降级为可选调试
接口(handleTap 输入契约与 ctx.log 日志纪律保留);gate_judge 放行措辞对齐四门
- play-spec/驱动器退役(逐件裁定 10 件):gen.mjs done 门自动产 play-spec 摘除、
cheap_gates/cheap_studio/cheap_modify/service_driver 调用摘除、_read_driver_type
改读 evidence/playtest/playtest.json;golden-spec 三工具(auto_vs_golden/bake_off/
compare_node)显式封存;ensure_play_spec 两实现保留一个版本窗口(只摘调用不删码)
- prompt 全加载链清洗:cheap-system.md v1.6.3→1.7.0(删 _forensicsView 自动验收
契约红线与全部 targets/occupied 语义,五法句/品类指路同步),cheap_roles 内置
回退逐字节同步(test_roles 12/12 证 parity),modify 切片经运行时切块自动同步;
5 品类 skills+littlejs 手册+recipes×2+模板 8 件+README 6 件教学清洗,真设计
价值(单击 casual/可解性质/双层反馈/latch)保留
- 批账:hard_genre_batch/xtheme 行加 playtest 段,_row_total_cost 修 shadow 下
测试员成本漏算(v2 取 max 防双计)
验收(主会话亲验):pytest cheap-worker 512 绿 + tier2 141 绿 + node 49/49;
25 局基线新旧口径重放对照——真坏 5 局全拦(floor 拦 2/测试员拦 3)、无一例旧拦
新放,翻案 2 局均为破案坐实的仪器误杀;n=3 冒烟(mode=v2)全链绿:w2v2-sim
harness verdict.pass=True 而测试员 reject(机械放行测试员逮住,盘上双证)、
w2v2-sim-fix 现象反馈两轮回喂→fix2 收敛(配方显示修成,局内截图亲眼);
rg 零残留(模板残留均为「验收不读它」的降级调试接口合规形态);真跑 ¥8.4。
已知余项:repairFeedback 有产地、Service 续修环消费者未接(测试员 reject 不入
RepairMiddleware,续修判据仍四门)——是否接入随波3 校准数据一并裁;v1 配置级
回退窗口关闭为创始人知悉项,genconfig 默认 mode 仍 shadow、切 v2 归创始人。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-10 09:21:04 -07:00 |
|
lili
|
5bcaf6ac1e
|
feat(cheap-gen): W-AXIS-V2 波1——测试 agent 生产化+三路统一验收编排器+字段迁移
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
opus 执行位交付、主会话四步验收过(测试亲跑/红线 diff 亲读/硬证亲眼):
- playtest.cdp.cjs 生产版(§3 八件:DPR=1 playtest/1 坐标协议/坐标尺/落点回显/
同点硬提示/反早退/预算 14→24 随进展扩/fail 二掷显式 seed+清存档/图像自检
fail-closed exit=3)+ serve-and-playtest.sh;证据落 evidence/playtest/roll-N/
- cheap_verify:project_floor 四门投影(预筛权威唯一产地,绝不复用 harness 原生
verdict.pass)+ run_playtest(子进程/超时/记账/playtest.json 真相层/端口派生避
Chrome unsafe 5060/5061)+ run_acceptance 编排器(v2=floor∧测试员阻断/
shadow=旧口径+shadowV2Accepted 对照/v1=旧判定器;修复反馈只引现象段)
- 三路接线:cheap_studio/cheap_service_driver/cheap_modify 两档全改调编排器,
create 与 modify 单一验收标准
- §4 字段迁移:run-summary acceptanceVersion+playtest+floor 段、trace.playtest
additive(firstPlay 三字段镜像 ReadinessScorer 口径)、批账 floorPass+accepted+
acceptanceVersion(verdictPass 仅对照);result_out 三级取值(floor→verdictFull
投影→verdict.pass 回落)、gate_judge 续修触发器切四门、xtheme 同批;判定语义单轨
- §5 Java 读侧:ReadinessScorer 可玩性/firstPlay 优先读 trace.playtest,
GenMetrics 归因加 playtest/tester_degraded(向后兼容,未编译验证——本机无后端
构建环境,待 mini-desktop 构建窗口)
- genconfig/generation.yaml:acceptance.mode 三态(波1 灰度默认 shadow)+
playtest 旋钮(steps/二掷/超时/成本上限);judge 段未动
- 单测 32 项新增(二掷/图像 fail-closed/mode 三态/投影/现象分离/退出码/unsafe 端口)
验收:pytest 512 绿 + node 44/44(主会话亲跑);10 局考卷生产件重跑判对 9/9
(真坏 3/3 零放行、假阴 0/6,heritage-r4/puzzle-r1 二掷翻案、sb2 假超时根因=
Chrome unsafe 端口已修);Service E2E(w1v2-e2e1 shadow→v2 一发收敛)与 modify
回归(w1v2-mod1 ROUND_MS 60000→45000,src 与局内截图双证)真浏览器硬证;
总成本 ¥2.3。已知余项:真续修回喂环仅单测覆盖(波2 n=3 冒烟自然覆盖)。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-10 07:07:08 -07:00 |
|
lili
|
85f48228cd
|
feat(cheap-gen): W-AXIS 波3 知识层补强+收尾——tsc 顾问门+recipes+暗资产接线+n=5 基线台账
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
- tsc 顾问门:typescript devDependency + tsc-advisory 测试档;顾问性(永不阻断),
金标 10 款零误伤抽验
- recipes/ 五篇高频场景索引(命中矩形/计时器/资产回退/场景机/结算演出,「抄这段形态
+头号病根」)+ littlejs-game-dev §0.5 卡壳就查接线
- 暗资产接线:plugin-capability-map(11 注入+1 取证+6 储备逐件裁定)+
engine-capabilities-brief(≤3KB 蒸馏)+ api.d.ts/game-host.d.ts 补插件指针;
三方一致性对账门 plugin-surface-gate.py(含 cwd 锚定修)挂 pre-commit+Gitea Actions
- hard_genre_batch 参数化(五品类 n=5 批跑驱动,checkpoint 续跑)
- n=5 基线台账入库(gitignore 例外 add -f,只入台账不入游戏产物):
wax-baseline.jsonl 25 局逐局记录(含判定仪器订正批注:cap1500 重判/图像盲 M3 重判,
只加字段零改值)——终数:操作口径 14/25=56%、质量口径 18/25=72%;
品类 narrative/heritage 5/5、trpg 4/5、puzzle/sim-business 2/5(缺口逐局有名有姓,
根因见 07-10 v2 plan §1);旧「80%/39%」口径正式作废存照
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-10 04:27:18 -07:00 |
|
lili
|
882ca3f357
|
feat(cheap-gen): W-AXIS 波2 判定语义重置——独立模型玩法判定阻断+拆残笼+判定档切 M3
裁定三落地:accepted = 机械预筛 ∧ 独立模型玩法判定,九门 pass 降为「未见明显死」预筛。
- 波2a 玩法判定器(cheap_verify.py):读 brief+run-summary+全程截图(含新增局中连拍
midplay-1..N,play.cdp.cjs 只读并发拍、不进任何门判据),布尔裁 broken/hollow/off_brief,
fail-closed;判定真相层落 evidence/judge.json + verdict.json 写回 accepted/judge 段;
金标夹具 fixtures/judge-golden/ + judge_golden.py 校准跑批
- 波2b 拆残笼:check 词法 tokenizer 替换 stripCode 正则(字符串内 // 假阴根修,292 在册
源零差异);prompt v1.6.3 外科清洗(两层奖励→纯设计语/删盲驱动器围设计/删熔断恐吓),
registry 热取==内置逐字节一致(cheap_roles 内置回退同步);edit_file 空白归一+近似片段提示
- 判定器补修:空输出有界重试一次(glm 思考吃光 max_tokens 时 content 空)+重试放大公式
反缩 bug 修(旧 min(×2,6000) 大 base 反缩)+finishReason 落盘;imagesSeen 模型自报+
盲检微扰重掷、两掷均盲=仪器故障 degraded(闲鱼中转静默丢图实锤,不再错杀 hollow)
- 判定档切 MiniMax-M3(创始人 2026-07-10 拍板,裁定三①边界随 v2 plan 修订):
generation.yaml judge.model+max_tokens=202752(512K 网关实探 400 拒,取实探上限);
3 例盲案 M3 重判全 accept、¥0.026/局
- 三路消费对齐:CLI 预筛语义修(cheap_studio 喂 verdict.pass 而非 finished,违裁定三的
放行已纠)/Service 路 apply_gameplay_judge 显式 prefilter 参数/result_out 权威改读
accepted(无键回落预筛,旧产物兼容)+trace.gameplayJudge additive 透传;
tier2 gate_judge/genconfig 同步判定配置与消费
测试:test_gameplay_judge 33 项新增,全仓 pytest 480 绿;真判定闭环 accept ¥0.061。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-10 04:27:18 -07:00 |
|
lili
|
dc89701fcc
|
feat(cheap-gen): W-AXIS 波1 真相层——turns 全文落盘+per-run 归档+evidence 清单化+failureLayer
治「真相层缺失」病根(历史上模型文本/工具返回/门反馈零落盘、失败 run 被同 gid 重跑
覆盖,归因只能建在聚合数字上):
- cheap_turns_sink.py:逐 turn 全文落 amgen-<gid>/turns.jsonl(模型文本/工具全参/
工具返回/门续修反馈);observe-only middleware、best-effort,接线失败绝不阻断生成;
CLI 与 Service 双路接线(cheap_run/cheap_service_app)
- per-run 归档:同 gid 重跑前工程整体归档 _amgen-archive/<gid>-<ts>/,失败现场不再被覆盖
- evidence 清单化清理:按白名单保留,跨 run 残留(旧截图/旧 verdict)开跑即清,防证据串局
- failureLayer 三层归因:run-summary 落 generation/gate/gameplay 失败层字段,
聚合报表可分「生成没跑完/机械门挂/玩法层拒」
主会话亲验:两局真跑归档 179KB、turns 含门反馈全文;pytest 新增三个测试档全绿。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-10 04:27:17 -07:00 |
|
lili
|
1c4d5838ec
|
fix(cheap-gen): 撤写锁·全放开 + max_tokens 512K——创始人纠偏 + 浏览器验收坐实
创始人 2026-07-08/09 两次纠偏,各揪出一个写锁法漏的真根因:
① 浏览器验收:写锁 core.js 致「榫卯」brief 出「陶艺」游戏(主题漂)——规范应是文件位置
+ 绝对通用 plumbing(L1_FIXED 已锁 host-config/game/index/entry/main),不该把模型限死到
只改几个文件(只改几个文件游戏做不好玩、切不中题)。→ 全撤 write_whitelist,game-logic/
core/render/assets 全放开,模型自由做好玩切题游戏;截断类失败靠 harness 门兜不靠锁。
② max_tokens:实测 M3 单轮能输出 17000 tokens/finish_reason=stop、accepts 40K/512K 无报错
——16K 是自设限非模型限;cheap 走 OpenAI inline thinking(thinking 吃 output 额度)致大文件
整写截断(heritage 黑屏/thrash 病根之一)。→ genconfig max_tokens 16K→512K(统一上限,可调)。
浏览器验收 it8(不锁+stripCode修复+足量token):heritage=榫卯工坊·直榫凳·选料→画线→凿卯→
修整(切题修好);action=撞了得分535·1771米·翻转30(坏死修好);trpg=已清9层3次升级(死锁没了+
内容更全);全 1-2 attempts 无 thrash。残余 idle-sim「↑NaN」(render.js:164 upgradeCost=NaN,
模型数值 bug,待修)。build_reskin_system_prompt 撤锁后未用(留待清理)。
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
|
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
|
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
|
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
|
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
|
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
|
c372837762
|
feat(deps): 升级 AgentScope 2.0.2→2.0.3(代码+文档,创始人 2026-07-06 拍板)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
不为某个新特性,而是没道理把底座停在带并行 tool-result 缺陷的补丁版;2.0.3
是同线相邻补丁版,升级面窄、收益确定。承 tech-decisions §11-13「护城河进洋葱、
框架件谨慎审计」线。
代码:两 worker requirements 钉 2.0.3+溯源注;4 个 cheap-worker patch 的版本
guard 更 2.0.3——主控逐一源码核实 2.0.3 锚点仍成立:compress_context@_agent.py:259
未漂移 / _parse_stream_response@_openai_chat/_model.py:297·index 分桶:417 未漂移 /
list_tools@_local_workspace.py:660 / get_toolkit 装配点迁 _chat.py:354(patch 替
绑定名不依赖行号);patch 头 pin 声明同步 2.0.3+复核标记,根因 2.0.2 期实证保留。
文档:current-truth 面扫除(agentscope-2.0-facts 改掉一处「2.0.3 是笔误」错陈述+
行号漂移开源码更新 594→622/136→162/33→42/857→884/875→902、tech-decisions §15
升级决策散文、运行时 SoT 当前选型句、活代码注释、tier2 README 死链修);留痕层
(plans/HANDOFF/patch 根因分析/ADR 历史核验句)按两层纪律不动。
兼容三证:源码逐处 diff(RedisMessageBus/OpenAI formatter 零变化、Anthropic
formatter 仅并行 tool-result bug 修、ModelCallEndEvent 无变化、MiddlewareBase
加性 get_middleware_key)/ cheap 393+tier2 140+patch 20 测试全绿 / dev 两 venv
升级后 3 服务健康。收敛真跑:cheap 便宜档 ReAct 全链路 356 trace 零升级异常+
真出游戏过九门 9/9;tier2 Anthropic 工具循环跑满 40 轮写 15 文件 gen.log/trace
零升级异常(decision=fix 属 tier2 生成质量、非升级回归)。
2.0.3 新增原生 ReplyBudgetControlMiddleware(历史反复核验 2.0.2 不存在的类)/
tool 级洋葱/RAG/mem0,列而不迁(自建 ¥ 两段式 fail-closed 硬闸是护城河,原生
token 软控替不了),follow-up 见 §15。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-06 02:06:14 -07:00 |
|
lili
|
958f78f523
|
feat(obs): 阶段四观测面二 Python 侧 token metric——llm_tokens{kind} + llm_cache_hit_rate
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
补面五(game-cloud GenMetrics)拿不到的两个纯 Python 侧 token 维度 metric:
llm_tokens(Counter,kind=input/output/cached)与 llm_cache_hit_rate(Histogram,
每 run 命中率 [0,1])。复用波③ 既有 OTLP 基础设施(开关 CHEAP_OTLP_ENDPOINT、
端点解析、代理旁路、service.name=cheap-gen-worker、best-effort 铁律),换 OTLP
metrics 通道;默认关字节不变、绝不咬生成、与面五 5 个 metric 零重叠不双计。
关键约束(主控亲验坐实):生产 Service 路拿不到 cached——trace.py 组 cost.tokens
只填 in/out,agentscope ModelCallEndEvent 只有 input_tokens/output_tokens 无
cached 字段。故 Service 路(on_reply 只读嗅探 in/out、_metric_emitted 幂等)传
cached=None 如实降级:只发 input/output 计数,不发 cached 计数与 cache_hit_rate,
绝不塞 0 伪造命中率。CLI/批跑路(RecordingOpenAIChatModel.records[2])cached 可得、
两 metric 全发。生产 Service 路发 cached 需 per-POST RecordingModel 或 tier2
breaker 存 cached token,均超本次最小改动边界,列 follow-up。
主控终审:亲跑 tests/test_cheap_otlp_sink.py + test_cheap_service_app.py 29 passed、
全量回归 392 passed/1 skipped;逐条读承重 diff(默认关守卫/best-effort/不双计/
cached 诚实降级/MeterProvider 进程单例防线程泄漏/cached 截 [0,input]/除零守卫)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-05 23:57:40 -07:00 |
|
lili
|
c6d6d39a2a
|
feat(cfg): W-CFG-KB K3 知识包治理接线——knowledge 配置块+激活发布 Nacos+worker 订阅热物化(复用阶段二三·默认关)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
把切片一知识件外置接进受治理配置集,一条「改知识件→定版→激活→worker 物化生效」链,复用配置控制面阶段二/三治理机器零重造:
game-cloud:knowledge 作 content_json 第四内容块(仿 readiness),与 routeA/routeB/readiness 互斥、sanity(packageId/
activeVersion 非空);走向相反=真下发(readiness 进程内空载荷,knowledge 跨进程),激活编成一条路 B 载荷
{knowledge.packageId,knowledge.activeVersion}、经 KNOWLEDGE 档独立 dataId gen-hot-params-knowledge publish 给 worker;
pathA=null→dispatch/reconcile 只走路 B、激活编排一行未改。加 AigcConfigTierEnum.KNOWLEDGE+KnowledgeConfigKeys+NO_ROUTE 文案。
worker:kb_store 加进程级激活版本源槽+attach/detach(对称 genconfig),resolve_active_version 取值链改为治理源(Nacos)>
env 钉版>最新 committed;新 kb_nacos.py(KbActiveVersionSource 订阅 dataId、按 packageId 匹配、激活变更即重物化)+
setup_knowledge_activation() 启动物化+(Nacos 启用时)attach,cheap_service_app 紧接 genconfig 热源挂它。复用 genconfig_nacos 启用旗+代理旁路。
默认关字节不变(TIER2_KB_ROOT 未配→不物化不订阅、read_file 回落仓根;无源→resolve 回落 env/最新);缺文件显式失败沿用
(materialize_active 照抛保留 kb_root、kb_nacos 只在 best-effort 边界接住不咬生成);全 best-effort。admin 本轮做前端契约点
sanity.ts,富编辑视图=紧接下一片(与 readiness 一致)。
主控终审:git 完整(HEAD 未动·无破坏操作)+11 文件精确+读码坐实互斥/routeB载荷/取值链/best-effort/默认关/缺文件失败没削弱
+亲跑 Java codec 34+activation 21(BUILD SUCCESS)+Python test_kb_externalize 21 全绿。真 Nacos 激活端到端排窗口。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-05 22:50:10 -07:00 |
|
lili
|
21b5320f3f
|
feat(cheap): W-CFG-KB 知识件外置切片一——知识包存储(复用 ASSET-SRC 范式)+ 物化 + read_file shadow(路乙 MinIO·默认关)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
知识件(喂 agent 学怎么生成的设计范式:skills/黄金脚手架/few-shot/tier2 RAG)原散在 worker repo 检出、
read_file 按硬编码路径自取,改一条范式得重部署。本切片(K1 路乙 MinIO,创始人拍)外置成可热换知识包:
- kb_store.py:KnowledgePackageStore(LocalFs/Backend)存 MinIO + manifest 落 MySQL(专用表
cheap_knowledge_package_version + 专用桶 cheap-kb,与 ASSET-SRC 正交不合表);复用 store.py 纯工具
(_canonical_content_hash/derive_version_id/_is_safe_rel_path,store.py 零改动)+ manifest-first 半落库
(pending→put→committed、fetch 只返 committed、缺源标 missingContent 不静默)。
- materialize_active:按激活版取回→staging 逐文件 sha256 校验(K2 寻址断言)→原子换入知识根(旧挪 .prev);
缺文件/取不到/指纹不匹配【显式失败】(类比 ASSET-SRC 缺源),kb_root 不动=回落上一份完整包。落点
TIER2_KB_ROOT 在 git 检出之外(deploy-safe,防 reset --hard 抹)。
- cheap_run.py read_file shadow:先查知识根同相对路径(热换即生效)、回落仓根(api.d.ts 等代码不外置);
TIER2_KB_ROOT 未配时短路、read_file 字节不变(默认关);两根守只读+200KB+路径不逃逸、越界即拒。
cheap_roles.py 硬编码路径不改(shadow 在解析层处理)。
K3(yudao 治理+激活推送+admin)= 后续切片,留接缝点(resolve_active_version/materialize_active/default_kb_store)。
主控终审:store.py 零改动 + read_file 默认关字节不变 + 缺文件显式失败/原子回落读码坐实 + 独立表桶 +
亲跑 test_kb_externalize 14 + read_file 回归 18 全绿。真 MinIO 物化闭环排窗口(cheap venv 无 pymysql/minio)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-05 21:37:50 -07:00 |
|
lili
|
5b34807e73
|
feat(cheap): 面四 Python 三跳 traceparent 打通——便宜档生成串成单条 trace 树(观测阶段四)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Java agent(面一b)已在派发出网自动注 traceparent;本片补 Python 侧三个断点,让一次便宜档生成
在 Tempo 里是 Java→worker(:9501)→cheap-service(:8300)生成 的单条 trace 树而非散落 root:
- 断点①:worker_service.do_POST 抓入站 traceparent 进 job._otelCarrier(self.headers 仅此可得);
process_job 用 worker_span_scope 在入站 context 下建 worker SERVER span、包住真生成调用(span 建在
真处理 job 的 worker 线程,非只入队即 202 的 do_POST)。
- 断点②:driver 读当前 context(worker span 经 asyncio.run 透传进协程)inject 成 W3C carrier,随出站
:8300 各 POST header 带上;同份 carrier 写会话 sidecar。
- 断点③:/chat reply 在 AgentScope 后台任务跑、与 HTTP 请求解耦读不到实时 context——故走既有 C2 sidecar
桥:cheap_service_app 工厂读 sidecar traceparent → parent_carrier → CheapOtlpSink 每步生成 span 挂入站
context 当子 span(不再私有 root)。
传播 helper 集中 cheap_otlp_sink(extract/inject/worker_span_scope);全程 best-effort(otel 不可用/carrier
坏/Collector 不可达都退化成少串一段 trace、生成异常原样穿出)、CHEAP_OTLP_ENDPOINT 默认关时零行为变化
(parent=None 退私有 root、sidecar 不写 traceparent 字节不变)、代理旁路红线未破、业务 traceId 并存(§10 决策5)。
test_trace_propagation.py 14 例(含端到端三跳单条 trace 树,InMemorySpanExporter 证父子链+同 trace_id)
+ test_worker_service +2;主控亲跑 40 passed(3 文件)+ 全量 364 passed 1 skipped 无回退。
真跨进程 Tempo trace 树验证 = dev 开 CHEAP_OTLP_ENDPOINT 重跑 follow-up。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-05 20:30:04 -07:00 |
|
lili
|
9f42cd2c7b
|
fix(cheap): requirements.txt 补声明 nacos-sdk-python==1.0.0(dev 起栈真暴露)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
cheap-worker 经 sys.path 复用 tier2 的 worker.genconfig_nacos 接配置控制面热源,但
cheap-worker/requirements.txt 一直漏声明 nacos-sdk-python(tier2/gen-worker 有声明)。
后果:新建 cheap venv 起 Service 时 `import nacos` 失败→Nacos 热源静默不 attach、回落本地
YAML(门参不热更)。2026-07-05 dev 环境全栈起栈时真暴露(便宜档 Service 首启 ModuleNotFoundError)。
补声明钉 v1.0.0 与 tier2 同版。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-05 10:10:50 -07:00 |
|
lili
|
daa49e5864
|
feat(obs): 便宜档主生成路 OTLP span sink + 双入口 fan-out 并接(阶段四观测 波③ T3-1)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
便宜档 Service(cheap_service_app)+ CLI(cheap_studio)主生成路此前只经 make_jsonl_sink
写 trace.jsonl、不产 OTLP span,观测栈 Tempo 看不到便宜档生成。新接 cheap_otlp_sink:与
make_jsonl_sink 同签名,把每步 TraceStep 推成 OTLP span 发 mini-infra Collector
(service.name=cheap-gen-worker),span 属性映射对齐 tier2 studio_sink 的标准 gen-ai 键。
- 默认关(env CHEAP_OTLP_ENDPOINT / infra_config 取不到即 no-op),build_trace_sink 原样返回
jsonl sink、现有行为字节不变;开则 fan-out(jsonl 先落盘照旧、OTLP 额外发一份,各 best-effort)。
- best-effort 铁律:缺 otel / Collector 不可达 / 发送失败 → 记一次告警、永久降级 no-op、绝不抛、
绝不咬生成主链(设计 §8);observe-only 从不回写生成/门判定字段。
- 惰性 import otel(顶层零重依赖,对齐 build_cheap_app 惰性红线)+ 代理旁路(T3-4,建 exporter 前
把 Collector host 并入 NO_PROXY,绕 clash fake-ip)。
- provider 做进程级共享单例(非 per-run):长驻 Service 中间件工厂 per-turn 建 sink,per-run 会逐局
泄漏后台上报线程;trace_id 只作 per-span 属性,BatchSpanProcessor 一条后台线程跨局复用,atexit 兜底 flush。
- 双入口都接(Service :273 + CLI :214),fan-out 不破坏既有 jsonl 落盘。
终审(亲跑非照搬):cheap-worker/.venv 全套 350 passed/1 skipped(含 span sink 11 例)、零回归、
py_compile 三文件过、docs-gate 七检绿。跨机 OTLP 命门已验(mini-desktop→mini-infra:4318=200)。
真发 Collector→Tempo 见 span 排 mini-desktop 起服务后验。
T3-3 metrics 空口按红线#7(不留孤儿)剔除:本波无生产调用方,真值填充随波⑤ T5-2 带埋点调用方一起落。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-05 09:16:16 -07:00 |
|
lili
|
d9def7d901
|
feat(cfg): 步骤4 收尾两针——两 Service 入口接热源工厂(旗默认关=字节不变)+ genconfig __main__ 自检块期望值随单源现值修正(50.0/60,阈值批 bfeaea2d 漏改自检块)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
入口接线:tier2 service/app.py:main 与 cheap_service_app.py:main 对称各调 build_and_attach_hot_source(tier=...),
工厂自带启用旗(TIER2_GENCONFIG_NACOS 默认关)+ best-effort,无条件调不再包旗;两档各订各 dataId 不串档。
验证:tier2 126 passed / cheap-worker 339 passed 1 skipped / genconfig 自检块全 OK / py_compile 两入口过。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-04 09:23:20 -07:00 |
|
lili
|
0f55a6f77d
|
merge(工单h): 便宜档 Service 工具面再封口——关 Planning/Team/Schedule 三组框架注入(源码证据链坐实·包裹 _chat.get_toolkit 本地绑定·重建干净 Toolkit·fail-open 降噪件)· 333+1skip · fable 终审过(skip 件=apscheduler 集成测,部署树复跑)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-04 00:50:23 -07:00 |
|
lili
|
c5ee8ef5e9
|
feat(cheap): 便宜档 Service 收窄工具面——关 Planning/Team/Schedule 三组框架工具(工单 h)
2.0.2 get_toolkit(app/_service/_toolkit.py)除 workspace 内建外,还无条件并入 Planning
(Task* :109-110 "always on")/Team(Team*·AgentCreate :144-168),并按 session model 挂
Schedule(schedule_tools 组 :117-142)。便宜档单机单游戏用不到,纯工具面噪声(80011 flail:
12+ 工具语义重叠是根因之一;护城河 I1 六工具白名单邻域治理)。
修法:cheap Service 进程内 monkeypatch 包裹 _chat.get_toolkit(_chat.py:33 本地绑定、:240 唯一
装配调用者),调原函数拿到 Toolkit 后重建干净版:basic 组按 .name 剔 Planning+Team、丢整个
schedule_tools 组;workspace skills/MCP、六工具、后台控制 ToolStop 一律原样保留。钉 agentscope
==2.0.2、版本漂移响亮告警仍应用;作用域=cheap Service 进程(只跑便宜档 agent),tier2 独立进程
不受影响;绝不改 venv/site-packages 本体。惰性 import _chat(牵 apscheduler)保无 [service] 环境
可 import 本模块。
测试(tests/test_planning_team_tools_patch.py):4 filter/wrapper 单测(补丁后无三组 / 保六工具+
ToolStop / 过滤幂等 / 装配幂等)本机全绿 + 1 真 _chat 集成测 importorskip apscheduler(本机跳、
mini-desktop 全跑)。全套 pytest tests/ -q = 333 passed, 1 skipped。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-04 00:46:09 -07:00 |
|
lili
|
eb95441dd6
|
fix(cheap): 收口采集重复打印幂等(工单 f)+ bake_off brief 全缺 fail-fast(工单 i)
工单 f:_CheapRunCollector._flush 在 on_reply 的 REPLY_END / except / finally 三条降级路
会被调 ≥2 次,落盘每次覆盖是幂等的(采集语义不变、driver 恒读到最新),但「收口采集落盘」
成功行重复打印纯观感噪声。加实例标记 _flush_logged 只在首次成功落盘时打,后续静默覆盖
(失败行不受此门、每次都报便于诊断)。
工单 i:run_bakeoff 对无 brief 品类 skip+continue,全缺时 valid 空 → aggregate(genre_runs,[])
的 overall=(not [])and(not [])=True → 在 0 款上打「达标 ✅」exit 0(S5b 第一跑生产实录的
空过陷阱 / 无声截断)。抽 _resolve_briefs 纯解析 valid/missing;采样列表为空 → 立即
SystemExit(2)、stderr 打印缺失清单(品类 + 期望 run-summary 路径)、绝不进入判定;有样本
但部分缺 → 逐条告警后按既有逻辑继续(不升级为全停,judge_genre/aggregate 判定口径不改)。
测试 +6:工单 f 直接三次 _flush + 崩溃路端到端各验只打一行(capsys);工单 i 全缺 fail-fast
+缺失清单 / 正常路径行为不变 / 部分缺继续 / _resolve_briefs 拆分。全套 335 passed(329+6)。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-04 00:41:56 -07:00 |
|
lili
|
e01d91fb83
|
feat(quality): 经营品类金标正例固化入仓 bake-shop-serve-1(欠账①清)+ 骨架转薄对照定案(欠账②按红线收束)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
- 正例=S5b bake_off 富化过门款(烘焙上菜 rush,attempts=1/¥2.00/tap-targets 真玩过门):src 7 文件+run-summary+richness-n3 凭据入 fixtures/golden-samples/sim-business/
- 12 条口径 n=3 复采样中位 10/12(单发 11/9/10 方差±2 合纪律),对照骨架 4/11 通用段分离 5–6 分=通用尺判别锚
- 品类段诚实口径:2/4 vs 1/4 仅 1 分分离(serve 形态无进货/双币),品类段正锚待进货型经营款,回退判定以通用段+L4 为准
- 合成薄壳反例不再补:骨架实测即真实薄对照,不臆造材料充数
- rubric _note 收束两欠账 + skill 金标锚点段 + golden-samples README 段;rubric-sync-gate 过
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 23:07:26 -07:00 |
|
lili
|
5e4d81a296
|
merge: C1金标欠账清偿——narrative 12条正式重锚+trpg/puzzle富正例基线(前提证伪:模板=黄金脚手架非薄反)+判别主锚=品类段+L4 归质量轨 (尾波C1欠账)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 21:34:36 -07:00 |
|
lili
|
b34a7725cc
|
docs(.agents): C1金标欠账清偿——narrative 12条口径正式重锚(正8/12 vs 薄反7/12,判别主锚=品类段+L4)+ trpg/puzzle 实为黄金脚手架富正例、基线入仓(真薄反欠账明记不现造,规范三合成薄壳教训在案)+ fixture _note 同步收口(复采样×3取中位) (尾波C1欠账)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 21:34:22 -07:00 |
|
lili
|
11436f07cc
|
test(cheap): test_a11_m3/m4 模块级 game_dir/dedup 替换收进可恢复 autouse fixture——根除 game_dir 跨模块隔离污染(基线二分钉死:5 个失败,非 12) (尾波小单)
test_a11_m3_deterministic 与 test_a11_m4_regenerate 在 import 时无恢复地替换
cheap_run.game_dir(两文件同构),污染同会话后续测试模块:受害者按真 games/ 根校验
write 边界,game_dir 被改指临时目录后一写即判越界。改为 module 级 autouse fixture
(yield 后恢复原值),__main__ 独立运行路径同装(单进程无需恢复),dedup 登记表一并收拢。
证据:全套 12→7 failed、三种文件顺序结果恒定(7 failed / 322 passed);二分钉死纯
game_dir 污染 = 5 个,均已恢复 = test_run::test_scaffold + test_toolkit::{write_l1_rejected,
write_l3_ok,check_shape_drawbutton_ok,check_shape_define_fail}。
余 7 个非本污染、隔离下同红,系环境前置:worktree 无 esbuild →
test_run::{test_stage,test_play_real}、test_toolkit::test_check_and_build_clean_pass;
缺真实 e2e 产物 → test_studio_smoke×4(须先跑 cheap_studio 单局)。须集成段 mini-desktop
才具备,未纳入本单。同族但未致失败的 test_worker_service 模块级 dedup 泄漏按最小改动未动。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 21:11:31 -07:00 |
|
lili
|
e4a4d02516
|
fix(cheap): CHROME_BIN 只在 Mac 路径真实存在时注入——Linux 上盲注致 smoke 全体 spawn ENOENT→state=None→考卷全回退 key-cycle(80007 族错配盲修¥14.9/80012 driver=key-cycle 共同上游根因;S5b 串行复跑+raw 观测行连环钉死) (cutover S5b)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 20:24:44 -07:00 |
|
lili
|
396461065b
|
chore(cheap): smoke FAIL 打印 raw 尾(bake_off 并发争用致 100% 回退考卷、真因被吞实证)——失败真因可见纪律 (cutover 窗口)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 20:15:05 -07:00 |
|
lili
|
2a8d5e450b
|
chore(cheap): 丰富度日志行补 genre 段(工单e,纯观测;genre 实参本就透传) (cutover S2)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 19:24:35 -07:00 |
|
lili
|
a6d5c29ad3
|
fix(cheap): Service 关 workspace 内建工具(Bash/Edit/Glob/Grep/Read/Write)——内建 Write/Bash 旁路六工具写白名单(护城河击穿)+ M3 12+工具面语义重叠混乱税(80009 死圈/80011 失败目录:Bash CWD 混乱/read_file 被串 Read 参数/Edit 连败,签名富化观测实证) (cutover S2 工具面封口)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 19:12:35 -07:00 |
|
lili
|
dbfe40906e
|
fix(cheap): worker_service 门面路 _service_run_fn 先导 _bootstrap 再导 driver——补 tier2/gen-worker sys.path 接线(CLI 路有、门面路漏;S1 真验实证 No module named worker 兜底 failed 回调) (cutover S1)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 16:07:48 -07:00 |
|
lili
|
2aafa82b9c
|
docs(cheap): 通用底座第12条金标复验回写5品类rubric _note(12条口径·C波·真M3 23调用¥0.46)
评分尺变更「通用底座 11→12 条(⑨升「核心操作非无脑」L2·追加末尾·前11一字不动)」的金标复验:
逐品类金标正例+薄反例真 M3 judge 复评,比对前 11 条分组小计对旧 11 条锚的漂移(±1 线),
第 12 条命中态与品类段单记。结论=item12 对前 11 零漂移坐实:
- heritage 正/薄反 前11 逐值精确=旧锚(10/11=6/2/2·6/11=4/0/2),品类 5/5·3/5 均±1内
- trpg 正例 前11 总分 8=旧锚(首记分组 5/1/2),品类 5/5 持平
- puzzle 正例(_fewshot)9/11 首记通用、对照(_template)8/11 对旧锚7/11 +1(±1内),品类 5/5 持平
- narrative 正例 双口径(生产/纯隔离)中位均±1内,genre=None 纯item12隔离中位7/11精确复现旧通用锚
- 第12条判别力真实:富/决策游戏命中、经营骨架(点顾客自动结算)与故事骨架多未命中;sim_neg item12=False
四品类(heritage/trpg/puzzle)+narrative正例 12条口径新基线已回写(追加式·保留旧11条记录)。
待创始人裁 / 欠账:
1. narrative 薄反例 L2 中位 2~3 对旧锚 L2 1 超 +1~+2 —— 根因旧锚系「骨架原样」空brief单发stingy观测
(该骨架恒有 juice+playSfx 两个L2、真实地板≥2),非 item12 效应;narrative 本为「仅观测·挂窗待跑」
临时基线,新基线本轮暂不锁定,建议以固定 brief+genre 口径正式重锚(_note 已记发现)。
2. trpg/puzzle 合成薄反例(黑箱点卡/合成薄壳)未入仓、本轮未跑。
3. 经营金标正例无仓内产物(golden-specs 只有 driver play-spec),待固化一款过门经营正例入仓。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 15:25:43 -07:00 |
|
lili
|
3495470d89
|
feat(quality): ⑨升通用底座第12条「核心操作非无脑」落 RICHNESS_CHECKLIST(L2 6→7,前11条一字不动,prompt 计数改动态 len 同源防漂)+ 测试分母随升;图说预算两段式「待实施/CLI仍hard」翻已落实态(cheap_budget 同源工厂+真M3实证) (质量SoT §4 规范一 12条口径,ba55508e 配套;金标复验=C波)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 14:51:36 -07:00 |
|
lili
|
b78a8dfa4f
|
merge: A1 核心修复批——单①驱动器约定收敛(C5接线:startRitual起局仪式+driver显式selectionBasis+sourceHash陈旧重生+金标held-constant不误杀)+单③反馈补厚(C6结构化单一来源:latch双支phaseNow+driverType+game-log摘要+CLI九门回喂对齐+tier2 sidecar富文本不变)+预算两段式(软停¥10/¥50只许收尾·on_acting拦生成面+硬地板×1.5 fail-closed,CLI/Service同源,W-ARCH②)+genre最小路由(五类词表·特异性降序)+Service壳合成终结事件+压缩崩fail-open补丁(SummarySchema全required根因坐实)。T7复现:fx4c-3 9/9·fx4c-1起局成功8/9;T8真M3 smoke:C6回喂环真转·软停真触发·硬地板真fail-closed(¥3.0158)
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 14:43:31 -07:00 |
|
lili
|
51144f1a3b
|
feat(cheap): T5 Service 壳合成终结事件(run 崩快失败,封 600s 慢失败出口)+ 压缩崩根因坐实与 fail-open 补丁
- 压缩崩根因(venv 2.0.2 代码级证据,4 次实证 'important_discoveries' required):reply 每轮推理前
compress_context(_agent.py:609)→ generate_structured_output 用 SummarySchema json-schema(五字段全
required+maxLength,_config.py:11-53)强制 M3 tool_choice 产摘要 → dict 路 jsonschema.validate
(model/_base.py:566-567)对缺字段/超长抛 ValidationError → 非 retryable 直接 raise(_base.py:426-428)
→ _compress_context_impl 非 overflow 支 raise e from None(_agent.py:461)→ 穿透 reply;ChatService.run
吞异常不发终结事件(app/_service/_chat.py:166-176)→ driver 600s 慢失败
- ctx_compress_patch:fail-open 包 Agent.compress_context(压缩=旁路优化件,失败只跳过不杀主链;连续 2 次
断路防每轮白烧压缩计费调用;钉 2.0.2 不改 venv 本体,纪律同 m3_stream_patch);Service 与 CLI 两处 apply
- collector on_reply 增崩溃支:先 flush 收口采集,再 yield 合成 ReplyEndEvent(消费侧先 publish 到 bus →
driver 立刻收到回合终结按盘面快速失败),原异常原样重抛不掩盖;正常路零行为变化
- 测试 9 用例:成功透传/失败吞掉/2 次断路/成功清零/按实例隔离/apply 幂等;崩溃合成终结+异常上抛+崩溃路
flush/正常路不追加/合成兜底不遮原异常
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 14:21:34 -07:00 |
|
lili
|
d15119f3ad
|
merge: A2 模板与提示词侧——6款模板起局按钮解耦render(纯几何函数+onEnter确定性赋值,no-render探针6/6进play+HEAD反事实6/6卡menu坐实)+ cheap-system v1.6.1 两条硬约束(targets键名固定/命中矩形onEnter建立)+cheap_roles逐字节parity+registry bump + gen.mjs入口守卫 + littlejs skill起局指导(卡menu案4修复面)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 14:20:08 -07:00 |
|
lili
|
d2b916f112
|
feat(cheap): T4 生产 create 路 genre 最小路由(brief→五类确定性词表·先验序=特异性降序·无命中回退通用) (M3 cutover 放行检查单增补)
- cheap_genre_route:纯词表路由(零 LLM/零 IO/确定性),规则表数据化单源(_GENRE_RULES 顺序即先验序:
非遗>TRPG>经营>解谜>剧情,特异词前泛词后);映射对齐 GENRE_BY_TEMPLATE 五类模板
- cheap_service_driver:取代硬编码 scaffold_template=None——命中选 per-genre 黄金骨架+genre 透传丰富度评分
(生产 create 路与 S5 bake_off 复验同轨);无命中 (None,None) 走通用 _template(路由只加不减)
- tests/test_genre_route:五类命中/无命中回退/多类共现先验序/GENRE_BY_TEMPLATE 一致性/确定性/脏输入 14 用例
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 14:17:54 -07:00 |
|
lili
|
34923812c3
|
fix(gen): 模板起局鲁棒性 menuStartBtn 解耦 render + targets 键/起局约定进 prompt v1.6.1 + gen.mjs 入口守卫 (W-S1 修复单②)
T1 六款模板(_template + feiyi/puzzle/shop/story/trpg)起局/重开按钮命中矩形:
从 render 副作用回写(menuStartBtn = renderMenu(...).startBtn)改为抽纯几何
menuStartRect/overRestartRect + 在场景进入点 onEnter 确定性赋值、render 只画;
治并发 rAF 饥饿下 render 未跑过=命中矩形恒 null=卡 menu(归因案4)。
no-render 探针坐实:修复前六款均卡 menu、修复后均按坐标起局进 play。
T2 cheap-system.md 升 v1.6.1,红线段增两条硬约束:①点 target 玩法 state 键名
固定为 targets(不得改成 items 等,C5 驱动器族选择依赖)②起局命中矩形须在状态
进入点建立、不依赖渲染帧;各模板 _forensicsView 加同义契约注释。cheap_roles.py
_SYSTEM_PROMPT 与 md 正文逐字节 parity 同步,registry.yaml 版本 bump 对齐。
T3 gen.mjs 顶层裸调 main() 加入口守卫(import.meta.url === pathToFileURL(argv[1])),
被 import 时不再触发真生成(footgun,曾 ~116s)、直接执行行为不变。
T4 puzzle-game-design.md §9 死链经核实在本 commit 不存在(唯一 play-spec 引用已
正确指向存在的 puzzle.play-spec.json),未伪造改动;littlejs-game-dev.md 补一条
起局 onEnter 指导闭合 doc-code。
验证:test_roles 12/12 + check_registry 17 对齐 + md↔_SYSTEM_PROMPT parity True
+ 6 模板 esbuild build 全绿 + amodel-gen tests 15+11 + 模板 node --test 除
_template-shop/headless-boot(既存红,与基线同)外全绿。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 14:17:53 -07:00 |
|
lili
|
9e1e943503
|
feat(budget): T3 预算两段式统一(软停线 ¥10/¥50 只许收尾+RMB 硬地板 ×1.5 fail-closed 封上界+CLI/Service 同源工厂) (W-ARCH②,创始人 2026-07-03 裁决)
- middleware:soft 档升两段式——越软停线置软停+on_acting 拦新增生成面工具(write_file/write_source/scaffold_init,
收尾类 finish/check/build/跑门/只读恒放行);越硬地板(软停线×rmb_hard_floor_ratio=1.5)fail-closed 抛熔断,
spent>floor 后 est≥0 使下次调用必拦 → 整局 ¥ ≤ floor+单笔,上界数学可证明;hard 档单段语义逐字不变
- genconfig+generation.yaml:rmb_hard_limit 3.0(spike 占位)→50.0(富档软停线裁决值)、新增 rmb_hard_floor_ratio=1.5
/ cheap_rmb_hard_limit=10.0 登内置默认,带裁决出处中文注释
- cheap_budget.build_cheap_breaker:便宜档 breaker 唯一装配点——CLI(cheap_studio,原 hard 单段 ¥10 改两段)与
生产 Service(cheap_service_app,原 soft 无地板补地板)同源读 genconfig,档位参数不可被 overrides 改
- 测试:两段式 11 用例(软停区间放行/生成工具拒·收尾放行/硬地板到线即停/spent>floor 次调必拦/工厂同源 env 同变);
test_budget_soft_stop 旧「soft 无界」口径按裁决更新为两段式并补越地板用例;既有 hard 档测试全量不动全绿
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 14:15:59 -07:00 |
|
lili
|
93cdffa33e
|
feat(cheap): T2 续修反馈补厚·C6 判卷契约接线(latch 双支 phaseNow+driverType+game-log 摘要+CLI 九门回喂对齐+tier2 结构化 sidecar) (W-S1 修复三单·单③)
- gate_judge:反馈先构造 C6 结构化对象(build_cheap_feedback_obj)再渲染中文(单一来源,拼串丢字段结构上不可能);
latch advisory 支(phaseNow)与驻留支(after)都读;每条逐门带 driverType(staged play-spec 取数);
game-log.json 告警/报错摘要进反馈(截断保护);C6 对象落 evidence/verdict-feedback.json 证据留痕
- cheap_studio:CLI 收敛判据升「九门绿」——finish 后 _closeout_gates 跑门,未绿且轮数/预算有余带 C6 反馈
resume 续修(与生产 RepairMiddleware finish 点拦截行为同型);软停后只收尾不回喂;收口复用最后一轮门结果;
对照路 run_gates=False 零改动
- tier2 对齐(有界零行为变更):verdict_feedback 富文本逐字不动,新增 verdict_feedback_obj+write_feedback_sidecar
结构化 sidecar 落 evidence/(judge_tier2_verdict 未过时 best-effort)
- Service _cheap_check / driver _build_summary 传 game_id+staged_dir 解锁完整反馈口径
- tests/test_feedback_c6.py:phaseNow 两支/负样本被 validate.py 拦/driverType/game-log 截断/sidecar/富文本不变 14 用例
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 14:08:44 -07:00 |
|
lili
|
234c076f51
|
feat(cheap): T1 驱动器约定收敛·C5 考卷契约接线(startRitual 起局仪式+driver 显式化+sourceHash 陈旧重生·金标 held-constant 不误杀) (W-S1 修复三单·单①)
- cheap_run:_build_play_spec 产 C5 形状(schemaVersion/derivedFrom/selectionBasis;key-cycle 带默认 startRitual);
ensure_play_spec 以 derivedFrom.generator 区分本产线自动 spec 与手工金标——自动 spec 按 sourceHash 判陈旧重生,
金标/旧世代 held-constant 永不覆盖;产出走 C5 best-effort 自校验(强校验在单测)
- play.cdp.cjs:NONPLAY 升模块级;runStartRitual(tap-selector 读 state 坐标/input-sequence/默认 Enter→Space→中心点,
进游玩态即止);主流程 runDriver 前执行声明仪式(无声明零行为变化);runKeyCycle 对 MENULIKE 前置态做默认起局尝试
(镜像 runTapTargets 扫点范式,治 fx4c 卡 menu 驱动器约定漂移)
- tests/test_play_spec_contract.py:两族过 C5 强校验/显式字段/hash 重生/金标不误杀/保守支 14 用例
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 14:02:53 -07:00 |
|
lili
|
64eb7a4eac
|
feat(gate-fixtures): 卡 menu 族 fx4c×3 升产物型判例 + 剧情金标正例 p11a-s1 固化入仓
判例库补两类被门证实的证据落位,门判据改动前的全量回归多两组锚:
- 卡 menu 族 amgen-fx4c-{1,3,4}(复现窗 2026-07-03)从 pending 升为 product_fixtures:
每份固化 src 源码(卡 menu 现场:menuStartBtn 仅 render 副作用赋值 + 非方向键起局)+
evidence 摘要;bundle/index.html 构建产物与约 1MB 生成 trace(verdict 全 null)不入仓,
附 tools.mjs build-saa 重建命令。裁决两防线:案 1/3 驱动器约定漂移(误杀)、案 4 并发
flaky(脆弱写法),细化归卡 menu 归因单。
- 剧情品类金标正例 p11a-s1「深渊回声」(丰富度 7/11、九门全绿)落
cheap-worker/fixtures/golden-samples/narrative/,给策划知识包 v2 正例复验当靶子;
narrative.json 的 _note 指针从「产物未入仓」翻为已固化。
manifest 新增 product_fixtures 键表达「有载体、真跑需九门 CDP 环境」的第三态(区别 cases
可运行 / pending 无载体);产物型判例不进 run.mjs 零依赖 stage。run.mjs 全量回归绿
(node 三段 29 过、python 段无 pytest 合法 SKIP)。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-03 14:01:02 -07:00 |
|
zizi
|
96de98b345
|
feat(prompts): 打磨不降档包——创始人定调「质量bar单一:档位切scope不切polish」落地(cheap v1.6.0:删spike能跑即可残留+hitstop出禁项改结算标配+设计块强制落盘+finish前收尾自查+新增⑩难度曲线;tier2 player v1.1.0:fun=5须记忆点/fun≥4才pass,scoreOnly焊死零行为影响;⑨经营决策模式清单落sim-business §1;双审收口:fable+真codex同判top10=筛选+精修尾部/金标最大杠杆,ⓓ落定、新待拍ⓔ手感轨;test_roles 12/12+双parity逐字节+registry 17条+docs-gate全绿)
docs-gate / docs-gate (push) Has been cancelled
|
2026-07-04 03:19:37 +08:00 |
|