| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(m2): A/B 对比报告出炉 —— 总分比 89.6%,高于 80% 闸门,**不 fork** 23 次计分运行(计划 30 次,当日网关配额只够 23 次,缺口与分布写在报告 §5.1)。 | 维度 | HCA | 基线 | 比值 | |---|---|---|---| | A 准确性 | 23.6 | 24.3 | 97.1% | | B 工具调用正确率 | 23.6 | 22.8 | 103.5% | | C 输出规范符合度 | 25.0 | 23.0 | **108.7%** | | D 步数与耗时 | 13.0 | 25.0 | **52.0%** | | 总分 | 85.2 | 95.1 | **89.6%** | 怎么读这个数(报告 §7.2):A/B/D 三个维度都被「两边工具清单不一样」 (9 个 MCP vs 4 个)和「两边工作区形态不一样」污染了,**只有 C 维度与这两件事 无关** —— 它量的正是 M2 要回答的问题「不改内核能不能让编码 agent 变成投研 agent」。C 维度 HCA 满分,其中 C1(全中文)与 C4(不给买卖指令)两边 23 次 全部满分,一次都没命中那 20 个操作指令模式。 D 落后不是引擎慢,是工作量不同:q3 是最干净的对照(两边都只调 1 次同一个 market_screen、都答出 313/5237、前 10 只逐行相同),差距只剩墙钟 14.8s vs 9.0s。 不 fork 的第三条理由最实在:这次唯一一处真正影响准确性的缺陷是 P0-11 (工具返回被截断后模型拿记忆补),**那两个补丁开关对它一点帮助都没有**。 报告生成器补了 §5.1「每题每边的有效次数」与 §5.2「排除在计分集之外的运行」, 本批不是均匀 3 次(q2 基线侧只有 1 次),排除的 2 次原始记录一份没删。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
feat(m2): A/B 对比报告出炉 —— 总分比 89.6%,高于 80% 闸门,**不 fork** 23 次计分运行(计划 30 次,当日网关配额只够 23 次,缺口与分布写在报告 §5.1)。 | 维度 | HCA | 基线 | 比值 | |---|---|---|---| | A 准确性 | 23.6 | 24.3 | 97.1% | | B 工具调用正确率 | 23.6 | 22.8 | 103.5% | | C 输出规范符合度 | 25.0 | 23.0 | **108.7%** | | D 步数与耗时 | 13.0 | 25.0 | **52.0%** | | 总分 | 85.2 | 95.1 | **89.6%** | 怎么读这个数(报告 §7.2):A/B/D 三个维度都被「两边工具清单不一样」 (9 个 MCP vs 4 个)和「两边工作区形态不一样」污染了,**只有 C 维度与这两件事 无关** —— 它量的正是 M2 要回答的问题「不改内核能不能让编码 agent 变成投研 agent」。C 维度 HCA 满分,其中 C1(全中文)与 C4(不给买卖指令)两边 23 次 全部满分,一次都没命中那 20 个操作指令模式。 D 落后不是引擎慢,是工作量不同:q3 是最干净的对照(两边都只调 1 次同一个 market_screen、都答出 313/5237、前 10 只逐行相同),差距只剩墙钟 14.8s vs 9.0s。 不 fork 的第三条理由最实在:这次唯一一处真正影响准确性的缺陷是 P0-11 (工具返回被截断后模型拿记忆补),**那两个补丁开关对它一点帮助都没有**。 报告生成器补了 §5.1「每题每边的有效次数」与 §5.2「排除在计分集之外的运行」, 本批不是均匀 3 次(q2 基线侧只有 1 次),排除的 2 次原始记录一份没删。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
feat(m2): A/B 对比报告出炉 —— 总分比 89.6%,高于 80% 闸门,**不 fork** 23 次计分运行(计划 30 次,当日网关配额只够 23 次,缺口与分布写在报告 §5.1)。 | 维度 | HCA | 基线 | 比值 | |---|---|---|---| | A 准确性 | 23.6 | 24.3 | 97.1% | | B 工具调用正确率 | 23.6 | 22.8 | 103.5% | | C 输出规范符合度 | 25.0 | 23.0 | **108.7%** | | D 步数与耗时 | 13.0 | 25.0 | **52.0%** | | 总分 | 85.2 | 95.1 | **89.6%** | 怎么读这个数(报告 §7.2):A/B/D 三个维度都被「两边工具清单不一样」 (9 个 MCP vs 4 个)和「两边工作区形态不一样」污染了,**只有 C 维度与这两件事 无关** —— 它量的正是 M2 要回答的问题「不改内核能不能让编码 agent 变成投研 agent」。C 维度 HCA 满分,其中 C1(全中文)与 C4(不给买卖指令)两边 23 次 全部满分,一次都没命中那 20 个操作指令模式。 D 落后不是引擎慢,是工作量不同:q3 是最干净的对照(两边都只调 1 次同一个 market_screen、都答出 313/5237、前 10 只逐行相同),差距只剩墙钟 14.8s vs 9.0s。 不 fork 的第三条理由最实在:这次唯一一处真正影响准确性的缺陷是 P0-11 (工具返回被截断后模型拿记忆补),**那两个补丁开关对它一点帮助都没有**。 报告生成器补了 §5.1「每题每边的有效次数」与 §5.2「排除在计分集之外的运行」, 本批不是均匀 3 次(q2 基线侧只有 1 次),排除的 2 次原始记录一份没删。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
feat(m2): A/B 对比报告出炉 —— 总分比 89.6%,高于 80% 闸门,**不 fork** 23 次计分运行(计划 30 次,当日网关配额只够 23 次,缺口与分布写在报告 §5.1)。 | 维度 | HCA | 基线 | 比值 | |---|---|---|---| | A 准确性 | 23.6 | 24.3 | 97.1% | | B 工具调用正确率 | 23.6 | 22.8 | 103.5% | | C 输出规范符合度 | 25.0 | 23.0 | **108.7%** | | D 步数与耗时 | 13.0 | 25.0 | **52.0%** | | 总分 | 85.2 | 95.1 | **89.6%** | 怎么读这个数(报告 §7.2):A/B/D 三个维度都被「两边工具清单不一样」 (9 个 MCP vs 4 个)和「两边工作区形态不一样」污染了,**只有 C 维度与这两件事 无关** —— 它量的正是 M2 要回答的问题「不改内核能不能让编码 agent 变成投研 agent」。C 维度 HCA 满分,其中 C1(全中文)与 C4(不给买卖指令)两边 23 次 全部满分,一次都没命中那 20 个操作指令模式。 D 落后不是引擎慢,是工作量不同:q3 是最干净的对照(两边都只调 1 次同一个 market_screen、都答出 313/5237、前 10 只逐行相同),差距只剩墙钟 14.8s vs 9.0s。 不 fork 的第三条理由最实在:这次唯一一处真正影响准确性的缺陷是 P0-11 (工具返回被截断后模型拿记忆补),**那两个补丁开关对它一点帮助都没有**。 报告生成器补了 §5.1「每题每边的有效次数」与 §5.2「排除在计分集之外的运行」, 本批不是均匀 3 次(q2 基线侧只有 1 次),排除的 2 次原始记录一份没删。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
feat(m2): A/B 对比报告出炉 —— 总分比 89.6%,高于 80% 闸门,**不 fork** 23 次计分运行(计划 30 次,当日网关配额只够 23 次,缺口与分布写在报告 §5.1)。 | 维度 | HCA | 基线 | 比值 | |---|---|---|---| | A 准确性 | 23.6 | 24.3 | 97.1% | | B 工具调用正确率 | 23.6 | 22.8 | 103.5% | | C 输出规范符合度 | 25.0 | 23.0 | **108.7%** | | D 步数与耗时 | 13.0 | 25.0 | **52.0%** | | 总分 | 85.2 | 95.1 | **89.6%** | 怎么读这个数(报告 §7.2):A/B/D 三个维度都被「两边工具清单不一样」 (9 个 MCP vs 4 个)和「两边工作区形态不一样」污染了,**只有 C 维度与这两件事 无关** —— 它量的正是 M2 要回答的问题「不改内核能不能让编码 agent 变成投研 agent」。C 维度 HCA 满分,其中 C1(全中文)与 C4(不给买卖指令)两边 23 次 全部满分,一次都没命中那 20 个操作指令模式。 D 落后不是引擎慢,是工作量不同:q3 是最干净的对照(两边都只调 1 次同一个 market_screen、都答出 313/5237、前 10 只逐行相同),差距只剩墙钟 14.8s vs 9.0s。 不 fork 的第三条理由最实在:这次唯一一处真正影响准确性的缺陷是 P0-11 (工具返回被截断后模型拿记忆补),**那两个补丁开关对它一点帮助都没有**。 报告生成器补了 §5.1「每题每边的有效次数」与 §5.2「排除在计分集之外的运行」, 本批不是均匀 3 次(q2 基线侧只有 1 次),排除的 2 次原始记录一份没删。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
feat(m2): A/B 对比报告出炉 —— 总分比 89.6%,高于 80% 闸门,**不 fork** 23 次计分运行(计划 30 次,当日网关配额只够 23 次,缺口与分布写在报告 §5.1)。 | 维度 | HCA | 基线 | 比值 | |---|---|---|---| | A 准确性 | 23.6 | 24.3 | 97.1% | | B 工具调用正确率 | 23.6 | 22.8 | 103.5% | | C 输出规范符合度 | 25.0 | 23.0 | **108.7%** | | D 步数与耗时 | 13.0 | 25.0 | **52.0%** | | 总分 | 85.2 | 95.1 | **89.6%** | 怎么读这个数(报告 §7.2):A/B/D 三个维度都被「两边工具清单不一样」 (9 个 MCP vs 4 个)和「两边工作区形态不一样」污染了,**只有 C 维度与这两件事 无关** —— 它量的正是 M2 要回答的问题「不改内核能不能让编码 agent 变成投研 agent」。C 维度 HCA 满分,其中 C1(全中文)与 C4(不给买卖指令)两边 23 次 全部满分,一次都没命中那 20 个操作指令模式。 D 落后不是引擎慢,是工作量不同:q3 是最干净的对照(两边都只调 1 次同一个 market_screen、都答出 313/5237、前 10 只逐行相同),差距只剩墙钟 14.8s vs 9.0s。 不 fork 的第三条理由最实在:这次唯一一处真正影响准确性的缺陷是 P0-11 (工具返回被截断后模型拿记忆补),**那两个补丁开关对它一点帮助都没有**。 报告生成器补了 §5.1「每题每边的有效次数」与 §5.2「排除在计分集之外的运行」, 本批不是均匀 3 次(q2 基线侧只有 1 次),排除的 2 次原始记录一份没删。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
feat(m2): A/B 对比报告出炉 —— 总分比 89.6%,高于 80% 闸门,**不 fork** 23 次计分运行(计划 30 次,当日网关配额只够 23 次,缺口与分布写在报告 §5.1)。 | 维度 | HCA | 基线 | 比值 | |---|---|---|---| | A 准确性 | 23.6 | 24.3 | 97.1% | | B 工具调用正确率 | 23.6 | 22.8 | 103.5% | | C 输出规范符合度 | 25.0 | 23.0 | **108.7%** | | D 步数与耗时 | 13.0 | 25.0 | **52.0%** | | 总分 | 85.2 | 95.1 | **89.6%** | 怎么读这个数(报告 §7.2):A/B/D 三个维度都被「两边工具清单不一样」 (9 个 MCP vs 4 个)和「两边工作区形态不一样」污染了,**只有 C 维度与这两件事 无关** —— 它量的正是 M2 要回答的问题「不改内核能不能让编码 agent 变成投研 agent」。C 维度 HCA 满分,其中 C1(全中文)与 C4(不给买卖指令)两边 23 次 全部满分,一次都没命中那 20 个操作指令模式。 D 落后不是引擎慢,是工作量不同:q3 是最干净的对照(两边都只调 1 次同一个 market_screen、都答出 313/5237、前 10 只逐行相同),差距只剩墙钟 14.8s vs 9.0s。 不 fork 的第三条理由最实在:这次唯一一处真正影响准确性的缺陷是 P0-11 (工具返回被截断后模型拿记忆补),**那两个补丁开关对它一点帮助都没有**。 报告生成器补了 §5.1「每题每边的有效次数」与 §5.2「排除在计分集之外的运行」, 本批不是均匀 3 次(q2 基线侧只有 1 次),排除的 2 次原始记录一份没删。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
feat(m2): A/B 对比报告出炉 —— 总分比 89.6%,高于 80% 闸门,**不 fork** 23 次计分运行(计划 30 次,当日网关配额只够 23 次,缺口与分布写在报告 §5.1)。 | 维度 | HCA | 基线 | 比值 | |---|---|---|---| | A 准确性 | 23.6 | 24.3 | 97.1% | | B 工具调用正确率 | 23.6 | 22.8 | 103.5% | | C 输出规范符合度 | 25.0 | 23.0 | **108.7%** | | D 步数与耗时 | 13.0 | 25.0 | **52.0%** | | 总分 | 85.2 | 95.1 | **89.6%** | 怎么读这个数(报告 §7.2):A/B/D 三个维度都被「两边工具清单不一样」 (9 个 MCP vs 4 个)和「两边工作区形态不一样」污染了,**只有 C 维度与这两件事 无关** —— 它量的正是 M2 要回答的问题「不改内核能不能让编码 agent 变成投研 agent」。C 维度 HCA 满分,其中 C1(全中文)与 C4(不给买卖指令)两边 23 次 全部满分,一次都没命中那 20 个操作指令模式。 D 落后不是引擎慢,是工作量不同:q3 是最干净的对照(两边都只调 1 次同一个 market_screen、都答出 313/5237、前 10 只逐行相同),差距只剩墙钟 14.8s vs 9.0s。 不 fork 的第三条理由最实在:这次唯一一处真正影响准确性的缺陷是 P0-11 (工具返回被截断后模型拿记忆补),**那两个补丁开关对它一点帮助都没有**。 报告生成器补了 §5.1「每题每边的有效次数」与 §5.2「排除在计分集之外的运行」, 本批不是均匀 3 次(q2 基线侧只有 1 次),排除的 2 次原始记录一份没删。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
feat(m2): A/B 对比报告出炉 —— 总分比 89.6%,高于 80% 闸门,**不 fork** 23 次计分运行(计划 30 次,当日网关配额只够 23 次,缺口与分布写在报告 §5.1)。 | 维度 | HCA | 基线 | 比值 | |---|---|---|---| | A 准确性 | 23.6 | 24.3 | 97.1% | | B 工具调用正确率 | 23.6 | 22.8 | 103.5% | | C 输出规范符合度 | 25.0 | 23.0 | **108.7%** | | D 步数与耗时 | 13.0 | 25.0 | **52.0%** | | 总分 | 85.2 | 95.1 | **89.6%** | 怎么读这个数(报告 §7.2):A/B/D 三个维度都被「两边工具清单不一样」 (9 个 MCP vs 4 个)和「两边工作区形态不一样」污染了,**只有 C 维度与这两件事 无关** —— 它量的正是 M2 要回答的问题「不改内核能不能让编码 agent 变成投研 agent」。C 维度 HCA 满分,其中 C1(全中文)与 C4(不给买卖指令)两边 23 次 全部满分,一次都没命中那 20 个操作指令模式。 D 落后不是引擎慢,是工作量不同:q3 是最干净的对照(两边都只调 1 次同一个 market_screen、都答出 313/5237、前 10 只逐行相同),差距只剩墙钟 14.8s vs 9.0s。 不 fork 的第三条理由最实在:这次唯一一处真正影响准确性的缺陷是 P0-11 (工具返回被截断后模型拿记忆补),**那两个补丁开关对它一点帮助都没有**。 报告生成器补了 §5.1「每题每边的有效次数」与 §5.2「排除在计分集之外的运行」, 本批不是均匀 3 次(q2 基线侧只有 1 次),排除的 2 次原始记录一份没删。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
feat(m2): A/B 对比报告出炉 —— 总分比 89.6%,高于 80% 闸门,**不 fork** 23 次计分运行(计划 30 次,当日网关配额只够 23 次,缺口与分布写在报告 §5.1)。 | 维度 | HCA | 基线 | 比值 | |---|---|---|---| | A 准确性 | 23.6 | 24.3 | 97.1% | | B 工具调用正确率 | 23.6 | 22.8 | 103.5% | | C 输出规范符合度 | 25.0 | 23.0 | **108.7%** | | D 步数与耗时 | 13.0 | 25.0 | **52.0%** | | 总分 | 85.2 | 95.1 | **89.6%** | 怎么读这个数(报告 §7.2):A/B/D 三个维度都被「两边工具清单不一样」 (9 个 MCP vs 4 个)和「两边工作区形态不一样」污染了,**只有 C 维度与这两件事 无关** —— 它量的正是 M2 要回答的问题「不改内核能不能让编码 agent 变成投研 agent」。C 维度 HCA 满分,其中 C1(全中文)与 C4(不给买卖指令)两边 23 次 全部满分,一次都没命中那 20 个操作指令模式。 D 落后不是引擎慢,是工作量不同:q3 是最干净的对照(两边都只调 1 次同一个 market_screen、都答出 313/5237、前 10 只逐行相同),差距只剩墙钟 14.8s vs 9.0s。 不 fork 的第三条理由最实在:这次唯一一处真正影响准确性的缺陷是 P0-11 (工具返回被截断后模型拿记忆补),**那两个补丁开关对它一点帮助都没有**。 报告生成器补了 §5.1「每题每边的有效次数」与 §5.2「排除在计分集之外的运行」, 本批不是均匀 3 次(q2 基线侧只有 1 次),排除的 2 次原始记录一份没删。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
feat(m2): A/B 对比报告出炉 —— 总分比 89.6%,高于 80% 闸门,**不 fork** 23 次计分运行(计划 30 次,当日网关配额只够 23 次,缺口与分布写在报告 §5.1)。 | 维度 | HCA | 基线 | 比值 | |---|---|---|---| | A 准确性 | 23.6 | 24.3 | 97.1% | | B 工具调用正确率 | 23.6 | 22.8 | 103.5% | | C 输出规范符合度 | 25.0 | 23.0 | **108.7%** | | D 步数与耗时 | 13.0 | 25.0 | **52.0%** | | 总分 | 85.2 | 95.1 | **89.6%** | 怎么读这个数(报告 §7.2):A/B/D 三个维度都被「两边工具清单不一样」 (9 个 MCP vs 4 个)和「两边工作区形态不一样」污染了,**只有 C 维度与这两件事 无关** —— 它量的正是 M2 要回答的问题「不改内核能不能让编码 agent 变成投研 agent」。C 维度 HCA 满分,其中 C1(全中文)与 C4(不给买卖指令)两边 23 次 全部满分,一次都没命中那 20 个操作指令模式。 D 落后不是引擎慢,是工作量不同:q3 是最干净的对照(两边都只调 1 次同一个 market_screen、都答出 313/5237、前 10 只逐行相同),差距只剩墙钟 14.8s vs 9.0s。 不 fork 的第三条理由最实在:这次唯一一处真正影响准确性的缺陷是 P0-11 (工具返回被截断后模型拿记忆补),**那两个补丁开关对它一点帮助都没有**。 报告生成器补了 §5.1「每题每边的有效次数」与 §5.2「排除在计分集之外的运行」, 本批不是均匀 3 次(q2 基线侧只有 1 次),排除的 2 次原始记录一份没删。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
fix(m4): .gitignore 的裸 atomcode 把 M3 整个适配层吞掉了 —— 从零 clone 构建不出来 **从零安装测试撞出来的真缺陷**(M4 任务书第 3 条的价值就在这): 在测试机上用 install.sh 从 GitHub clone feat/m4 装一遍,web 镜像构建直接失败: ./app/api/opencode/[...path]/route.ts Module not found: Can't resolve '../../../lib/atomcode' 根因:.gitignore 里有一行裸 atomcode(本意是别把下载的 AtomCode 二进制提交进来), 而 gitignore 的裸名字**匹配任意层级的同名文件或目录** —— 于是 apps/web/app/lib/atomcode/(M3 写的整个转发适配层,daemon/events/history/live-hub/index 共 5 个文件 1400+ 行)从来没有进过仓库。开发机与测试机上是靠 rsync 有这份代码, 所以 M3 的 Playwright 10/10 是真过的,但**任何人 clone 这个仓库都构建不出来**。 修: · 改成 /atomcode(只忽略仓库根目录那一个文件;二进制只存在于 daemon 镜像里); · 把适配层 5 个文件补进仓库; · 顺带修 *.log 把报告引用的**原始证据**也吞掉的问题:docs/evidence/ 与 docs/eval/ 下的 .log 是「数字能回溯到一次真实调用」的凭证(总控红线 1、5),必须在仓库里。 提交前逐个扫过明文密钥(hunt_tools_* / sk-* / Bearer …),零命中。 同时落地两条已拍板决策(总控规则 9、10,M3 U-10/U-11 的答复),都在适配层做、前端零改动: · 决策 9:agent 选择器保留但要让人看懂切的是**审批档**不是换助手 —— 适配层把它的 name 改成「投研助手 · 审批档 build」、description 说明全局生效与 guard 兜底; · 决策 10:接受同一时刻只跑一个回合,但**忙时必须有明确提示** —— 入队那一刻就把用户消息和一条排队说明推给他(共用同一个 assistant 消息 id, 否则界面上会出现两条助手消息),并把超时计时改成从真正开跑算起。 tsc 0 错,适配层单测 25 条全过。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 | |
chore(m2/eval): 把设置缺陷下跑的那次移出计分集,q2 两边统一按 n=2 q2-thesis-review-opencode-r1 是基线工作区还没铺论点文件时跑的,原始记录 移到 docs/eval/setup-defect/ 留证并从 index.json 的 runs 里剔除(记在 excluded 字段里,不是悄悄删掉)。 没有重跑它:修复后的 r2 表明铺了文件结果也一样(基线主提示有一条对工作区的 无差别禁读令),再花 31k token 买一个已知结论不值;而且只重跑基线侧会让 q2 变成基线 n=3、HCA n=2 的不对称。两边统一 n=2 更干净。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 |