CopperChat / 工具 变更日志
每次交付一行(tools/changelog_add.py 从最近 commit 生成):时间 · commit · 变更 · 依据消息号 · 验证方式。回滚 = git revert <hash>(数据用 tools/restore_chat.py)。
2026-10-01
- 2026-10-01 21:27 ·
80c011b57· Live 文本镜像每小时自动同步(Tom #33747 方案 ①) · 依据 #33747 · 验:脚本自测(--dry-run / 实跑一次) - 2026-10-01 20:03 ·
3b135f008· audio_ledger v6:目录段作区分位 + 一一对应自检(adler 作者 · billy 复测 · hudson #33735 批) · 依据 #33735 · 验:实仓验到:动画仓撞名 70→0 · 两仓 self-check 156→156 / 312→312 OK · 真人仓 found 346=343+3 与四类分布 49/11/160/126 对上 hudson 全量 · 中文路径假仓真写一行 outputs 路径仓内相对正斜杠无盘符 · 塞 C:\temp 路径被列出跳过且退出码 2 - 2026-10-01 19:33 ·
16de85c1c· audio_ledger:去掉写死的 os.chdir 改 --root、加 --dry-run、无出处时金额留空(adler 作者 · billy 复测 · hudson #33680 批) · 依据 #33680 · 验:动画仓 dry 30 EP/0 行 · 真人仓 dry 不崩不串仓 · 第三目录带 --root 当前目录零新增 · 动画仓真跑幂等 0 · 中文路径假仓真写一行验落盘格式(仓内相对/正斜杠/无盘符)
2026-09-29
- 2026-09-29 22:44 ·
ee2bf51ab· 子项目 3/4:三张表各成一套 + 取件按项目判 + 页面缩进(hudson #30030/#30040/#30096) · 依据 #30030, #30040, #30096 · 验:test_subproject 25/25 · test_asset_gate 33/33 · new_subproject 自检 9/9 · restart pid 95124 · smoke PASS · uicheck 148 全过 · renderProjects 在 node 里跑真列表验缩进 - 2026-09-29 18:39 ·
ffe162649· 侧栏群聊行显示:名字优先 + 自己算 +N,别让 CSS 砍成看不懂(Tom #29689 via hudson #29691) · 依据 #29689, #29691 · 验:node 里跑真名单:最长 16 字(上限 16);旧写法同段代码砍成「群聊 · Hud…」复现了 Tom 截图那串 · smoke PASS · uicheck 145 全过 0 console error - 2026-09-29 17:39 ·
477eeb19d· 远程席位取件 / 交件(Tom #29508 → #29580 试运行) · 依据 #29508, #29580 · 验:test_asset_gate 28/28(含拆闸必败)· asset_get --selftest 11/11 · asset_put --selftest 8/8 · 真取 EP08-S001~t1 7.6MB/0.41s · 真交 2MB 往返 sha 一致 · 活服务 alang/穿越/tokens.json/chat.db/.py 全 403 · restart pid 79916 · smoke PASS - 2026-09-29 17:08 ·
86cc52f05· 附件门禁:/files/ 按附件所属频道判权限(Tom #29505) · 依据 #29505 · 验:改前 HEAD 版本实跑端口 8801:alang 取私聊图 200/233215B;改后 403。tools/test_file_gate.py 14/14 · restart pid 88900 · smoke PASS · uicheck 148/148 - 2026-09-29 11:34 ·
ee2f03247· 台账页提速 + 页面「+ 新群聊」(hudson #29169 / Tom #29168 · Tom #28979) · 依据 #28979, #29168, #29169 · 验:重启 + smoke 7/7;台账接口实测 live 1.6s/0.04s、动画 5.3s/0.08s(重建次数与日志逐条对得上);node --check 5 段脚本过
2026-09-28
- 2026-09-28 23:44 ·
ed3634ce4· 参观身份 readonly:频道能看不能发、私聊照常,其余 POST 白名单外一律拒;建 alang(Tom #28745/#28748/#28751 · hudson #28747) · 依据 #28745, #28747, #28748, #28751 · 验:tools/test_readonly_perms.py 33/33;重启后用 alang token 实跑:读两仓频道 200 · 发频道帖 403(动画 + Live)· 私聊 200(#28756)· /api/todo 与 /api/rework/note 403 且报文出自本闸 · /api/read 200;smoke 7/7 - 2026-09-28 20:54 ·
eff599191· rework_add verdict:Tom 退的行 hudson 代签那一支也应用 --takes / --asset(原来静默丢弃),两支合用一个函数并打印改了什么(gregson #28582 · hudson #28583) · 依据 #28582, #28583 · 验:tools/test_rework_add_verdict.py 8/8(临时台账,不碰真台账);必败用例对 HEAD 旧码实跑:takes 停在 t9 t10、asset 丢弃 - 2026-09-28 20:26 ·
8249579b9· RH 终态失败不再叫 POLL_FAILED:rh_comfy_run 落 rh_failed.json + state=FAILED_RH 并打印「RH 端失败:type message @node」;rh_take 失败三分类(FAILED_RH / POLL_FAILED / GENERATION_FAILED)+ 失败也落余额;自检 9→12(gregson #28529) · 依据 #28529 · 验:rh_take --selftest 12/12(必败:805+failedReason 判成 POLL_FAILED);Live rh_live_take --selftest 13/13(必败:NameError 读不了) - 2026-09-28 20:23 ·
4e14c0151· 12.9 表单每集只挂一个候选片:页面加载即收成单候选(多的进 history 不渲染);swap_mix_card 加 --form / --set,换候选 = 替换、旧候选进 history(hudson #28511 · Tom #28507) · 依据 #28507, #28511 · 验:node --check 4 段内联脚本;--set 在临时副本上跑两次(候选 1 / history +1 / 旧裁定清 / 幂等);smoke 7/7 PASS(review.html 不用重启) - 2026-09-28 20:00 ·
f6bbc8af4· ffmpeg 路径统一解析 ffmpeg_path.py:FFMPEG env → 8.1(已知路径)→ 本仓 7.1(警告)→ PATH → 动画仓 7.1;mix_full 写 ffmpeg 版本进 mix.json;mix_episode 解析一次并传给子进程;sfx_assemble 借用(hudson #28481 · gregson #28477) · 依据 #28477, #28481 · 验:解析器四条路径自测;Live EP08 v021 mix 按 mix_episode 同参数重建到临时目录 mp4 sha 5721c9fc 与已发货逐字节同、pass1 测量同;sfx v016 重建三 wav sha 同 - 2026-09-28 19:49 ·
e75276c9c· live_frames 自愈 note 按实际 diff 写(status 真改了就写前后值,没改才写「未动」)+ 自检 39→43(hudson #28424) · 依据 #28424 · 验:live_frames --selftest 43/43(含必败:set 改了 status 却写「未动」) - 2026-09-28 19:49 ·
7e7717508· 12.9 裁定=返修:旧「成片」行写 fail、统一新开一行「EP## 成片」带 Tom 原话;镜号切分认真人版 L-S01 / L-S09b(hudson #28094 · #28112) · 依据 #28094, #28112 · 验:tools/test_rework_close_by_tom.py 13/13(含必败:成片行被收 pass、整段 note 挂到 L-S01);restart_server + smoke 7/7 PASS(thread 28112) - 2026-09-28 19:36 ·
5c13c3ee7· cost_sum 加视频发片 ¥ / 超分 ¥折算 / 音频 $ 三块按币种分行 + 加法核对;rh_upscale 出片写 cost_cny(标折算)(hudson #28298 · gregson #28296) · 依据 #28296, #28298 · 验:--since 2026-09-28 / 全量 / --ep EP08 三种跑法;三块合计与独立一行脚本复算逐分相同(视频 41 条 ¥8.655 · 超分 16 条 1532 s ¥1.702 · 音频 4 条 $0.3247);折算费率 142 s → ¥0.158 与 gregson #28296 相同 - 2026-09-28 19:28 ·
efae7f46d· rh_take 挂轨闸:台词表 shot_id 全空 → 报「台词表无 shot_id」拒发,不数成 0 放行;自检 6→9 条(hudson #28277 ②) · 依据 #28277 · 验:rh_take --selftest 9/9(含必败:LIVE_ schema 表旧码数成 0 放行、新码拒);Live rh_live_take --selftest 11+11/22 用 EP07/EP08/EP01 真实两套文件 - 2026-09-28 19:24 ·
12bd901d1· sfx_assemble:启动先解析 ffmpeg(FFMPEG env → 仓内 7.1 → PATH → 兄弟动画仓),找不到一句话报试过的路径(hudson #28199 · gregson #28196) · 依据 #28196, #28199 · 验:四条路径自测(env 缺/bogus/无处可找/8.1)+ Live EP08 v016 重建到临时目录,有无 FFMPEG 两次 sfx/amb/music sha 与已发货 assemble_log 逐字节相同
2026-09-27
- 2026-09-27 11:56 ·
51102e265· live_frames:已退的帧不许被写进锁行(hudson #25531 ②) · 依据 #25531 · 验:文档,无需 - 2026-09-27 03:39 ·
e235b0db9· 上线 PR171 + PR172(adler 写,hopkins 25/25 与 8/8):12.9 收口镜号口径 + rework.py 3.9 可跑 + 长资产名不横滚 + 预审记首尾帧 sha · 依据 — · 验:四文件 LF sha 与上线单逐字相符 · py_compile + node --check + 独立 import 全过 · smoke 7/7、uicheck 148/148 - 2026-09-27 03:38 ·
592b7d377· NOTE 闸:发提示词前按闭合标记剥离 production NOTE,配不上就拒发(hudson #24286/#24296) · 依据 #24286, #24296 · 验:NOTE 闸单测 7/7(四种结构 + 三种该拒发)· cast_adapter_nb --dry 两份实跑(3474 字 / NOTE_GATE 拒发)· 六个文件 py_compile 过
2026-09-26
- 2026-09-26 18:37 ·
72a6fa93e· 成员管理做进 /console(Tom #23436):页面上建人 / 改职责昵称 / 禁用恢复 · 依据 #23436 · 验:独立副本 18999 上 29/29(建人不重启即生效 / 受限读频道 403 / 同名非法名空职责 400 / delete 400 / 禁用后旧 token 401 且人仍在列表 / 恢复后新 token 可用);playwright 在副本上真点「建」通过、375 宽不溢出、无 pageerror;线上 tom 200 / watson 403 / delete 400 / console 200;smoke 接口 5/5 - 2026-09-26 18:21 ·
b7c6bd994· 成员表跟 tokens.json 现读:加新同事不用再重启服务(Tom #23411 / #23415) · 依据 #23411, #23415 · 验:离线 5 条(新身份立刻出现在 authors()/pairable()、tokens.json 损坏回落上一次的表不崩、还原后消失);线上不重启加身份 → /api/state 成员表 26→27→26、/api/presence.people 同步、health pid 38032 未变;smoke 接口 5/5 - 2026-09-26 09:00 ·
dd121ab91· 受限身份:perms.json 白名单(Tom #23106 / #23108,spicy 只能和 tom 私聊) · 依据 #23106, #23108 · 验:线上真跑:spicy 读/发 #general 与 #live/bug 都 403、线程列表 403、私聊 hudson/watson 403、与 tom 私聊 200、/api/state 频道 0 条私聊只 tom、通知箱非私聊 0 条、搜索只出私聊;watson 读写全部频道照旧、读别人私聊仍 403;smoke 接口 5/5 - 2026-09-26 08:33 ·
4a9e62b95· 新同事 spicy(文员)接入 + new_agent.py 锚点没了不再整条崩 · 依据 — · 验:幂等重跑 new_agent.py spicy 无重复写入(ui.html / CLAUDE.md 各 1 处);py_compile 过;ui.html 内联 JS node --check 过;服务重启后 /api/state 的 authors 含 spicy、昵称「斯派西」
2026-09-25
- 2026-09-25 19:39 ·
4ad073c24· 服务看门狗 tools/health_watch.py(Tom #22339 批) · 依据 #22339 · 验:死端口连续3次→判定故障;真服务 health() True;发帖真发过 #22342;心跳实跑观察到 - 2026-09-25 18:19 ·
7693af815· 备份加一份不带 /MIR 的存档(Tom #22266/#22279):archive_sync() + backup_archive.txt · 依据 #22266, #22279 · 验:--archive-only --dry-run 列 7 源、云盘零改动;真跑 7/7 rc=1、4490 文件 / 7.39 GB,目标端文件数与源逐项相等
2026-09-24
- 2026-09-24 21:29 ·
879261abf· steele_watch.py: steele 专属监听(去 stdout 叫醒假设,只写心跳 + pending)(Tom #21236) · 依据 #21236 · 验:脚本自测(--print 跑 8 秒:心跳落地、pending 接住 Tom 在 steele 睡着期间发的 #21261/#21263 两条 DM、日志正常) - 2026-09-24 19:58 · — · 新人 alice 接入(MiniMax Code,Tom 在 Root Session 授权):tokens.json / server.py AUTHORS / nicks.json / ui.html(PEOPLE+ROLES+C 三处)/ 新建 AGENTS_ALICE.md;CLAUDE.md 跳过(alice 走 AGENTS 系列非 CLAUDE);new_agent.py 与当前 ui.html 格式不一致(PEOPLE 是 let、C 是 Proxy)已记 AGENTS_ALICE.md §9 给后续 miniMax Code 新人 · 依据 — · 验:tokens.json 总条目 21→22(alice 键唯一、键长 24 字符,不打印值);server.py:31 AUTHORS 末尾含 "alice";nicks.json:23 含 "alice":"Alice";ui.html:269 / :279 / :384 三处命中各 1 次 'alice';AGENTS_ALICE.md 11254 字节;alice 在 Hudson 重启 server.py serve 之前不发任何 chat 帖(避免 401)
- 2026-09-24 19:25 ·
c9f3d6b91· MiniMax Code 同事接入:AGENTS_MINIMAX.md 引导 + tools/inbox_check.py(拉模式通知箱点检) · 依据 — · 验:inbox_check.py 拿 watson 的 token 实跑:未读 8 条列全 + 退出码 10;--dm 只出私聊 4 条 + 退出码 10;未登记的名字明确报错且退出码 1(非 0 才算闸)
2026-09-23
- 2026-09-23 23:45 ·
387f7668b· 上线 PR #43(adler):购物车增加「你想要什么」意图输入,并把意图传给起草与求人做 · 依据 #19428, #19432, #19611 · 验:deploy_check 通过;生产 smoke 7/7(uicheck 148 项) - 2026-09-23 23:30 ·
bac9cdab4· 上线 PR #42(hopkins):起草支持原样拼接「你想要什么」意图,并把意图带进求人做单子 · 依据 #19428, #19432, #19611 · 验:deploy_check 逐字节一致;生产 smoke 7/7(uicheck 148 项) - 2026-09-23 22:00 ·
970b7ad25· 上线 PR #39(hopkins 后端)+ #35/#40/#41(adler 页面,取栈顶一次上)——求人做放开本机模型 · 依据 — · 验:求人做收本机模型(pulid local=true);lock_append 拒本机图且不误伤 nb(带对照);smoke 7/7 - 2026-09-23 21:25 ·
4e75ae7d0· 上线 PR #38(adler):私聊分组可折叠 + 没头像用首字母圆(Tom #19323 在 #bug 提的两件) · 依据 #19323 · 验:副本 22/22(两个宽度);生产上单独验了「头像坏掉回退成首字母圆」;生产 16 行 = 10 真头像 + 6 首字母 - 2026-09-23 21:15 ·
54c89bb60· PuLID 适配器:显存预检 + 硬崩时说人话(Tom #19338 第一次真用就崩) · 依据 #19338 · 验:复现 Tom 的输入成功(非输入问题);两档显存闸(拒/警告各验一次);硬崩退出码翻译 - 2026-09-23 21:00 ·
284677f87· 上线 PR #37(bradstreet · /api/presence 在线状态,已重启)+ PR #36(adler · 侧栏分组显示) · 依据 — · 验:副本 6/6(断连 12s 回落、wait 行为不变);线上停自己监听 25s 下线;smoke 7/7;adler 线上独立复验 6/6 - 2026-09-23 20:36 ·
d9c7f6f5b· 上线 PR #34(hopkins):购物车模型多选的后端(一条的 model 收字符串或数组) · 依据 — · 验:单模型字符串/数组老形状不变;两个模型展开 2 张带模型标记;PR33 的 _land_local 部署后仍在 - 2026-09-23 20:28 ·
709cfba50· PuLID 走 /casting:适配器 cast_adapter_pulid.py + 上线 PR #33(hudson #19124 / #19162 / #19128) · 依据 #19124, #19128, #19162 · 验:真机端到端 104.5s/9.89GiB(跑前空闲9.6GB、无并发);负面 7/7;浏览器点通作业 41 落 out_manual、record local_only=true - 2026-09-23 19:31 ·
9b9d18537· 收敛完成:剩下 4 处写台账的也改走 rework_log.update,全仓只剩一处真写(hudson #19097 第二件) · 依据 #19097 · 验:哨兵四层 28/28;写入口收敛成 rework_log 一处;真台账 mtime 未变 - 2026-09-23 19:25 ·
cf48cd912· 上线 PR #32(hopkins):返修台账统一写入口 rework_log.update(),8 处改走它(已重启) · 依据 — · 验:撤回回滚 15/15(含字段不被抹、不相关行不动);哨兵四层 28/28;退回附图回归 39/39;smoke 7/7 - 2026-09-23 19:11 ·
c68fced27· watch_health:谁的监听哑了,一跑就看得见(Tom #19068/#19077/#19084 那一串逼出来的) · 依据 #19068, #19077, #19084 · 验:11/11 含四种必红用例;真事件中用它查出 hudson 那次「全绿却聋」的短板并写进文件头 - 2026-09-23 18:57 ·
a81624cab· 监听补上「到期到重挂」那道缝:从上次看到的那条接着看,不再从此刻重新开始(Tom #19052) · 依据 #19052 · 验:副本 8/8,含「删掉进度文件就收不到」的对照;两处测试夹具错误已记录 - 2026-09-23 18:45 ·
1b5bf647e· 哨兵往返测:台账里「谁都不认识的字段」必须活下来(toby #19043 提,四层实现) · 依据 #19043 · 验:28/28 退出码 0(六处写入口全覆盖);自检层证明投影式写法 4 项哨兵全被抓到 - 2026-09-23 18:39 ·
3be910396· 上线 PR #31(hopkins):gpt2 multi 改 True + MAX_REFS 封顶 2;适配器文档更正(bradstreet) · 依据 — · 验:两张真图(两参考生效 + 不同角色不串脸,$0.030);副本三张被 G4 拦、两参考契约 --dry ok;gen_meta 热重载 multi:true;smoke 7/7 - 2026-09-23 18:20 ·
1ba0cf037· 上线 PR #30(adler):跳转上限 10000→3000;「PR #28」不再当站内消息号 · 依据 — · 验:副本 17/17(灌到 4020 条让 3000 上限真被越过;11 个 PR 写法用例);smoke 7/7 + uicheck 148 - 2026-09-23 18:13 ·
bf03a6b09· 台账:定妆记录的身份改成读 record 里的字段,不再从文件名反推(hudson #18837) · 依据 #18837 · 验:fixture 双向(新格式出 CAST_HALF_GREY_FRONT/v007;老格式一字不差);生产热重载后行数不变 2289/3963 - 2026-09-23 18:12 ·
3403c51d9· 上线 PR #28(adler):点「#17525」这类老引用能跳到原消息;打不开时明说 · 依据 #17525 · 验:副本 10/10(灌 420 条造出「目标在初始 300 条之外」);线上跳 #17525 0.58s / 300→1000 条;smoke 7/7 - 2026-09-23 18:03 ·
670c002f0· 加 #bug 频道(Tom #18940):界面 / 工具 bug 专用,且程序岗在这个频道一律被叫醒 · 依据 #18940 · 验:真 mine() 11/11(程序岗醒/制作岗不醒/老行为四项不变);生产 /api/state 两个项目都列出 #bug,无需重启 - 2026-09-23 17:59 ·
40ef1c3b1· 上线 PR #26(后端 cast_refs,hopkins)+ PR #27(两个页面,adler):首尾帧退回可附定妆图 · 依据 — · 验:副本 39/39(六种坏路径都验「一个字没写」;单独验 /api/rework 也带 cast_refs);重启后 smoke 7/7 + uicheck 148 - 2026-09-23 17:45 ·
4476f3502· 上线 PR #25(gpt2 表项)+ PR #24(record 身份字段)+ PR #20(PuLID 灰行) · 依据 — · 验:契约 6/6 真适配器 --dry;G4 多参考拦 gpt2;deploy_check 通过;gen_meta 热重载出 gpt2;smoke 7/7 + uicheck 148 - 2026-09-23 17:35 ·
d6067d25a· 给 Tom 一个能自己跑的 PuLID 入口 pulid_make.py(hudson #18849) · 依据 #18849 · 验:pulid_flux --selftest 15/15;端到端真出一张(seed 42/99.6s/9.89 GiB),out_manual/ 里图与 record.json 都在 - 2026-09-23 17:35 ·
28a3e2da5· 定妆加 gpt2 适配器(gpt-image-2.0 eco,bradstreet 写,watson 验收) · 依据 — · 验:Live 根 --dry 与 cast_gen.adapter_cmd() argv 一致;2K 出请求体+标价 0.015,4K 拒 BAD_ARGS - 2026-09-23 17:16 ·
9bbff457f· 上线 PR #23:横滚补全(adler)+ ui_check 覆盖三个页签、展开折叠区 · 依据 — · 验:部署前生产实测 5 页横滚(PROP10+801/12+805/16+771/27+799/28+803),部署后 7 页全 0;ui_check 改对后在修复前的生产上 FAIL 2/148 并点名五页(这是真对照),修复后 148 项全过。 - 2026-09-23 16:55 ·
9a35a7e14· 修掉手机横滚(adler #22,随 #21 一起上)+ 补上 ui_check 的盲区 · 依据 — · 验:生产 CH01 横滚 574→390(CH02/CH09 本来就正常);注入对照:同一个长文件名,旧 CSS 撑出 120px、新 CSS 0px;ui_check 逐角色量,生产 148 项全过(原 146 + 深浅两条新检查)。 - 2026-09-23 16:39 ·
a582117d8· 上线 PR #21:参考图用途「+ 其他(自己填)」(adler) · 依据 — · 验:页面与后端 FREE_USE_RE 实测 16 个用例判定完全一致;回归 购物车界面 44 + g25 36 + 接口 22;adler 自报的 × 按钮坑复验 42.4×44 可见;生产 smoke 7/7 + ui_check 146/146。 - 2026-09-23 16:25 ·
8e55039d1· 上线 PR #19:自由填用途 x-(hopkins) · 依据 — · 验:副本 6/6(face+x-表情 过 / uses 带 x- 且 use 仍第一个 / x-face 拒 / 没 x- 的中文拒 / 含「发色」只警告 / 购物车 0.14);生产 smoke 7/7 + ui_check 146/146;适配器已先上,契约 12/12。 - 2026-09-23 16:20 ·
3681b54a7· 上线 PR #17 + #18(adler):用途多选标签 + 前三字段可不选 · 依据 — · 验:副本:#17 专项 8/8(7 个标签、热区 ≥44、能多选、无报错)+ #18 专项 4/4(状态档默认「(不选)」、画幅 12 项来自服务端)+ 回归 102 项;生产 smoke 7/7 + ui_check 146/146;热重载未重启。 - 2026-09-23 16:13 ·
54a71968b· 上线 PR #16:前 4 字段可留空 + 固定画幅真的传出去(hopkins) · 依据 — · 验:副本 8/8(aspects 12 项 / 固定 16:9 过 / 7:5 拒 / 档位视角状态档留空过 / 填错仍报错 / 购物车 0.14);生产 smoke 7/7 + ui_check 146/146;热重载未重启。适配器 f554d56da 已先上,两边契约 10/10。 - 2026-09-23 16:10 ·
c2d626adc· 上线 PR #15:全页的图都能加购物车(adler) · 依据 — · 验:副本回归 102 项全过(购物车界面 44 + g25/回归 36 + 购物车接口 22);生产 smoke 7/7 + ui_check 146/146;热重载未重启。 - 2026-09-23 16:00 ·
7e88cb062· 上线 PR #14:定妆参考「用途多选」后端(hopkins) · 依据 — · 验:副本 7/7(uses 列表 / face+hairstyle 字符串 / 单用途一字不差 / 坏用途整条拒 / 购物车 0.14);生产 smoke 7/7 + ui_check 146/146;热重载未重启。部署的是 PR #14 最终 HEAD 194b925,不是我先前验过的 0475b84。 - 2026-09-23 15:35 ·
2bd36aebe· 上线 PR #12 + #13(一次重启):定妆「求人做」——交给同事写词,tom/hudson 生成 · 依据 — · 验:副本 109 项全过(求人做端到端 5/5 + 购物车 22/22 + 界面 44/44 + g25 36/36);生产重启后单进程 PID 93408、smoke 7/7、ui_check 146/146、上线复检 5/5。 - 2026-09-23 06:38 ·
3bab7c45e· 上线 PR #11:起草只留确定性骨架,去掉 AI 占位与每次都弹的警告(hopkins) · 依据 — · 验:副本 5/5(起草仍可用、不再有「这次没用 AI」警告、mode/model/cost 字段仍在、骨架非空、购物车回归 0.14);生产 smoke 7/7 + ui_check 146/146;热重载未重启。 - 2026-09-23 06:21 ·
531aeda48· 上线 PR #5 + #10(一次重启):G1 软提醒 + 起草提示词 + 适配器目录单一真身 + 配对公告发 live · 依据 — · 验:副本 116 项全过;生产重启后单进程 PID 119564、smoke 7/7、ui_check 146/146、浏览器 32/32、接口 5/5(nb 与 g25 都亮、起草与生成对非 tom/hudson 均 403)。跨角色确认那个洞已实测修好(fixture 缺 CH06 会漏测,补了真图才跑起来)。 - 2026-09-23 05:54 ·
e3454f42e· 上线 PR #9:适配脚本不在盘上就自动暂停该模型(adler) · 依据 — · 验:自动判断 9/9(挪走脚本不重启即暂停、放回即恢复);购物车回归 接口 22/22 + 界面 36/36;生产 smoke 7/7 + ui_check 146/146;上线后生产 nb 亮、g25 灰(适配脚本未就位)。连带修了适配器放错仓导致 live 下出图必失败的 bug(Live 仓 ca317842)。 - 2026-09-23 05:32 ·
3094b5125· 上线 PR #7:g25 暂停——下拉灰显写明原因,API 层也拒(adler) · 依据 — · 验:g25 闸 9/9(单条 / 购物车 / 直调接口都拒,nb 未误伤);界面 36/36(g25 灰显写明原因、不偷偷消失);购物车回归 接口 22/22 + 界面 44/44;生产 smoke 7/7 + ui_check 146/146;未重启(PID 41552 不变)。 - 2026-09-23 05:19 ·
08825d7a0· 上线 PR #6:/casting 定妆购物车 + 落盘撞号不再让已扣费的图失败(adler) · 依据 — · 验:smoke 7/7 + ui_check 146/146(生产);接口 22/22 + 真跑 11/11 + 界面 44/44(8766 副本,假适配器不花钱);上线后生产复检 32/32。撞号修复做了对照实验:同一探针 main 失败(扣费后 FileExistsError)、PR #6 取下一个号成功。server.py 未动,未重启(PID 41552 不变)。 - 2026-09-23 04:01 ·
4a7a90a9e· 间歇 502 的真因:监听队列只有 5(adler #18148)——改 256,实测 260 并发全过 · 依据 #18148 · 验:经 tailnet 开 /casting(260+ 图)不再出现「重连中…」条;本机并发 260 条连接 0 失败 - 2026-09-23 03:56 ·
9d316a13e· 上线 PR #4:设备配对(hopkins)——6 位码批准接入,密钥不经任何人之手 · 依据 — · 验:目标机跑 tools/pair_client.py → 屏幕出 6 位码;Tom 在 /console 输码批准;目标机自动拿到新 token 写入本地;非 tom 调 /api/pair/approve 得 403 - 2026-09-23 03:49 ·
fc71307ae· 上线 PR #3(通知箱已读只标看过的 + 输入行钮 44,adler)+ ui_check 判据拆分 · 依据 — · 验:手机 390 宽开聊天:输入行四个钮各 ≥44×44 能一指点中;通知箱开着时当前频道不再被标已读 - 2026-09-23 03:32 ·
aa07b676a· 上线 PR #2(定妆出图工具 cast_gen.py)+ 绕闸开关启动警告 · 依据 — · 验:用非 tom/hudson 的 token 调 /api/casting/generate 要得 403;/casting 页角色卡上出现「生成」按钮 - 2026-09-23 02:10 ·
19690290d· /casting CH06 显示错两处(hudson #17927,Tom 正在看):候选节被当正式节、点名的 1x3 被拼板规则滤掉 · 依据 #17927 · 验:开 /casting?project=live 看 CH06 正式栏:五张 _1x3(FACE_v006/v007、FULL_COSTA_BRAID/COSTC_SHAWL/COSTB_COAT)都在,附图 FRONT_v003_1/_7 不在 - 2026-09-23 01:36 ·
c5dfa149d· /files/ 鉴权重新上线 + 合并 hopkins PR #1(wait 的 dm= / from=),同一次重启 · 依据 — · 验:裸请求 /files/<附件> 401、带 X-Token 200;/api/wait 加 dm=1&from=tom 比只带 mention 多收到消息;live_frames 三页 + ledger 无提示条、0 报错 - 2026-09-23 00:05 ·
91a2fee1f· /casting 归属误判:备注里「提一嘴某人」不再算作服装归属(hudson #17346) · 依据 #17346 · 验:开 /casting?project=live 的道具页:PROP28「两束头发」在道具页上(不再挂在 CH05 名下);CH01 的服装仍是 PROP08/09/11
2026-09-22
- 2026-09-22 23:52 ·
c21186bcc· /ledger 改版:统计栏分层、缩略图定尺寸、行间有呼吸(Tom #17510 via hudson #17512) · 依据 #17510, #17512 · 验:开 /ledger:顶部是两个大号数字 + 右上角 ElevenLabs 徽标 + 「按集分项」可展开;点开任一行,表头与正文对齐、金额列始终在屏内;缩略图 72×72 固定、文件名悬停才出 - 2026-09-22 23:36 ·
4b6eb2eb4· live_frames:首尾帧候选只认干净文件名,别再把归档件当尾帧(hudson #17492 ①) · 依据 #17492 · 验:开 /review/live_frames?ep=EP12 看 L-S16:尾帧位是「无尾帧·单帧自锚」而不是 _selfanchor_unused_alt,右上角仍「已通过」、锁仍 TOM_PASS;全量 337 镜比对裁定 0 变化 - 2026-09-22 22:18 ·
79cbe91d2· 台账对 project=live 整页 500 的修复(hudson #17313):钱字段不再假设一定是数字 · 依据 #17313 · 验:curl -H "X-Token: <自己的>" "http://127.0.0.1:8765/api/ledger?project=live" → 200 且 rows 非空(2199 行);/ledger 页面切到真人版能出行 - 2026-09-22 20:48 ·
6e2d060d6· /files/ 访问控制(hopkins 规格 v1 A 案,hudson #17071):会话 cookie + X-Token 双路,URL 一个字不改 · 依据 #17071 · 验:重启后:curl 裸请求 /files/<任一附件> → 401;带 X-Token → 200;浏览器(有 cookie)直接看图/拖视频 → 200/206;图标走 /static/copperchat_icon.png - 2026-09-22 17:16 ·
afac00699· 审核表幽灵行(hudson #16916/#16919):分镜表是各版合并的,旧号会永远留着——现在按证据丢弃两类幽灵:① 重编号(只在旧版分镜表里、锁 / 站位 / 盘上都没有)② 拆镜(父号还在最新分镜表里,但 A/B 子号已有锁或帧);有站位 / 有锁 / 有帧的一律保留(不误伤还没出帧的镜) · 依据 #16916, #16919 · 验:smoke 7/7;副本回落 8/8 + 过滤 18/18 + 叠看 18/18;线上八集行数 EP01 23→22 · EP12 20→19 · EP13 21→19,其余五集(EP07 17 / EP08 16 / EP09 18 / EP10 16 / EP11 17)一行未变;全仓「无首帧的行」从 4 变 0 - 2026-09-22 16:04 ·
eb0075c96· 自愈判据修(hudson #16827 / gregson #16830):把 END 移进 end_frame_unused ≠ 换尾帧——裁定的 end_sha 等于 end_frame_unused.sha256 时签字仍然有效;顺带把 end_frame_unused 的 sha 带进页面用的 lock 摘要(之前摘要里没有这个字段,判断根本拿不到) · 依据 #16827, #16830 · 验:smoke 7/7;副本回落 8/8 + 过滤 18/18 + 叠看 18/18;线上全仓 dry run:修前会改 0 条(漏报)、修后 1 条(EP11-L-S02 补 TOM_PASS),落盘后该镜页面 pass、锁 numstat 1 增 1 删、end_frame_unused 及其签字字段原样保留 - 2026-09-22 15:26 ·
04485bb75· 锁表写回保持原缩进 / 行尾(billy #16731 / gregson #16737):新增 dump_lock(),按文件现有的缩进宽度和 CRLF/LF 写回——之前固定 indent=2 写回 indent=1 的文件,只改两个字段却出现 445/448 的整份 diff(正是 hudson #16563 禁的整份写)。实测:不改任何字段 numstat 0、只改一个字段 1 增 1 删 · 依据 #16563, #16731, #16737 · 验:smoke 7/7;自愈专测 8/8;EP10 锁表实测 numstat:不改=0、改一字段=1/1(此前同样操作是 445/448) - 2026-09-22 15:23 ·
a7b966db0· /rework 出帧方 chip 两个数并列(toby #16724):台账 N(REWORK_LOG 行,按 _src=log 算)· 含备选 M(加上生成台账推出的备选行);口径写在筛选条 title 上不藏细节。线上实数 billy 台账 85 · 含备选 918 / toby 40 · 423,与仓里文件一致 · 依据 #16724 · 验:smoke 7/7;线上 chip = billy 台账 85 / toby 40,与 Live REWORK_LOG.json 逐行数一致(此前按 result!=alt 算得 224/75 是错的,备选行里也有非 alt) - 2026-09-22 15:14 ·
8867cb9a3· /rework 两件(toby #16619 对账 → hudson #16625):① 新增「撤单」状态(rework_add.py verdict --result cancel;不做了 / 误开的行不记 pass,免得以后查历史以为交付过),页面筛选和状态标都认它;② 加「按出帧方筛」(桌面 chip + 手机下拉,读嵌套 resp.made),并把口径写在筛选条 title 上——顶层没有 made,按顶层查会得到 0 行 · 依据 #16619, #16625 · 验:smoke 7/7;线上桌面 + 手机 10/10(撤单出现在结果筛选、出帧方筛只剩该人的行、口径在 title、刷新记住);线上实数:billy 130 行 / toby 9 行 - 2026-09-22 14:53 ·
de0f15831· /ledger 提速 + 收紧(Tom DM #16570 via hudson #16571):/api/ledger 支持 gzip(2.27 MB → ~180 KB 级,压缩比约 13×);页面一行一条(镜号 · 版本 · 小图条 · 金额),点一行才展开方式 / 参考 / 蒙版 / 输出;缩略图最多 3 张 + 「+N」、lazy + 固定占位;金额等宽 tabular-nums 右对齐;表头吸顶;手机收起行只留必要字段,不横滚 · 依据 #16570, #16571 · 验:线上前后对比(同一台服务、同一份数据):手机传输 5.18 MB → 1.29 MB、页面高 23466 → 4466 px、行高 ~390 → 77 px;桌面 5.88 MB → 1.68 MB、页高 6254 → 3473;首屏出行 0.7 s / 0.07 s 不变;smoke 7/7 - 2026-09-22 14:37 ·
98ee0bcc6· 锁表自愈(hudson #16563 ①):审核表每次读该集时,用页面算出的当前裁定对齐锁表——页面判 pass 而锁里没 TOM_PASS 就补写,锁里有 TOM_PASS 而页面不认(换版本 / 尾帧换了)就清成 PENDING;只碰 status / tom_status / tom_pass_*,不碰 file / end_frame / hudson_status;写锁表带指纹 updated_by(hudson #16563 ③) · 依据 #16563 · 验:smoke 7/7;副本 38/38 + 自愈两向专测;线上全仓 dry run 只改 4 条(EP07 S12/S14 补、EP01 S18 / EP11 S02 清),逐条核过裁定文件与盘上 SHA - 2026-09-22 13:51 ·
a7f4137bc· 审核表「叠看」(一张机位漂移的坏 END 过了审 → hudson #16411/#16416):每镜首尾帧都在时给一个叠看钮——尾帧叠到首帧上、拖滑块左右擦除、再点回并排;两张进同一个框同样缩放(按画面四角对齐,不做内容对齐),限高一屏装得下;出帧方报进 <帧>.png.check.json 或 record.json 的「整帧差 / 四角差」直接显示在图上(读不到显示「未报数」,页面不自算),判据小字跟在下面 · 依据 #16411, #16416 · 验:smoke 7/7;副本 + 线上 手机 / 桌面 各 18/18(钮出现 / 叠看切换 / 两图四角对齐 / 滑块擦除 / 报数显示且不被顶栏盖住 / 未报数留空 / 不横滚 / 再点回并排 / 无报错) - 2026-09-22 13:15 ·
0fe223679· 附件名手机端再收窄到 21 字(扩展名被 CSS 省略号二次截断,Tom #16287)+ 手机展开钮用 ▾/▴ 省地方 · 依据 #16287 · 验:smoke 7/7;线上 20/20;手机长名显示 LIVE_SEASON…UBLINE.md(扩展名保住),桌面全名不截 - 2026-09-22 13:12 ·
5e23651e6· 聊天附件显示(Tom DM #16287–#16290 via hudson #16291):① 附件名窄屏中间省略(保头尾 + 扩展名,手机 26 字 / 桌面 44 字),单行不撑破气泡,完整名在 title / 长按;② 有文档附件时纵向排、收紧行高间距;③ .md/.txt 点一下就地展开渲染(表格可横滚、标题分级、代码 / 引用样式),再点收起,不跳下载;④ 展开顶部一行「文件名 · SHA8 · 大小」,底部留「全屏看 / 下载」;服务端加 ?view=1&frag=1 只回片段(/files 与 /repo 两条路都支持,片段不带 body 样式免得污染聊天页) · 依据 #16287, #16290, #16291 · 验:restart_server smoke 7/7;线上手机 390px + 桌面 18/18(名字不撑破气泡 / 完整名 title / 展开渲染 + SHA 行 / 表格可横滚 / 再点收起 / 不污染页面背景 / 无报错) - 2026-09-22 12:06 ·
d585b7040· 审核表 TOM_PASS 自动收口返修行(toby #16099 对账 → hudson #16102/#16112):/review/live_frames 判 pass → 该镜还开着的「首尾帧审核表」行(returned_by=tom、result=doing)收成 pass,写 tom_at / pass_file / pass_sha256 / sign;判 back → 保持 doing 并在行里记一次 tom_backs(新行照旧开);12.9 那条路径不动。另加 tools/rework_backfill_live.py(默认 dry run)补历史 · 依据 #16099, #16102, #16112 · 验:restart_server smoke 7/7;副本 live_test:过 → 收口 1 行、退 → 保持 doing + tom_backs + 新行,原 38/38 不回归;线上回填 50 行(清单 Live/00_project/rework/BACKFILL_2026-09-22.md),/rework 抽查 EP09 #3 / EP10 #109 / EP11 #121 显示「通过 · 签字 Tom /review/live_frames」,#124 仍「进行中」 - 2026-09-22 08:05 ·
cebc4404f· /casting 服装归人物(Tom #15686/#15690/#15748 via hudson #15688/#15692/#15750):锁表里点名归某角色的 PROP 行 = 那个人的服装——人物页底部「服装 / 造型」组(CH01 = 蓝裙 PROP08 / 灰裙 PROP09 / 睡袍 PROP11 短发 · 长发),图仍读 02_assets/props/ 原路径不复制;道具 tab 只留真道具(有归属的不再出现);★ 道具 / 场景行的组名去粗体 / 括号说明 / ID 前缀,归属也认「归属 CHxx」写法 · 依据 #15686, #15688, #15690, #15692, #15748, #15750 · 验:smoke 7/7;线上桌面 + 手机 12/12(三套分组 / 原路径 / 图加载 / 折叠记忆 / 道具 tab 只剩 PROP10、PROP12) - 2026-09-22 07:44 ·
0f2bf1fcb· 审核表过滤修(Tom #15759 via hudson #15760):分段数字只按状态算,和顶栏「已过 x / N」同一份数据;过滤结果为 0 时本次显示逐级回落(先关「只看有新版本」再回「全部」)+ 卡片区一行提示,记忆里仍是 Tom 选的那类(下次有新的直接看到);说明行「显示 K / N」= 实际显示数;开关按屏幕上看到的状态切换 · 依据 #15759, #15760 · 验:smoke 7/7;线上 EP09 / EP07 桌面 + 手机 18/18 + 回落专项 8/8 - 2026-09-22 03:11 ·
9397a684a· 场景平面图(Tom DM #15105 via hudson #15107 / #15152):set_plan.py —— 从 EPxx_STAGING json 出一张按场景的总平面:墙 / 窗 / 壁炉 / 门 / 固定道具(各镜 props 并集)+ 该集所有用该场景的镜的机位(编号 + 视锥 ±28°,同位同向合并)+ 人物位置(同人 6% 内合并成一个圆点、列镜号;身体箭头 / 头 tick / 视线虚线 / 走位点线按该镜机位换算)+ 右栏场景说明 / 机位表(按像素换行)/ 图例,CJK、2× 画布;CLI --ep --set(--list 列场景);/set_plan.png?project&ep&set 现画按 STAGING mtime 缓存;审核表顶部每个场景一个可折叠「场景平面图」;/casting 场景 tab 每个 SCxx 列各集平面图(SCxx_* 变体也归入) · 依据 #15105, #15107, #15152 · 验:restart_server smoke 7/7;线上桌面 + 手机 16/16(审核表两张折叠 / 展开加载 ≥1000px / 灯箱;/casting SC08 5 张跨集;角色页无) - 2026-09-22 03:03 ·
bde4748c1· /casting 标记收敛(Tom DM #15130 via hudson #15132):↩ 挪卡片右下角 24px 半透明深色小圆白细线;已过 / 已退回 / 已替代改左上细 pill(半透明底小字,与状态点同行);台账 chip 同风格;组级 ↩ 收成 24px 灰圈无红边 · 依据 #15130, #15132 · 验:smoke 7/7;副本 iPhone 11/11 + 量测(↩ 24px 不压标、pill 与状态点同行、组级 ↩ 24px) - 2026-09-22 02:59 ·
ac552bdf0· /casting 手机端退回入口(Tom DM #15112 via hudson #15115):触屏每张 ★ 图右上常显小 ↩;点图弹底部动作条「看大图 / ✓ 通过 / ↩ 退回(批注框)/ 取消」;通过 = 记 verdict pass(绑 SHA,换版本作废)→ 绿 ✓「已过」小标,不发消息不进台账,退回过的再通过 = 清待重出;电脑端不变 · 依据 #15112, #15115 · 验:restart_server smoke 7/7;副本 iPhone 13 + 桌面 11/11(常显 ↩、动作条四项、通过 → 绿标 + 结果文件 pass 绑 SHA、退回 → 批注框 → 台账行、电脑端悬停 / 灯箱不变) - 2026-09-22 02:20 ·
855f16b23· /review/live_frames 顶部状态过滤(Tom #15009 via hudson #15013):待裁定 / 已通过 / 已退回 / 全部 分段控件(每段带数字,Tom 默认待裁定、其他人全部)+「只看有新版本」(裁过后首帧换了版本、回到待裁定的镜,可叠加);数字跟着过滤,说明行显示「显示 K / N 镜」;记住选择 · 依据 #15009, #15013 · 验:smoke 7/7;线上桌面 + 手机 18/18(四段数字、切换只显示对应状态、新版本叠加、记住、不横滚) - 2026-09-22 02:09 ·
8174f59f8· 通知箱过滤条压成一行(Tom #14958 via hudson #14965):左 类别分段控件(需要我裁定 / @我 / 系统 / 全部)· 中 项目 chip(再点取消 = 全部)· 右 人下拉 + 私信图标开关(角标 = 私信未读);「未读 N · 共 M」进标题右侧小字(手机只放未读数,换行到标题下);空状态「没有需要你处理的」+ 留白;手机两行等高 · 依据 #14958, #14965 · 验:smoke 7/7;线上桌面 / 手机 × 聊天页 / 子页 44/44(一行 / 两行等高、不横滚、计数不裁、私信钮) - 2026-09-22 01:45 ·
d5a626ef4· 「+ 申请新图」默认归属按 hudson #14644 分工(#14904):CH02/03/04/05/09 → toby,CH01/06/07/08/10/AN01 → billy,场景 / 道具 → toby · 依据 #14644, #14904 · 验:restart_server smoke 7/7;副本 CH01→billy / CH04→toby / SC08、PROP10→toby - 2026-09-22 01:42 ·
66cfd12d6· /casting 每个角色 / 场景 / 道具页顶部「+ 申请新图」(Tom #14860 via hudson):选组(现有组 / 新组名)+ 一句要求 + 可选参考图 → live todo 一条(owner 按归属:角色 billy、场景 / 道具 toby,可改)+ #assets 一行 @hudson @owner + 申请记录 reviews/casting_requests.json;申请之后新落盘、还没进 ★ 的图在该组里以「待审」显示(todo 完成即关),Tom 过了进锁表才 ★;POST /api/casting/request,GET /api/casting 带 requests / nicks · 依据 #14860 · 验:restart_server smoke 7/7;副本 13/13(表单 / 上传参考图 / 提交 → 申请记录 + todo owner toby + #assets 一行带附件 / 待审组「等出图」/ 新落盘 1 张 → 「1 张待审」);线上桌面 + 手机开表单无报错 - 2026-09-22 01:34 ·
458bf81a1· 通知箱过滤(Tom via hudson #14839/#14843):类别「需要我裁定 / 只是 @我 / 系统自动帖 / 全部」(Tom 默认「需要我裁定」= 带 请裁 / 待裁 / 待你裁 的 @我或私聊;其他人默认全部)+「私信」一档可叠加 + 按项目(动画 / 真人 / …)+ 按人;私信未读数单独显示在私信钮角标 + 计数行;/api/inbox 新增 cat / dm / from 参数,count 返回 dm_unread;手机同样 · 依据 #14839, #14843 · 验:restart_server smoke 7/7;线上 Playwright 桌面 + 手机 × 聊天页 + /board 40/40(四类切换、私信叠加、按人 hudson、按项目动画、不横滚、无报错) - 2026-09-22 01:20 ·
81a79083a· /casting 场景 / 道具页:按 CASTING_LOCK「★ 道具 / ★ 场景」节分组(行首 SCxx / PROPxx = 该行 ID,组名 = 行首列),有 ★ 即有退回(单张 + 整组,台账 shot=SCxx_<组> / PROPxx_<组>),旧版折「草稿 / 历史」;*.mask / _REF_crop 不展示;&ch=SC08 / PROP10 自动切页;场景 / 道具缩略图标签去 ID / PHOTOREAL(Tom #14809/#14810 via hudson #14812,toby #14814) · 依据 #14809, #14810, #14812, #14814 · 验:smoke 7/7;副本(CC_REVIEW_ANY)18/19:PROP10 整组退回 → 台账 shot=PROP10_背窗椅 4 张 assets_extra + #review 一行 + 4 张标已退回;SC08 单张退回 → shot=SC08_MASTER_DAY v003;角色页输出与旧版逐字段一致(仅 AN01 不再误挂场景行、CH01 mask 不显示) - 2026-09-22 01:11 ·
7d84c30ae· 「台账 N 条」小链接:/review/live_frames 每镜首帧「版本 · SHA」行末尾 → /rework?project=live&shot=EPxx-L-Sxx;/casting 每张图左下 → /rework?project=live&file=<路径>;无记录不显示;/rework 新增 ?shot= / ?file= 过滤(Tom #14786 via hudson #14787) · 依据 #14786, #14787 · 验:smoke 7/7;scratch 14/14(链接 / 过滤)+ test_lf 38/38(live_test 副本);线上 EP09 L-S01「台账 4 条」、/casting CH05 9 张带链接截图 - 2026-09-22 00:49 ·
7fb070083· /review/live_frames 参考图:record 里 ../AIDrame_TheCopperBeeches_Live/… 相对路径落回仓库(之前只剩文件名 → 找不到 → 参考行缺图,Tom #14768 via hudson #14773) · 依据 #14768, #14773 · 验:线上 EP09 L-S01 v406 参考 4 张(FACE_v003_34 / HEADSHOULDER_v001_34 / FULL_v006_E2 / v405) - 2026-09-22 00:43 ·
1173d6765· /review/live_frames 站位简图:head_facing / body_facing / looks_at 八向 + off-frame 八向(画到画框边打箭头),CHAIR 等按 id 关键词画、画外道具虚线;有 STAGING 数据时现画 SVG,不再优先 staging/ 里的旧 PNG(Tom #14744 via hudson #14745);首尾帧下各加一行参考图缩略(按 Picture 顺序、点开灯箱、标签去前缀,Tom #14747 via hudson #14748) · 依据 #14744, #14745, #14747, #14748 · 验:副本(真人版真实数据)EP09 S02:身体箭朝下、头尖右上、紫线到右上画框边、STAIRS 在右上;参考行 LS02_FIRST_v402;smoke 7/7 - 2026-09-22 00:35 ·
9bb42da08· /review/live_frames 卡片首尾帧缩略图长边 1000(/thumb&s=1000);灯箱一直是 /repo 原图 PNG 可缩到 1:1(Tom #14728/#14729 via hudson #14731) · 依据 #14728, #14729, #14731 · 验:线上 EP09 L-S01 卡片图 558×1000、灯箱 naturalWidth = 原图;/casting 灯箱同为 /repo 原图 + 缩放 - 2026-09-22 00:34 ·
30e0a7c87· /review/live_frames 导演版(Tom #14714 via hudson #14716):首尾帧大图为主并排(框随图宽、封顶 56vh、点开放大),镜头信息一行摘要 + 详情折叠(含站位句 / 视线),站位图放首帧旁,预审只读折叠,裁定一行(通过 / 退回 / 标注首尾帧 + 理由框 + 提交)+ 色点状态,已退回置灰「等新版本」;手机单列两帧并排 · 依据 #14714, #14716 · 验:副本 test_lf.py 38/38(全流程);EP09 桌面一卡 759px 含裁定行、手机不横滚;线上 smoke 7/7 - 2026-09-22 00:26 ·
beeede2bd· /review/live_frames:卡在「已退回」时裁定钮置灰显「等新版本」、选项 / 理由 / 标注不可点,新版本入锁(SHA 变)自动回待裁定(Tom #14708 via hudson #14712) · 依据 #14708, #14712 · 验:副本:退回 L-S01 → 钮「等新版本」disabled、选项不可点;改首帧 SHA → 恢复「提交裁定」待裁定 - 2026-09-22 00:20 ·
ef05326b4· /casting 退回可撤(hudson #14697):最后一条裁定为 keep(Tom 确认保留)→ 不再待重出,历史里标「确认保留」;FULL_GREY_v007_BACK 记 keep,台账 #10 该张 pass · 依据 #14697 · 验:线上 /api/casting:v007_BACK 不在 verdicts、history 里一条 keep;ui_deploy 换 live_frames.py + casting.html(无需重启) - 2026-09-22 00:16 ·
11142dbeb· casting.py 锁表解析(hudson #14687):只认「文件」列的反引号,第三列备注里的可选留档 …不再进组;★ 节里首列写「(作废…」的行按作废;一组混两种套按套拆开再排序 · 依据 #14687 · 验:真人版 CH01:半身·灰裙 = HALF_GREY_v006 ×3、全身·灰裙 = v008 ×3 + v007 BACK + v008 34BACK、13/13;POSE_GREY_v001 作废行不再进 ★;smoke 接口 4/4
2026-09-21
- 2026-09-21 23:40 ·
1d7500401· 聊天站内链接识别(Tom #14614 via hudson #14617):正文转义后查询串里的 & 成了 &,分号把 /rework?project=live&id=13 截断 → 识别时认 & 并在 href 还原;顺带认 #锚点 与 /changelog · 依据 #14614, #14617 · 验:副本 fmt():/rework?project=live&id=20、/casting?…&ch=CH05、/review/live_frames?…#c-L-S01、/changelog 四条整链识别、href 为裸 &;ui_check 走线上 smoke 7/7 - 2026-09-21 23:35 ·
93b8bc265· /casting 退回状态可见(Tom #14595 via hudson #14596):已退回 = 琥珀角标 + 缩略图压暗 + 组头「N 张待重出」;已替代 = 灰角标 · 依据 #14595, #14596 · 验:副本退 CH01 脸 FRONT → 角标「已退回」+ 压暗 + 组头「1 张待重出」;smoke 7/7 - 2026-09-21 23:35 ·
015d5f2b8· casting.py 锁表解析(billy #14593):标题以「(作废…」开头的节按作废(哪怕后面写「现行 = ★ …」);多角色共用表(行首 CHxx + 表头前缀 CHxx_PHOTOREAL_EYES_v002_ + 「同上」)按行归角色 → CH02/03/04/09 眼部九向 9/9 · 依据 #14593 · 验:真人版:CH05 眼部只剩 v003、CH02/03 眼部 9/9 必有 6/6、CH04/09 眼部 v001+v002 14 张(v001 段锁表未标作废) - 2026-09-21 23:23 ·
abfb5ca81· /review/live_frames 站位简图 v3(Tom #14544/#14545 via hudson #14547):viewBox 2×、字号 ≥14 px 等效、标签白底圆角框 + 描边、图层序 网格 → 道具 → 走位(细半透明,人下)→ 视线 → 人物点 → 标签、终点小空心圆、放不下引线拉开、缩写写进圆点 · 依据 #14544, #14545, #14547 · 验:副本 17 镜:标签框 + 人物点 88 个只 1 对相碰;L-S02 放大版可读;smoke 7/7 - 2026-09-21 23:20 ·
bacd36a2c· /casting(hudson #14550/#14556,toby #14557):锁表解析修正——「## ★ CH02 …」节也认出角色、标题带「作废」字样的 ★ 节仍算正式(之前 CH02–CH10 的 ★ 节全挂到 CH01 名下当作废,CH01 表情少一张、其余角色无 ★);没 ★ 前缀的正式节每表行一组;留档文件 _alt/_rN/_pre/_cmp 整体不显示;总表 / 条图不进 ★;头像用 FACE_FRONT;CH01 眼部按五向套 · 依据 #14550, #14556, #14557 · 验:真人版:CH01 必有 12/13(表情 12、眼部 5/5)、头肩 蓝 / 灰两组各 3;CH02–CH10 ★ 组按套出现;留档文件列表 0;smoke 7/7 - 2026-09-21 23:11 ·
a3e1245c8· /casting 导演版(Tom #14417/#14528/#14529/#14533 via hudson #14532/#14534;清单 #14523/#14526):头部横幅(大头像 + 名字 + 锁定 + 必有 N/N 进度条 + 缺项黄标 + 详情折叠含必有 / 可选清单按性别);组固定序 脸 → 头肩 → 半身 → 全身(蓝裙 / 灰裙)→ 表情 → 眼部 → 胸口 → 背视 → 牙齿 → 姿态,人话组名 + ⓘ;4:5 缩略图一行 6 张(手机 2)、色点表状态(绿锁定 / 琥珀待重出)、↩ 悬停 / 长按浮出、组头小 ↩ · 依据 #14417, #14523, #14526, #14528, #14529, #14532, #14533, #14534 · 验:副本(真人版真实数据)CH01:14 组按序、必有 10/13 缺 3 项黄标、桌面 6 列 / 手机 2 列不横滚、↩ 默认 0 个可见、长按浮出、62 绿点;线上 smoke 7/7 - 2026-09-21 23:01 ·
3a8659739· /casting 退回自动「已替代」(hudson #14517):退回的图不再在 ★ 里(新版本上 ★ / 挪到作废区)→ 从待重出清掉,历史退回里标「已替代」 · 依据 #14517 · 验:副本:退 HALF_GREY_v001 ×3 → 改锁表挪到作废区 → current 0、history superseded 3;restart smoke 7/7 - 2026-09-21 23:01 ·
73566f519· 聊天附件图偶发破图(服务重启窗口 / 外网抖动,Tom #14513 via hudson #14514):onerror 最多重试 3 次 · 依据 #14513, #14514 · 验:那张 png 线上 200 image/png 68 KB、PIL 打得开;ui_check 143/144 副本 - 2026-09-21 22:57 ·
227af78ca· 退回帖里「返修台账 #N」被聊天页当消息号跳错(Tom #14509 via hudson #14510):改成 /rework?project=<pj>&id=N 行链接;/casting、/review/live_frames 历史裁定里的台账号同样改成链接 · 依据 #14509, #14510 · 验:线上 /rework?project=live&id=8 只出那一行;restart smoke 7/7 - 2026-09-21 22:53 ·
1630dcb39· 站位简图(Tom #14492/#14494 via hudson #14493/#14497):字体带 CJK;标签四向避让、人物点压道具 / 他人时沿视线外推 + 细引线、放大版字号 ×1.5;聊天 mp4 附件改内嵌 <video playsinline>(保留灯箱链接,Tom #14499 via hudson #14501) · 依据 #14492, #14493, #14494, #14497, #14499, #14501 · 验:副本 17 镜标签 + 人物点重叠对 4/125;L-S02 放大版可读;ui_check 143/144(副本 404 噪音);线上 smoke 7/7;/files mp4 = h264 High yuv420p、video/mp4、Range 206(curl 核) - 2026-09-21 22:43 ·
1f60ce677· /ledger:废稿标记(hudson #14482):文件名带 _alt / _drift / _rN 且输出没进 FRAME_LOCK(动画版 EPxx_FRAME_LOCK*.json / 真人版 _LIVE.json)的行 result=discard → 整行灰显 + 「废」章 · 依据 #14482 · 验:真人版 51/1098 行标废(含 EP07-LS03 v405_r1_drift_alt),进了 FRAME_LOCK 的 _alt 记录不标;动画版 0 行;线上 anchor 32/32、smoke 7/7 - 2026-09-21 22:38 ·
5abec5b15· /review/live_frames 站位简图:视线点线(looks_at:人 / 道具 id、camera、off-frame-方向)+ 每人 looks_at / gaze_note 一行;body_facing 粗短箭头、head_facing 头圆小尖(缺省同身体),旧 facing = body_facing(Tom #14466/#14470 via hudson #14468/#14473) · 依据 #14466, #14468, #14470, #14473 · 验:副本 STAGING 试数据:L-S01 3 视线 + 3 身体箭 + 3 头尖、站位区 3 行 looks_at/gaze_note、无字段的镜不出;test_lf 38/38;线上 smoke 7/7 - 2026-09-21 22:17 ·
1e2417cde· /casting 退回整组取错组(hudson #14433):HALF 与 HALF_GREY 中文名都是「半身」,按名字找组取到第一组 → 改按组序号;折叠键同样加序号;台账 shot 带套名(CH01_半身·HALF_GREY_v001)区分 · 依据 #14433 · 验:副本 CH01 两个「半身」组:各自面板小图 = 各自文件、折叠互不影响、台账 shot=CH01_半身·HALF_GREY_v001;test_castgrp 14/14;线上 smoke 7/7 - 2026-09-21 22:04 ·
a1dbc307d· /casting 组头「退回整组」(Tom #14413 via hudson #14415):仅 tom;面板列组内小图(点去 /mask 画框)+ 一句意见 → 组内每张标红「待重出」(各按 SHA 绑定)、返修台账一行(shot=CHxx_<组名>,note 列文件名,assets 每张一条)+ live #review 一行 @hudson @出图人;单张退回不变 · 依据 #14413, #14415 · 验:副本 test_castgrp.py 14/14(组头钮不折叠、面板小图、拦空意见、面部 3 张整组退 → 全标红 / 台账一行 / #review 一行 / verdicts 3 条、单张照旧)+ test_castback.py 15/15;线上 restart smoke 7/7 - 2026-09-21 21:10 ·
aa57ea067· 子页顶栏统一 ← + ☰(Tom #14366 via hudson #14369):icons.js 给所有非嵌入、有 body>.top 的页面(/board /todo /ledger /rework /casting /review/* /console /changelog)左上加返回(history.back,没历史回 /)和导航抽屉(聊天 + 审核 / 制作 / 系统三组,链接带当前 project,当前页高亮);桌面同样显示 · 依据 #14366, #14369 · 验:副本 32/32(8 页 × 手机 / 桌面:← ☰ 可见不横滚、抽屉三组 + 聊天、遮罩关、抽屉跳转、← 回上一页 / 无历史回 /、聊天页 / 嵌入页不重复加);ui_check 143/144(副本 404 噪音);线上 smoke 7/7 - 2026-09-21 20:36 ·
0efe6acb1· /ledger(Tom #14306 via hudson #14312):RH 全球站 record 的 cost_usd 进估算列;输入不在仓库 → 灰「仓库外」占位 + 行尾 ⚠(不再破图);镜号从 runs/EPxx-L-Sxx~tN / EPxx-LSxx_FIRST_vNNN 推断;../AIDrame_TheCopperBeeches_Live/… 相对路径落回仓库 · 依据 #14306, #14312 · 验:副本:36 行仓库外输入灰占位 + ⚠、无破图;线上 test_ledger_anchor 32/32、smoke 7/7;LV2040 → EP07 L-S01 t6,RH 全球站行 cost_usd 0.06 - 2026-09-21 20:31 ·
fb9424909· 修 /casting 退回 502(hudson #14297):#14205 那次只换了 casting.html、live_frames.py 没换线 → 接口 AttributeError 断连接;补上线 + do_POST 兜底:内部异常回 500 JSON(栈进 server.err.log) · 依据 #14205, #14297 · 验:副本模拟藏掉 cast_shot → 接口回 500 JSON 带原因;线上 /api/casting 带 verdicts、watson 调退回 403(接口活);restart smoke 7/7 - 2026-09-21 19:56 ·
bf4f2b9c7· tools/live_frames_precheck.py:hudson 预审命令行(单镜 / --batch),走 /api/live_frames 写同一份预审 JSON,只认 hudson token(hudson #14268) · 依据 #14268 · 验:副本:--as watson 拒绝退出 1;CC_REVIEW_ANY 下单镜 + batch 2 条写入 result.json 字段正确(✓/✗、body=胸型);页面读同一份 - 2026-09-21 19:55 ·
0ebe6bfbe· /casting 定妆图退回(Tom #14202 via hudson #14205):★ 图上「退回」钮(仅 tom)+ 意见 + ✎ 画框标注 → 返修台账加行(ep=CASTING, shot=CHxx_套_视角, reason=原话)+ live #review @hudson @出图人(record 没写就 @billy @toby)+ 该张标红「待重出」;换版本后旧退回在角色块底部折叠;存 reviews/live_casting.result.json · 依据 #14202, #14205 · 验:副本 + 仓库副本 test_castback.py 15/15(退回面板 / 拦空意见 / 标红 / 台账行 / #review 行 / verdicts / 换版本折叠);castzoom 22/22;watson 看不到退回钮、接口 403;线上 smoke 7/7 - 2026-09-21 19:49 ·
e845eeb23· /review/live_frames:预审块只有 hudson 可填(接口 403 + 页面只读默认折叠);裁定块顶部再放「提交裁定」(实心铜色,存预审灰边);清掉 EP07-L-S02 里 Tom 误存的预审(hudson #14275)。server.py 同时预埋 /api/casting/verdict 与 /api/casting 的退回状态(#14205 页面下一提交) · 依据 #14205, #14275 · 验:副本 test_lf.py 38/38(含顶部提交钮通过流程);线上 watson:pre 接口 403、预审 details 折叠只读无存钮、顶部提交钮隐藏;restart smoke 7/7 - 2026-09-21 19:41 ·
f49e1bb27· /review/live_frames:单价只认 cost_usd / cost_cny,没有按牌价估并标「估」(NB \$0.06 / Seedream \$0.04 / 千问 ¥0.18);首尾帧版本不同加黄标;EP08 / EP09 同一套挂上(hudson #14261) · 依据 #14261 · 验:副本 12/12(EP07 17 / EP08 16 / EP09 18 卡、黄标、估价 / 实扣);线上 smoke 7/7 - 2026-09-21 19:37 ·
931dc5bad· 左侧导航分三组:审核(12.9 表单 / 首尾帧审核 / 定妆审核)· 制作(进度表 / 任务表 / 返修台账 / 生成台账 / 定妆表)· 系统(控制台 / 变更日志 /changelog);两项目同一套,手机抽屉同样列全(Tom #14230 via hudson #14232) · 依据 #14230, #14232 · 验:副本:桌面 copperbeeches + 手机 live 抽屉各 12 项分三组、链接带 project;/changelog 200;ui_check 143/144(副本 404 噪音)→ 线上 restart smoke 7/7、ui_check 144/144 - 2026-09-21 19:37 ·
754fe4519· /review/live_frames 站位简图(hudson #14225):人物名字缩写 + 脸朝向短箭头、走位虚线箭头到终点、机位带视角扇形(camera.facing)、门 / 窗 / 楼梯 / 道具按类型上色(同 staging_sketch.py 图例);点开进灯箱放大 · 依据 #14225 · 验:test_lf.py 37/37 复跑;简图 SVG 灯箱 naturalWidth 1400 可缩放;smoke 7/7 - 2026-09-21 19:28 ·
776137951· /review/live_frames 真人版首尾帧审核表(Tom #14151 via hudson #14167):分镜表各版合并 + 站位句 / 简图 + FRAME_LOCK 首尾帧(版本 / SHA / 模型 / 单价 / 定妆参考)+ hudson 预审字段 + Tom 通过 / 退回(退回 → 返修台账加行 + live #review 一行;通过 → FRAME_LOCK status=TOM_PASS;裁定按 SHA 绑定,换版本作废进历史)+ 全集通过 → #status 可开拍;灯箱同 /casting;/mask 源图也认真人版仓库;smoke 加 live_frames 一页 · 依据 #14151, #14167 · 验:副本 8766 + live_test 仓库副本:test_lf.py 37/37(桌面 / iPhone13:17 卡、镜头信息、站位简图、首尾帧图 + meta、灯箱缩放、预审存、退回拦空理由 / 台账加行 / #review 一行 / TOM_BACK、通过 → TOM_PASS、换版本作废、17/17 → #status 可开拍、不横滚、无 pageerror);线上 restart → smoke 7/7(ui 含 live_frames 17 ok)、ui_check 144/144 - 2026-09-21 05:53 ·
20eb34ca7· ledger.py 兼容:cost_cny 缺则读 cost_cny_reported / cost_reported;inputs / outputs / mask 不在仓库时按文件名在 record 同目录回落,<X>.png.record.json 旁的 <X>.png 视为输出(Tom #13987 via hudson #13993) · 依据 #13987, #13993 · 验:新旧 ledger.py 对比:真人版 868 行「未在仓库」314→16、EYES 34 行费用 0→¥0.18;动画版 3961 行 451→430、总额 148.27→149.52;smoke 7/7 - 2026-09-21 05:49 ·
c2c9cd606· /ledger:每行 #LI 锚点(URL 带 hash 滚到该行 + 高亮,跨集 / 分页外自动补到位)+ 行内 record 路径页内链接 /repo/…?view=1&project=(hudson #13978) · 依据 #13978 · 验:test_ledger_anchor.py 32/32(copperbeeches + live × iPhone13 / 桌面:行 id、record 链接 200 文本阅读器、#LI 第 150 行滚到 + 高亮、页内改 hash 换行);test_ledger_pj 4/4;smoke 7/7 - 2026-09-21 03:18 ·
fd376c721· 通知箱:别人私聊里提到我名字的不再进我的通知箱(打不开 → 跳转失败,ui_check 撞上 #13494) · 依据 #13494 · 验:restart_server → smoke 7/7、ui_check 144/144(通知箱跳转项恢复) - 2026-09-21 03:17 ·
bcf410a9a· /casting 灯箱接聊天灯箱同一套缩放:双指 / 双击 fit⇄1:1 / 滚轮 / 拖动平移 / 滑动切图 / 下滑关(Tom #13493 via hudson #13495) · 依据 #13493, #13495 · 验:scratch 8766 + 线上:test_castzoom.py 22/22(iPhone13 + 桌面:contain / 双击 1:1 原图像素 / 拖动 / 双指 / 滚轮 / fit 态滑动切图 / 单击藏顶栏 / 下滑关);test_casting2.py 32/32;smoke 7/7 - 2026-09-21 02:55 ·
7cb03bd84· sherlock 监听:频道里 @sherlock 也叫醒(hudson #13464),私聊照旧,@all 仍不触发;SHERLOCK_BRIEF 同步 · 依据 #13464 · 验:过滤函数 5 例单测 - 2026-09-21 02:54 ·
06164c140· /casting 定稿布局:左侧头像工具条 + 右侧定妆页,分组可折叠(Tom #13442/#13445/#13448 via hudson #13446/#13451) · 依据 #13442, #13445, #13446, #13448, #13451 · 验:副本 + 线上 32/32;线上 smoke 7/7 - 2026-09-21 02:47 ·
b152f982f· /casting 正式套按 CASTING_LOCK ★ 表行分组(Tom #13426 via hudson #13427):面部 / 头肩 / 半身 / 胸口 / 全身·蓝裙 / 全身·灰裙 / 表情 / 试装 各一行横滑,组名 + 张数,按表序;只有 ★ 行算组 · 依据 #13426, #13427 · 验:副本 34/34;线上 smoke 7/7 - 2026-09-21 02:40 ·
bc7744a2a· /casting 按 CASTING_LOCK 正式套分组 + 缩略图不再空白(Tom #13407 via hudson #13372/#13410,toby #13399) · 依据 #13372, #13399, #13407, #13410 · 验:副本 + 线上 30/30;线上 smoke 7/7;桌面缩略图全加载 - 2026-09-21 02:27 ·
43cb32f95· 侧栏「定妆表」入口 + 正文 /casting 站内路径成页内链接(Tom via hudson #13357/#13363) · 依据 #13357, #13363 · 验:副本 14/14 + ui_check 144;线上 smoke 7/7 - 2026-09-21 01:46 ·
a4db8050f· 新页面 /casting 定妆(Tom #13212/#13217 via hudson #13215/#13219) · 依据 #13212, #13215, #13217, #13219 · 验:副本 + 线上 iPhone 28/28;线上 smoke 7/7(uicheck 144) - 2026-09-21 01:17 ·
acf9d0a9f· 聊天正文仓库路径自动 linkify(Tom live #13130/#13131/#13137 via hudson #13133/#13138) · 依据 #13130, #13131, #13133, #13137, #13138 · 验:副本 14/14 + 回归 58 项;线上 smoke 7/7
2026-09-20
- 2026-09-20 22:55 ·
1b9bb1466· /thumb 与 /repo 按 project 取仓库根(Tom DM #12755 via hudson #12759):真人版 /ledger 缩略图全空 · 依据 #12755, #12759 · 验:副本 + 线上 iPhone /ledger?project=live 4/4,0 个 4xx;线上 smoke 7/7 - 2026-09-20 21:16 ·
dd0134ab9· 附件显示名去掉上传前缀 时间戳_哈希_(hudson #12449):📄 卡片 / ▶ 视频 / 普通附件 / 阅读器标题 / 下载名都只显示原文件名,链接仍指真实文件 · 依据 #12449 · 验:副本 20/20 + 28/28;线上 smoke 7/7 - 2026-09-20 21:07 ·
dd55193bc· 文本附件 utf-8 + 页内弹窗阅读器(Tom #12393/#12405 via hudson #12399/#12409) · 依据 #12393, #12399, #12405, #12409 · 验:副本 20/20 + 回归 38 项;线上 smoke 7/7;线上打开 #12371 md 正常 - 2026-09-20 20:57 ·
8066a4304· 私聊里 /mask 保存失败(Tom #12376 via hudson #12381) · 依据 #12376, #12381 · 验:副本 API 3 种传法 200;线上 smoke 7/7;线上私聊真存 #12395/#12396 - 2026-09-20 20:19 ·
256537374· /mask 小三角只给再点会弹东西的钮(Tom #12204 via hudson #12210):手机 笔 / 橡皮 / 魔棒 + 色点 / 图层,桌面 色点 / 图层;选区类 / 智能 去掉三角和再点羽化弹层(羽化仍可在魔棒弹层里调,各工具共用) · 依据 #12204, #12210 · 验:副本 8/8 + 40/40;线上 smoke 7/7 - 2026-09-20 20:12 ·
6ddeeeccf· PWA 状态栏 black-translucent → black(Tom #12169 via hudson #12175):iPhone 主屏打开时顶部时间 / 信号 / 电池不见 · 依据 #12169, #12175 · 验:线上 smoke 7/7(uicheck 138);iOS 真机等 Tom - 2026-09-20 20:07 ·
628d09942· /mask 桌面工具全平铺 + 子项小三角(Tom #12161/#12166 via hudson #12163/#12171) · 依据 #12161, #12163, #12166, #12171 · 验:副本桌面 9/9 + 三角 6/6 + 回归 225 项;线上 smoke 7/7 - 2026-09-20 19:47 ·
2af28d124· /mask 固定 4 色层(Tom #12105 via hudson #12108) · 依据 #12105, #12108 · 验:副本 36/36 + 回归 204 项;线上 smoke 7/7 - 2026-09-20 19:26 ·
160796331· /mask 手机层面板半透明、更矮(hudson #12062):底 .72 + 模糊,行 38px,列表 ≤26vh,新层后重新贴底条上方;点画面即收 · 依据 #12062 · 验:副本 5/5 + 多图层 57/57;线上 smoke 7/7 - 2026-09-20 19:21 ·
2e52052c2· /mask 多图层(Tom #12031 via hudson #12033) · 依据 #12031, #12033 · 验:副本 多图层 57/57 + 双条 40/40 + 回归 155 项;线上 smoke 7/7 - 2026-09-20 19:05 ·
433d927a9· /mask 手机:可再点弹滑杆的工具选中时右上角绿角标 + 提示写明「再点笔刷调粗细 / 透明度」(hudson #12024) · 依据 #12024 · 验:副本 iPhone13 9/9 + 双条 40/40;线上 smoke 7/7 - 2026-09-20 19:00 ·
370d43a5a· 抽屉分组标题字号 = 频道行、组内频道行右缩进一级(Tom #12013 via hudson #12015) · 依据 #12013, #12015 · 验:副本手机+桌面 8/8;线上 smoke 7/7 - 2026-09-20 18:54 ·
96176bb4e· /mask 手机改双条(Tom #11989/#11994 via hudson #11992/#11997) · 依据 #11989, #11992, #11994, #11997 · 验:副本 iPhone13 双条 40/40 + mask 回归 78/78 等;线上 smoke 7/7 - 2026-09-20 17:49 ·
d4f0fc8cb· /mask 手机工具条改右侧竖排(Tom #11828 via hudson #11831) · 依据 #11828, #11831 · 验:副本 iPhone13 竖条 17/17 + mask 回归 78/78 等;线上 smoke 7/7 - 2026-09-20 17:38 ·
e0745c545· /mask 手机笔刷边划只见方块(Tom #11819/#11820/#11823 via hudson #11821/#11824) · 依据 #11819, #11820, #11821, #11823, #11824 · 验:副本 iPhone13 tint/mask 逐像素 12/12 + 回归 78/78 + 60 fps;线上 smoke 7/7 - 2026-09-20 17:34 ·
3a4f7b9d1· 看图器 fit 区扣掉顶栏(hudson #11807):.lbstage top = 顶栏高,桌面 / 横屏竖图顶边不再压在标题栏下 · 依据 #11807 · 验:副本 18/18 + 28/28;线上 smoke 7/7 - 2026-09-20 17:28 ·
b94177ec6· 看图器竖图整张 contain + 可缩到 fit 以下(Tom #11776 via hudson #11779) · 依据 #11776, #11779 · 验:副本 Playwright 桌面+iPhone13 看图器 18/18 + 回归 28/28;线上 smoke 7/7(uicheck 138) - 2026-09-20 12:53 ·
d06a6982a· CopperChat 新建项目 live「铜山毛榉案·真人版」(Tom #11396/#11398 via hudson #11404/#11411/#11423) · 依据 #11396, #11398, #11404, #11411, #11423 · 验:副本 Playwright 手机+桌面 28/28(项目切换 / 频道 / 通知箱分项目 / 进度表 tabs / 空表);线上 smoke 7/7(uicheck 138) - 2026-09-20 12:08 ·
6cd9e64e0· /mask 改 Procreate 壳 + 通用标注模式(Tom #11085/#11105/#11106 via hudson #11092/#11103/#11107) · 依据 #11085, #11092, #11103, #11105, #11106, #11107 · 验:Playwright iPhone13+桌面 mask 78/78 智能 18/18 附件 10/10 壳/标注 36/36;线上 smoke 7/7(uicheck 138) - 2026-09-20 11:47 ·
8278ec1d9· 通知箱头栏左对齐(Tom #11073 via hudson #11076/#11084):去掉原为 ≡ 预留的 52px 左内边距,‹ 贴面板左缘 12px、标题紧随、「全部」靠右,统计行左对齐;通知箱开着时 ≡ 藏起 · 依据 #11073, #11076, #11084 · 验:副本量:‹ 图标离面板左缘 13px、标题距 ‹ 14px、「全部」距右缘 8px、统计左对齐、≡ 藏 4/4(深浅);手势过渡 7/7;线上 smoke 7/7 - 2026-09-20 11:42 ·
adc41b9ea· 线程页也能左滑开通知箱(Tom #11044/#11052 via hudson #11053):右滑仍返回频道;通知箱开着时右滑只关通知箱不返回 · 依据 #11044, #11052, #11053 · 验:副本:线程页左滑开通知箱且线程仍在、开着右滑只关通知箱、关后右滑返回 8/8(深浅);过渡 7/7;线上 smoke 7/7 - 2026-09-20 11:35 ·
2ce4481c2· 手机通知箱改 2/3 屏宽(Tom #10955 via hudson #10956):靠右、左边露频道 + 暗罩 .35 点一下关(按 --z 折算,字号档下仍是屏宽 2/3);头部收紧(去图标、标题 16、‹ 标题 全部 一行不裁);左滑开 / 右滑关阈值改按面板宽 1/3;左抽屉本就是 min(60vw,300px) 不动 · 依据 #10955, #10956 · 验:副本:面板屏上宽 260 / 390、靠右、头部与列表不横滚、暗罩 .35 点左侧关、左滑 110px 开 8/8(深浅);手势过渡 7/7;ui_check 134;线上 smoke 7/7(前一轮 /rework 0 节点是台账重算慢的偶发,重跑过) - 2026-09-20 11:23 ·
81306d76c· 手势松手过渡(Tom #10932 via hudson #10934):抽屉右滑开 / 左滑关、线程页右滑返回、通知箱左滑开 / 右滑关,松手后都从当前位置 220ms ease-out 平滑滑到全开或弹回(之前清 inline 样式时把过渡也清了,硬切);通知箱开先加 .open 再拉数据,不闪 · 依据 #10932, #10934 · 验:副本:松手 90ms 采样中间态——抽屉开 -146→-53→0、左滑关中间 -130、弹回中间 -222、线程返回中间 271、通知箱开 62 / 关 263,均在起点与终点之间 7/7;线上 smoke 7/7 - 2026-09-20 05:40 ·
68fa28002· 右侧栏(通知箱)手势(Tom #10612 via hudson #10614):频道页任意位置左滑,通知箱跟手从右拉出,过屏宽 1/3 松手打开否则收回;开着时右滑关(inbox.js 原 80px 阈值改成同一套:≥24px 判定、跟手、过 1/3 关、竖滑不触发、横滚元素上不当手势);与左抽屉互斥,线程页 / 嵌入 / 看图器不触发 · 依据 #10612, #10614 · 验:副本合成触摸:左滑 100px 跟手 / 不到 1/3 收回 / 过 1/3 开 / 开着右滑跟手 / 弹回 / 过 1/3 关 / 抽屉开着不响应 / 竖滑不触发 / 线程页不触发 18/18(深浅);线上 smoke 7/7 - 2026-09-20 05:33 ·
048a6ef9c· 右滑手势不限左缘(Tom #10601 via hudson #10602):线程页返回 / 频道页开抽屉都改成全屏任意位置起手,横向位移 > 纵向且 ≥ 24px 才判定(跟手位移从 24px 起算,先竖后横不触发);起手在能横向滚动的元素(代码块 / 表 / 镜号条)上不当右滑 · 依据 #10601, #10602 · 验:副本合成触摸:屏中起手右滑抽屉跟手 / 过 1/3 开、竖滑不误触、<24px 不判定、线程页屏中起手跟手 / 110px 弹回 / 170px 返回且不开抽屉 16/16(深浅);线上 smoke 7/7 - 2026-09-20 05:29 ·
6183614df· 频道页从左缘右滑开抽屉(Tom #10597 via hudson #10598):左缘 32px 内向右滑,抽屉跟手拉出,过抽屉宽 1/3 松手打开否则弹回;左滑关照旧;只在手机频道态(线程 / 嵌入 / 看图器 / 通知箱不触发),线程页右滑仍是返回 · 依据 #10597, #10598 · 验:副本合成触摸:拖 60px 抽屉跟手、不到 1/3 弹回、过 1/3 开、左滑关、非左缘不开、线程页右滑仍返回不开抽屉 14/14(深浅);线上 smoke 7/7 - 2026-09-20 05:25 ·
4f9110d2a· 线程页右滑返回频道(Tom #10585 via hudson #10586/#10591):从左缘 32px 内向右滑,面板跟手位移,松手位移 > 屏宽 1/3 就滑出并关线程,否则弹回;只在手机线程态生效(嵌入 / 看图器开着不触发),不开抽屉;频道页手势不变 · 依据 #10585, #10586, #10591 · 验:副本合成触摸:拖 100px 面板 translateX 100 跟手、松手弹回、拖 160px 松手返回频道、非左缘不触发、频道页同手势无副作用 12/12(深浅);线上 smoke 7/7 - 2026-09-20 05:06 ·
b00bc83ed· 12.9 表单 EP01 / EP02 默认播英文版(Tom #10547 via hudson #10548):swap_mix_card.py --add 加 --default en|zh;--redefault EP --zh --en --default en 给已有卡换播放版本(候选 / sha / 时长 / 响度按播放的那版重量,另一版留链接,镜头表不动);EP01 → EP01_FINAL_EN_v002(bc03b31a)、EP02 → EP02_FINAL_EN_v001(8b4ecd6b) · 依据 #10547, #10548 · 验:线上卡:候选 label 英文字幕、视频 src 英文版、meta sha bc03b31a / 8b4ecd6b、中文版链接在、镜头表仍 16 / 14;smoke 7/7 - 2026-09-20 05:02 ·
62ac41d51· 12.9 表单 EP01 / EP02 补镜头表(Tom #10536 via hudson #10540):swap_mix_card.py 加 --recut EP --cut <cut.json>(GRADED 链路 cut.json 的 start_sec / total_sec → [{id,in,out}],_BLACK 尾段并入前一镜,cut 总长与卡上视频差 >0.3 s 拒用)、--add 可带 --cut;EP01 16 镜(cut 75.04 / 视频 75.0)、EP02 14 镜(62.58 / 62.6)已填 · 依据 #10536, #10540 · 验:线上卡:进度条刻度 15 / 13、⏭ 两次 0→4.76→9.72 s、时码显镜号 8/8;smoke 7/7 - 2026-09-20 04:59 ·
ad66915d3· 12.9 表单加 EP01 / EP02(Tom #10473 via hudson #10475):swap_mix_card.py --add EP --zh --en --note [--before]:ffmpeg ebur128 量时长 / LUFS / 真峰、sha、ZH 复制到 files/reviews/12_9_mix/、单候选 rec、shots 空、插到 EP03 前、标题按现有集范围改「EP01–EP30」,add_dialogue_table 没台词表自跳过;EP01 v026(407ca1a9,75.0 s,−17.1 LUFS)/ EP02 v012(f50cf480,62.6 s,−16.5 LUFS)已加。review.html .script 长路径可折行(ui_check 抓到 29px 横滚) · 依据 #10473, #10475 · 验:副本先跑:列表 30 张、EP01 单卡视频 75.0 s 能开、meta 带 sha / 时长 / LUFS;线上 smoke 7/7、ui_check 134;sha 与 hudson 给的四个一致 - 2026-09-20 04:49 ·
5dc791ac6· 重连细条改成头部内在流(hudson #10493):挂在 main>header 里,头部底内边距 +24 把内容顶下去,不再盖住消息文字;连上复位 · 依据 #10493 · 验:副本(模拟状态栏):头部 +24、内容顶下 24、细条贴头部下沿、图标中线不动、连上复位 8/8(深浅);ui_check 134;线上 smoke 7/7 - 2026-09-20 04:41 ·
a55add7eb· 重连提示(Tom #10454 via hudson #10455):不再是盖住状态栏 + 头部的大红横幅——头部下方一根 24px 细条(--paper 底、琥珀字「重连中…」,桌面为头部右下小 pill),连上 0.3 s 淡出,断线 >30 s 才转淡红警示;状态栏 / 头部底色不动。顺手:jump() 不把已关线程面板里的旧 DOM 当命中(ui_check 线上抓到通知箱点回复没开线程);ui_check 嵌入列表改 JS 点击、通知箱跳转等到位再量 · 依据 #10454, #10455 · 验:副本(模拟状态栏 47px):连接中细条紧贴头部下方 24px 非红、头部底色 = 底色;>30 s 警示色;连上 0.6 s 内淡出 8/8(深浅);线上 smoke 7/7、ui_check 134 - 2026-09-20 01:57 ·
0f622a1b7· 手机首屏直接进频道(Tom #10008–#10011 via hudson #10012):加载即 m-chan,进上次所在频道(无则 general),Home 列表页不再出现,频道列表只在抽屉;‹ / goHome 在手机上 = 开抽屉;通知箱 ‹ 与独立页 ‹ 都回到频道。ui_check 加「首屏 = 频道页」断言,手机流程改为开抽屉再选频道 / 私聊 → 134 项 · 依据 #10008, #10011, #10012 · 验:副本:首屏 = 上次频道 ep18 / goHome 开抽屉 / 通知箱 ‹ 与任务表 ‹ 回频道 / 无记录进 general 10/12(两条为测试脚本自身注入 ch 的假阴性);ui_check --full 210;通知箱跳转矩阵 12/12;线上 smoke 7/7 - 2026-09-20 01:49 ·
7e85c87bf· 聊天看图器(Tom #9963/#9964 via hudson #9965):纯黑全屏底(浅色主题深灰)、图居中,两指捏合 / 双击 2.5× / 滚轮缩放、放大后可拖;顶部半透明工具栏 ‹ 文件名 + 第几张 ✎ 画 mask ⬇ 保存 ⋯(新标签打开原图 / 复制链接),图标 .hdr-ico 24 描边白无圆底;单击图切换工具栏显隐,左右滑切同帖多图(含视频),下滑关,Esc / ← → 键盘;盖过 ≡ 与未读角标 · 依据 #9963, #9964, #9965 · 验:副本 Playwright 合成触摸 28 项(底色 / 工具栏 24 白 / 居中 / 单击藏显 / 左右滑 3 图循环 / 双击与捏合 / 下滑关 / ⬇ download / 单图无计数)深浅;入口 22、附件 mask 10;线上 smoke 7/7(第一次 ui 步偶发,重跑过) - 2026-09-20 01:36 ·
4d4e11123· 嵌入页横向溢出:任务表长「当前步骤」(EP14/16/… 无空格)可折行;表单列表长 hold 备注省略号、列用 minmax(0,1fr)(ui_check 线上抓到的 50 / 65 px 横滚) · 依据 — · 验:副本注入同样长文本后 scrollWidth 390 = clientWidth;线上 smoke 7/7、ui_check 132 - 2026-09-20 01:36 ·
a481e3737· /mask 画笔性能(Tom #9942 via hudson #9943):工作画布按最长边 ≤2048(底图先降采样进 offscreen canvas,魔棒像素也取工作分辨率),保存时服务端双线性放大回原尺寸再二值化;画笔 / 橡皮 pointermove 进队列、rAF 一帧合成一条折线,叠显层只重算折线包围盒(脏矩形)不再整图重合成;智能选点 / 框换算回原图坐标。实测 12 MP 照片:每次 move 43 ms → 5–10 ms,60 fps · 依据 #9942, #9943 · 验:副本 Chromium iPhone 13 仿真:4032×3024 照片 300 次 move 43 ms/次 → 5–10 ms/次、60 fps;mask 78 / 智能选 18 / 附件 10 / 入口 22 项全过;大图保存放大回 3024×4032 bbox 原位 - 2026-09-20 01:24 ·
af32924ac· mask「回聊天」+ 手机 Home 头部(Tom #9935/#9937 via hudson #9938):保存接口回 {pj, ch, thread},「回聊天」→ /?pj&ch&m=回帖 id,落到发起消息的频道 + 线程并高亮那条;手机 Home 页 aside 头部改用抽屉那套(项目名加粗 16 + ▾、时间 12 灰 sans 同一行,无虚线),抽屉态仍左留 52 给 ≡ · 依据 #9935, #9937, #9938 · 验:副本:保存 → 回聊天 → CH=chatdev + 线程开 + 那条高亮 4/4(深浅);Home 头部 h 52、名与时间同中线;线上 restart + smoke 7/7 - 2026-09-20 01:17 ·
8037c0536· 手机照片 EXIF 方向(Tom #9919 via hudson #9920):/api/upload 落盘时 exif_transpose 转正(orientation 置 1),/mask 保存与 SAM worker 读图都按显示方向取尺寸——原 bug 是 mask(显示方向 3024×4032)被硬缩成原始像素 4032×3024;已存的两张 mask 反向缩回复原 · 依据 #9919, #9920 · 验:副本:上传 EXIF6 照片 → 落盘 3024×4032 orient 1;旧 EXIF 文件保存 mask → 3024×4032、白块 bbox 原位、缩略竖向;线上 restart + smoke 7/7 - 2026-09-20 01:09 ·
896cde96a· /mask 放开到任何图片(hudson #9899):聊天附件(/files/…png)放大层也给 ✎,/mask?img=files/<名> 直接画;这类 mask 存 05_frames/_masks/<日期>/<名>_MASK_<人>_vNNN.png,回帖带「原图 /files/<名>」并回到带这个附件的那条消息的线程;智能选同样认聊天附件 · 依据 #9899 · 验:副本:附件图 → 放大层 ✎ → /mask 画 → 存 _masks/2026-09-20/ + 回附件消息线程带原图路径 10/10;入口 22 项、mask 78 项、ui_check 132;线上 restart + smoke 7/7 - 2026-09-20 00:44 ·
2c2b26a97· 语音 / 朗读模型懒加载 + 空闲卸载(hudson #9794 内存紧):启动不再预热 SenseVoice / whisper / Kokoro(CC_WARM=1 可恢复);ASR 15 分钟没转写 → 杀 SenseVoice 子进程 + 释放 whisper,TTS 30 分钟没朗读 → 放掉 Kokoro 管线(CC_ASR_IDLE_MIN / CC_TTS_IDLE_MIN 可调);下次用自动懒加载(SV ~10 s、whisper ~8 s、Kokoro ~10 s) · 依据 #9794 · 验:副本:whisper 载入后 WS 897 MB 连转 3 条不涨,空闲 1 分钟卸到 133 MB,再转自动重载;线上重启后 voice 12 s(懒加载)→ 0.3 s,tts 9.8 s → 0.0 s - 2026-09-20 00:37 ·
75f5d19f8· 画 mask 入口(Tom #9778 via hudson #9779):聊天里仓库图片链接(/repo/05_frames…png)进放大层,放大层右上角 ✎ → /mask(只对白名单目录的图,chat/files 截图不显);审核单卡播放条左端 ✎ 截当前帧 → POST /api/mask/frame 存 05_frames/EPxx/review_frames/ → /mask;mask 保存回当时所在线程(新增 th 参数;无发起消息时发主帖)。ui_check 加 截帧 ✎ 位置 + 智能选态工具条 → 132 项 · 依据 #9778, #9779 · 验:副本 Playwright 20 项(仓库图链接 → 放大层 ✎ → /mask 参数齐、/files 图无 ✎、截帧文件落地并能在 /mask 打开);线上 restart + smoke 7/7、ui_check 132 - 2026-09-20 00:37 ·
db89b7b67· /mask「智能选」(Tom via hudson #9770):点一下 / 拖框 → SAM 2 抠出对象,英文名词「找」→ Grounding DINO 定位再 SAM;结果按 加 / 减 合进选区,可再羽化 / 画笔修。tools/sam_worker.py 常驻进程(seg venv,stdin/stdout 一行 JSON),server.py POST /api/mask/sam 按需起、一把锁串行、10 分钟空闲自退(claude #9790 内存紧);显存剩 < 4.5 GB 走 CPU,推理中 CUDA 出错退 CPU 重来;生词整图低分框不算找到。页面转圈提示首次加载;手机第一行藏「移动」(两指即可)腾位给「智能」 · 依据 #9770, #9790 · 验:副本 Playwright 18 项(点选 / 减模式去掉 / 拖框 / 找 shirt / 生词提示 / 转圈 / 两行不横滚,手机 + 桌面)+ mask 全套 78;worker 直跑:点 6.5 s(含加载)→ 0.25 s - 2026-09-20 00:06 ·
553c3b8af· /mask 叠显弹层挪出工具条(Tom #9744 via hudson #9745):工具条 overflow:auto 会把绝对定位的色点弹层裁掉,手机上看不到 / 点不到;改放画布区右上角,色点 32、滑条 32 高便于触屏 · 依据 #9744, #9745 · 验:副本仿 iPhone 15 Pro 402 宽真实 tap:弹层在屏内且最上层、点黄后画出来是黄 10/10(深浅);mask 全套 78 项;线上 smoke 7/7
2026-09-19
- 2026-09-19 23:53 ·
bbcb6c898· 12.9 表单:「未定 N」排除在修 · 勿审的卡,进度行 / 桌面头栏另显「在修 M」,只看未定也不列 hold 卡(hudson #9729) · 依据 #9729 · 验:副本:hold 14 → 未定 2、在修 14(手机 / 桌面),只看未定不列 hold;线上 smoke 7/7 - 2026-09-19 23:49 ·
7d6a17794· 12.9 表单卡「在修 · 勿审」(hudson #9711):swap_mix_card.py --hold EP… --note "…" / --unhold EP… 只改 12_9_mix.json 的 hold 字段,换新卡自动清;列表卡灰显 + 状态「在修 · 勿审:备注」+ 去审钮藏起 + 点了不跳,直开单卡头栏只显「在修 · 勿审」不出裁定钮;ui_check 跳过 hold 卡选单卡 + 加 hold 卡灰显断言 → 130 项;EP14 / EP16–EP30 置 hold(口型模型批处理中) · 依据 #9711 · 验:副本 14 项(列表 16 张灰显 / 状态文字 / 去审藏 / 点不跳 / 直开无裁定钮 / 非 hold 卡照常)深浅;线上 smoke 7/7、ui_check 130 - 2026-09-19 23:31 ·
44f411018· /mask 叠显颜色可选 + 透明度(hudson #9655):第二行「叠显」钮弹出 红 / 绿 / 蓝 / 黄 四色点 + 10–90% 滑条,记在 localStorage 下次沿用;预览线 / 多边形起点 / 画笔光标同色;手机第二行按工具再收一档(滑条值隐藏、魔棒态藏「整图」)保证 390 宽不横滚 · 依据 #9655 · 验:副本 Playwright 78 项过(含选蓝 → 叠显层像素变蓝、70% 刷新后记住、四种工具态两行不横滚);线上 smoke 7/7、ui_check 128 - 2026-09-19 23:24 ·
ec9c0cd0c· 通知箱跳转修复(Tom #9648 via hudson #9649):线程开着时点通知箱里同频道的主帖,目标在线程面板后面的频道列表里,flashTo 命中就返回导致线程不关、手机上看不到——先关线程再闪;jump 开线程时补 body.th-open。ui_check 加「点通知箱条目 → 频道切换 / 线程开 + 消息高亮」(手机两态 + 桌面)、mask 页按工具三态工具条不横滚、mask 段异常不再中断整轮、头栏顶上横条检查不把滚到头栏底下的消息内容算进去 → 128 项 · 依据 #9648, #9649 · 验:新断言在改前线上 FAIL(th 仍 9591)、改后 128 项全过;4 入口 × 3 类条目矩阵 12/12;smoke 7/7 - 2026-09-19 23:24 ·
80798f595· /mask 补齐商用选区工具(Tom #9623 via hudson #9626):矩形 / 椭圆(拖框)、多边形(逐点点、点回起点或「闭合」/ Enter / 双击,Esc 取消,撤销可退一点)、魔棒(按 RGB 距离连通选,容差滑条)、羽化滑条(两遍盒模糊 alpha,作用于形状 / 套索 / 大圆 / 魔棒)、反选、选区加 / 减(加减开关 + Shift 加 / Alt 减);点选类工具单指拖 = 移动画面;工具条两行,第二行按当前工具只放该有的条,390 宽不横滚 · 依据 #9623, #9626 · 验:副本 Playwright 合成触摸 62 项过(矩形 / 椭圆面积、多边形闭合、减模式、Alt 减、羽化半透明、魔棒容差、反选互补);ui_check mask 页三态 - 2026-09-19 22:39 ·
588e94484· 人工 mask 工具页 /mask(Tom #9561 via hudson #9563):tools/mask_request.py --as 谁 --img 图 --ep --shot --note 发一条 @tom 带原图 + 链接;页面整图缩放拖动(两指捏合 / 滚轮 / 移动工具)、画笔 / 橡皮 / 大圆 / 套索、半透明红叠显、撤销 25 步、清空、整图;保存 → POST /api/mask/save 写 <图同目录>/<名>_MASK_<人>_vNNN.png(黑底白区二值,不覆盖旧版本)+ 红叠缩略图进 files/ + 在发起消息线程自动回一条 @发起人;深浅主题、头栏同 .hdr-ico;ui.html 把 /mask?… 链接化;ui_check 加 mask 页三项 · 依据 #9561, #9563 · 验:副本:Playwright 合成触摸 画笔 / 橡皮 / 大圆 / 套索 / 撤销 / 捏合 / 保存 / 回线程 30 项过(手机深 + 桌面浅);线上 smoke 7/7、ui_check 119 项 - 2026-09-19 22:27 ·
c1c6c899b· 桌面单卡裁定钮兜底(Tom #9525 via hudson #9527):syncHead 任何一步出错都兜底画出 ✓ ↩ ✈ 🎤(错误进 console + header title);count() 先同步头栏再碰底栏元素且判空;渲染 600ms 后 #hbtns 仍空则重画;.hver 版本文字可截断,长标签不会把钮挤出头栏;ui_check 加 1280 桌面一组(频道页 / 表单列表 / 单卡 / 嵌入单卡)断言四钮都在头栏内 → 111 项 · 依据 #9525, #9527 · 验:1280 桌面 独立 / 嵌入 / 4K 150% / me=tom 仿真 四钮都在;ui_check 111 项全过;smoke 7/7 - 2026-09-19 22:09 ·
ebdabc9b0· 审核单卡沉浸改按钮(Tom #9497 via hudson #9498,覆盖 #9383):去掉双击,单击画面 = 暂停 + 打点层;播放条右端 ⛶(24 描边)进沉浸——藏头栏 / 意见框 / 播放条只剩画面、视频不停,右下角小 ⛶ 退出;沉浸中单击画面也退出并打点;ui_check --full 改成点 ⛶ / 小 ⛶ 两态 + ⛶ 不压 ⏭ · 依据 #9383, #9497, #9498 · 验:Playwright 单击 / ⛶ / 小 ⛶ 12 项过(深浅)、ui_check --full 177 项全过、smoke 7/7 - 2026-09-19 22:04 ·
30b906e0c· 审核打点层快捷标签加「语音比口型慢」「语音比口型快」(Tom #9488 via hudson #9489),挨着「口型与话音不一致」;文案经 note 原样进 REWORK_LOG reason · 依据 #9488, #9489 · 验:打点层点「语音比口型慢」→ note「S002 0:05 语音比口型慢;」(深浅)、smoke 7/7 - 2026-09-19 21:38 ·
1b085df16· 审核页单卡画面手势(Tom #9381/#9382 via hudson #9383):单击画面 = 切换沉浸(藏头栏 / 意见框 / 播放条,视频不停,再单击恢复);双击 = 暂停 + 打点层(镜号胶囊 + 快捷标签 + 继续 ▶);300ms 判定,单击延迟到判定后执行;打点层开着时播放条让开(继续 ▶ 原与 ▶ 重叠);意见框占位改「双击打点」;ui_check --full 加「沉浸态」「打点层」两态 · 依据 #9381, #9382, #9383 · 验:Playwright 合成 touch 单击 / 双击 26 项过(深浅)、ui_check --full 171 项全过、smoke 7/7 - 2026-09-19 21:31 ·
84fa6552a· 头栏零线 + 消息行按 Discord 对齐(hudson #9377):所有页头栏上下都不画线(覆盖 #9356);频道页消息行按 Tom #9353 截图量出来的数改:左边距 12、头像到文字 12、名字 16/700、时间 13、名字行 20 高、正文行高 20、消息组间距 20、引用行 24 高 / 小头像 18 / 字 14 / 弧线到头像顶、反应块 30 高 圆角 8 表情 18 数字 14;ui_check「头栏零线」断言改 0/0、gbk 控制台不再把打印异常算 FAIL;ui_deploy 支持带子目录的文件 · 依据 #9353, #9356, #9377 · 验:ui_check 103 项全过(--full 165)、smoke 7/7、Discord 截图并排量(3px/pt)逐项一致 - 2026-09-19 21:13 ·
91def446f· 自制下拉刷新整个去掉(Tom #9370 via hudson #9372,头栏上方横条根因 = PTR 条闲置 padding);theme-color 跟随 --bg 与头栏同色;嵌入层从状态栏下面开始;ui_check 加「头栏顶上无横条」 · 依据 #9370, #9372 · 验:Playwright 注入 safe-area=47px、dpr3:状态栏区域像素 = 头栏 #1b1815,顶上无任何元素,.ccptr 不在 DOM;自检 103 项全过;smoke 7/7 - 2026-09-19 21:03 ·
9025f1d36· 头栏按 Discord 定稿(Tom #9341–#9355 via hudson #9343/#9348/#9351/#9356):所有页头栏同底色、上无线无空带(状态栏 black-translucent + 头栏自吃 safe-area,嵌入页不重复算)、下沿一根 1px ~15% 淡线;48 高、标题 17 加粗 # 浅灰 ›、右侧 🔍 📥 圆形浅底 40、≡ 无底 + 未读数贴角、全部同中线;ui_check 加「上无线 / 下一根淡线」「头栏紧贴顶部」→ 101 项 · 依据 #9341, #9343, #9348, #9351, #9355, #9356 · 验:自检 101 项全过;各页头栏 svg 中线 29(≡ 29)、border-top 0 / bottom 1px;smoke 7/7 - 2026-09-19 20:50 ·
e00fe4941· 下拉手感仿 iOS:跟手 1:1 到 80、阻尼 0.4、上限 160、松手 250ms 回弹;容器 overscroll-behavior contain(Tom #9335 via hudson #9336) · 依据 #9335, #9336 · 验:dy 40/80/120/200/400 → 条高 40/80/96/128/160;松手 transition 250ms cubic-bezier,回到 0;smoke 7/7 - 2026-09-19 20:45 ·
debc98746· 播放条:镜号时码挪到进度条上方右对齐,三钮一行只放三钮;ui_check 加「时码与三钮不相交」(Tom #9329 via hudson #9330) · 依据 #9329, #9330 · 验:量:cap 241–376 × 688–710,⏭ 257–310 × 762–815,不相交;smoke 7/7(自检含新项) - 2026-09-19 20:40 ·
91c9d23e4· 播放条固定在屏底之上(safe-area + 12),进度 / 三钮 / 镜号时码永远在可视区(Tom #9318 via hudson #9321) · 依据 #9318, #9321 · 验:844 高:条 705–830;模拟 Safari 720 高:条 581–706,时码右下 694 < 720;smoke 7/7 - 2026-09-19 20:38 ·
9920fc7fe· 播放态改口(Tom #9316 via hudson #9317):不全屏、头栏 / 按钮 / 播放条常驻,播放时只把意见框压到 40%,暂停回 100% · 依据 #9316, #9317 · 验:播放 2.2 s 后 header/ovctl opacity 1、意见框 0.4,暂停 1;smoke 7/7 - 2026-09-19 20:36 ·
90361bdab· 下拉刷新条改成列表顶部独立 36px 状态条、推内容不压(Tom #9307 via hudson #9309);输入行图标 22/40 同 Discord 比例 + ui_check 尺寸断言(#9311);消息 ··· 菜单开在底部时滚进视野;ui_check --full 加下拉四态 + PTR 不压首条 → 157 项 · 依据 #9307, #9309, #9311 · 验:ui_check --full 线上 80 图 157 项全过;下拉四态实做(拉动条 y64+65 < 首条 174;刷新中 / 已更新 / 拦截接口→失败→点击重试→没有新消息);输入行 svg 22 设备 px;smoke 7/7 - 2026-09-19 19:57 ·
f6d927bf5· ≡ 三横缩短到 14 单位(描边仍 2),视觉不再比 ‹ 重(hudson #9268) · 依据 #9268 · 验:计算样式量 #hamb / 📥 / ‹ path 全 stroke-width 2px;3× 放大截图;自检 69 项全过 - 2026-09-19 19:54 ·
209354057· 嵌入单卡头栏强制 52 高(原 44 让 ≡ 低 5px);ui_check 加「嵌入单卡 ≡ 与 ‹ ✓ ↩ ✈ 🎤 同中线 ≤1px」→ 69 项(Tom #9248 via hudson #9251) · 依据 #9248, #9251 · 验:线上量:≡ 中线 31,卡头栏五个图标 31 31 31 31 31;自检 69 项全过;smoke 7/7 - 2026-09-19 19:50 ·
ca643c4ee· 审核单卡防误判(Tom #9243/#9253 via hudson #9245/#9247/#9255):单镜模式点画面不再等于通过;✈ 只有手点 ✓ / ↩ 后才亮,服务端也拒收无裁定;提交前确认一步;本人 24h 内可「撤回裁定」回未裁(Tom 撤回连带台账行回 doing);EP29 撤回 + 台账 560–563 回 doing · 依据 #9243, #9245, #9247, #9253, #9255 · 验:副本走一遍:点画面/播放后 verdict=null ✈ 灰;只写意见 ✈ 灰;点 ✓ 亮 → 提交弹「确认 EP29 通过?」→ 提交后头栏出 ⊗ 撤回 → 撤回后回未裁;线上 EP29 已回未裁、台账 560–563 doing;smoke 7/7 含自检 65 项 - 2026-09-19 19:39 ·
ac916410e· 全站头栏一套(Tom #9216–#9226 via hudson #9219/#9227):审核单卡 ✓ ↩ ✈ 🎤 改 .hdr-ico 同款(24/2 无圈、热区 44、选中态变色 + 底点);≡ 与 ‹ 同中线(头栏 52 高,≡ top 4);通知箱 / 独立页头栏 52 高一行、只留 ‹ 标题 📥(控制台 ↻ 作图标钮);抽屉头部项目名加粗 + ▾ 无虚线、时间 HH:MM 灰小字、分组标题 34;ui_check 加同中线 + 单卡头栏 / 播放器 / 意见行(65 项) · 依据 #9216, #9219, #9226, #9227 · 验:自检 65 项全过(新增各页头栏同中线、单卡头栏 svg 同尺寸同中线、播放器 / 意见行在);smoke 7/7 - 2026-09-19 19:28 ·
5951c6f39· 表单列表:大橙圆 ▶ 换 24px 铜色描边 ›,标题不放图标(Tom #9211 via hudson #9212) · 依据 #9211, #9212 · 验:深浅两色截图;smoke 7/7 含自检 51 项 - 2026-09-19 19:25 ·
5f3364b05· 12.9 表单列表手机美化:64px 紧凑卡(EP + 状态点 / 版本小字 / 32px ▶)、细进度条 + 铜色分段开关、卡距 8 边 12、已通过折底灰显;独立页头栏 ‹ 在最左(Tom #9190 via hudson #9192/#9204) · 依据 #9190, #9192, #9204 · 验:副本深浅两色预览 hudson 点头后换上;线上行高 77 设备px=64 CSS、状态按线上 result 实时算;smoke 7/7 含自检 51 项 - 2026-09-19 19:19 ·
7619745ea· ui_check.py:手机界面自检(深浅两色九态截图 + 头栏图标同尺寸 / 两页输入行一致 / 贴底 / 无重叠 / 无横向滚动 / 无报错,合图),并入 smoke 作 uicheck 步;DEV_RULES 硬规矩(Tom #9177 via hudson #9181/#9183) · 依据 #9177, #9181, #9183 · 验:ui_check 对现状跑:先 FAIL 4(线程 ≡׋ 相交 2px、通知箱 ↻ 17px / 标题图标 1.8)→ 改完 51 项全过;smoke 7/7(含 uicheck) - 2026-09-19 19:08 ·
b789a7d5c· 手机输入行按 Discord 比例:圆钮 ~40 / 图标 ~20 细描边 / 间距 ~10 / 行高 ~44 / 边距 ~12,频道页线程页同一套(Tom #9174 via hudson #9175) · 依据 #9174, #9175 · 验:iPhone13 量(设备 px):钮 41、图标 20、间距 9–10、输入框 44 高、边距 12/12;两页 y=789 同;smoke 6/6 - 2026-09-19 19:03 ·
0bd04884c· 头栏图标抽成 icons.js 一份 .hdr-ico(44 热区 / 24px 描边 2 / 同款红点),频道 / 线程 / 通知箱 / 嵌入页共用;线程输入行与频道页同一套(+ 📷 输入框 😊 🎤),去掉底部多余 ‹(Tom #9165/#9168 via hudson #9166/#9169) · 依据 #9165, #9166, #9168, #9169 · 验:iPhone13 量:频道 / 线程 / 通知箱头栏所有 svg 29×29 描边 2(.hdr-ico 一份);两页 footer 子件位置尺寸一致(+14/48 📷72/48 框130/188 🎤328/48);smoke 6/6 - 2026-09-19 18:56 ·
47abe93af· 手机去掉给旧底栏预留的 62px 底边距:频道 / 线程输入行、嵌入页、侧栏、审核页 .bar 都贴屏底只留 safe-area(Tom #9156 via hudson #9160) · 依据 #9156, #9160 · 验:iPhone13:频道 / 线程 footer bottom 844 = 屏底,输入框底 837;审核页视频控件贴底;smoke 6/6 - 2026-09-19 18:53 ·
b5abef178· 线程页头栏 📥(#cctb2)原来走 32px 旧规则,统一 24px 描边 2 + 小红点(Tom #9150 via hudson #9152) · 依据 #9150, #9152 · 验:线程页 ≡ / ‹ / 📥 svg 都 29 设备px(24 CSS×1.2);页面 script 带 ?v=;smoke 6/6 - 2026-09-19 18:49 ·
78ee9c641· smoke / ui_shot:playwright 浏览器 profile 与临时文件改写 D:\tmp\playwright,不再占 C:(hudson #9143) · 依据 #9143 · 验:运行中 D:\tmp\playwright 出现 playwright_chromiumdev_profile-* / playwright-artifacts-*,关闭后自动清;smoke 6/6 - 2026-09-19 18:48 ·
58961b1a8· 手机头栏:≡ 常驻最左、‹ 紧挨右边各 44px(线程 / 收藏 / 通知箱 / 嵌入页都并排);头栏图标统一 24px 描边 2(📥 / ‹ / 回聊天),通知箱红点缩小,通知箱 ‹ 换同一 chevron(Tom #9136/#9140 via hudson #9137/#9141) · 依据 #9136, #9137, #9140, #9141 · 验:副本 8766 iPhone13:线程 ≡[5,48] ‹[56]、通知箱 ≡ ‹[61]、收藏 ≡ ‹[56]、嵌入表单页 iframe ‹[55] / 单卡 ‹[46],svg 全 24px 描边 2;从线程抽屉选频道线程自动关;换上后 smoke 6/6 - 2026-09-19 18:39 ·
de0265d5a· 手机:去掉底部 tab 栏,进度 / 任务 / 返修 / 12.9 表单进抽屉顶部(通知箱 / 收藏下一组);通知箱打开时 ≡ 让位不再叠在 ‹ 上;非聊天页顶栏加回聊天入口(Tom #9117–#9121 via hudson #9122/#9125) · 依据 #9117, #9121, #9122, #9125 · 验:副本 8766 iPhone13:#cctb 隐藏、footer 贴底 844、线程底 0;抽屉顶部四入口 y=202–382 在收藏下;通知箱打开时 #hamb 隐藏;/rework 顶栏有回聊天;点抽屉「12.9 表单」嵌入打开并自动收抽屉;换上后 smoke 6/6 - 2026-09-19 18:31 ·
88e25938a· DISK 预警 / 日报只看 D: 与 C:,排除 G: 等虚拟盘(hudson #9110) · 依据 #9110 · 验:server.disk_line() 只出 D: / C:;重启 smoke 6/6 - 2026-09-19 18:27 ·
277662f9d· 抽屉 ②:≡ 改成头栏第一个图标样式(无底无阴影,标题从其右起,抽屉头栏同位置且吸顶)、行高 48 / 分组标题小一号、宽 ~72%、打开时当前频道居中(Tom #9081 via hudson #9085) · 依据 #9081, #9085 · 验:副本 8766 iPhone13:≡ 40px 透明无阴影、标题 x=87 不压;抽屉宽 281/390=72%、行高 48 CSS px、一屏 13 行、打开时 ep20 居中、头栏吸顶;换上后 smoke 6/6 - 2026-09-19 18:21 ·
ed28e0e43· 审核页:🎤 改成头栏圆按钮(与 ✓ ↩ ✈ 同大 48px,按住说话,录音中变红),手机单镜模式藏视频上的 .vmic 与意见框小麦克风(Tom #9055 via hudson #9060) · 依据 #9055, #9060 · 验:副本 8766 iPhone13:#hmic 48×48 在 ✈ 右侧不重叠,.vmic display none,意见框无小麦克风,占位文字保留;桌面 .vmic 照旧;换上后 smoke 6/6 - 2026-09-19 18:17 ·
ed5fed1fe· 聊天手机版:频道 / 私聊改成左侧抽屉,左上角浮动 ≡ 常驻(频道页 + 线程页),点频道自动收,点遮罩 / 再点 ≡ 收;不做边缘手势;桌面不变(Tom #8990/#9013 via hudson #9003/#9016) · 依据 #8990, #9003, #9013, #9016 · 验:副本服务 8766 上 Playwright iPhone13:频道页 ≡ 可见、点开抽屉 aside 328×844、点 general 切换并自动收、遮罩收;线程页 ≡ 常驻、抽屉里选频道关线程切换;桌面 1280 无 ≡、侧栏照常;换上后 smoke 6/6 - 2026-09-19 18:01 ·
8690693a3· 聊天:打开线程不再自动聚焦输入框(Tom #8978 via hudson #8981) · 依据 #8978, #8981 · 验:Playwright iPhone13 打开 /?ch=chatdev&m=8699&t=8699:activeElement=BODY,点输入框后才是 tta;smoke 6/6 - 2026-09-19 16:58 ·
cac2fb794· review:候选 / 参考图 url 统一 encodeURI(# → %23、? → %3F,已编码不重编);swap_mix_card 文件名去 # ? % 并 quote url(hudson #8699 EP27 黑屏根治) · 依据 #8699 · 验:页面里 U('/files/a b#1.mp4') → /files/a%20b%231.mp4,已编码串原样;/review/12_9_mix/EP27 视频 readyState 4 / 1080 宽;smoke 6/6 - 2026-09-19 14:59 ·
4dc6dcf45· server:磁盘水位报警(任一盘 <20 GB 每小时一条 DISK,<5 GB 每 10 分钟)+ 08:00 日报带各盘剩余(hudson #8256 ①②) · 依据 #8256 · 验:server.disk_free() 列 D/C/E/G;重启后 G: 19.6 GB 立刻发了一条 DISK 🟠(#8275);prune --all 干跑 8.67 GB 清单写到 00_project/cost/PRUNE_LIST_2026-09-19.md;smoke 6/6 - 2026-09-19 09:50 ·
a2ef1e43· DEV_RULES 台词窗帧号口径(#7786)+ rough_cut 混时按 record source_head_frame 打 note / 越界 WARN(不自动减,防双扣) · 依据 #7786 · 验:用 EP23 cut.json + TRACKS 干跑:note L08 S009 文件已剪头 24(文件 f8 = 源 f32)、L10 S012 头 24(f4 = f28),无 WARN - 2026-09-19 08:25 ·
30e84906· server:POST /api/messages 私聊键按字母序归一(watson+tom ≠ tom+watson 的旁支频道)+ 非参与者 403 · 依据 — · 验:chat.py dm hudson 落在 dm/hudson+watson;旧写法 --project dm post watson+tom 也归到 dm/tom+watson;smoke 6/6 - 2026-09-19 06:36 ·
32084b52· 台账一行日报(hudson #7527):ledger.daily_line 按 gpt/fal $ · RH 千问 ¥ · H3 ¥ · 音频 $ + 累计;08:00 自动出 LEDGER_日期.md 并 DM Tom / hudson(不再进 #general) · 依据 #7527 · 验:ledger.daily_line() 打印今日一行;DM 已发 tom / hudson;server 重启 smoke 6/6 - 2026-09-19 06:33 ·
786844d7· ledger_backfill_edits.py + 补回 324 条局部编辑计费记录(scratch/tmp → 帧目录 / 00_project/tests/scratch_edits):台账 2247→2571 次,$91.93→$117.57 · 依据 — · 验:ledger_backfill_edits.py --dry 再实跑:324 补 / 4 已有;ledger() total 2247→2571、\$91.93→\$117.57;rework media_rows locked-hit 778 via derived 31;smoke 6/6 - 2026-09-19 06:27 ·
71549e37· review 单镜模式提交失败红字改挂在意见框下(.bar 在单镜模式是 display:none,之前看不见) · 依据 — · 验:Playwright iPhone13 拦下 POST 截「提交中」再 abort 截「失败」:聊天发送 / 附件上传 / review 提交 / rework 批注 四态齐;review 单镜红字现在可见;/ledger 有 manifest;smoke 6/6 - 2026-09-19 06:22 ·
27080cca· /review 卡片自动带最新 POST_SHEET 链接(hudson #7469)+ /repo/*.md?view=1 渲染成表(手机一镜一块) · 依据 #7469 · 验:GET /api/review/12_9_mix 里 EP14/16/17/18 带 post_sheet;/repo/deliverables/EP18/EP18_POST_SHEET_v001.md?view=1 出表 13 行;卡片 iPhone13 + 桌面截图 后期表 链接在头栏;smoke 6/6 PASS ×3(含 restart) - 2026-09-19 06:10 ·
918687e1· post_sheet.py(#7443):每集后期汇总表,每镜一行从 VIDEO_LOCK / cut.json / review.method.json / sfx_cues / lip_drive 自动抽;EP18 v001 · 依据 #7443 · 验:python tools/post_sheet.py EP18 两次:第一次出 v001 813982bc 12 镜,第二次 unchanged;EP17(有台词窗)/EP14 也能出 - 2026-09-19 06:01 ·
5b37a309· plate_pan2d.py(#7436 ④):长板取段横摇 / 竖摇,起止窗 + 缓入缓出 + 首尾定格 + 轻推,越界帧计数;样例 SC03 master 左→右 · 依据 #7436 · 验:smoke 6/6(线程 7436)+ 四样例各出 review.mp4 / strip / method.json:text_reveal 按笔画 铜→铜山→铜山毛→铜山毛榉;light EP14-S006 灯渐亮 + f31 闪;shake EP20-S001 3px 衰减 + 38 尘粒;plate_pan SC03 96 f 无越界 - 2026-09-19 05:30 ·
7435bf61· 台账实际计费优先(hudson #6700):oai_image.py 记 fal 响应 JSON / x-fal-* 头里的实际计费为 cost_actual_usd(没有则 None,保留刊例估算),并存 fal_meta / fal_headers 便于核对;ledger.py 汇总优先 cost_actual_usd,RunningHub 记录取 usage.thirdPartyConsumeMoney / consumeMoney(CNY)为实收,行加 cost_source · 依据 #6700 · 验:smoke 6/6(线程 6700)+ ledger 重算 2193 行正常;现有 RH record 里没有 usage 字段,所以本次没有行改成实收(只有新记录带 usage 才会);fal 是否回实际计费未验(需真跑一次) - 2026-09-19 05:13 ·
f7d18d0d· 返修台账「审核记录」(Tom #6730 via hudson #6732):行 thread 字段 = 该镜镜头线程主帖 id(#ep## 里以 EP##-S### 开头的最近主帖),卡片责任行后显示「审核记录 › #ep14 线程 #6076 · 裁定 #6585」点跳聊天定位;tools/rework_backfill_threads.py 历史回填(343 行命中 219 / 未命中 124,EP01/02 无频道、早期集主帖不带镜号);Tom 收口自动开的行也带 thread · 依据 #6076, #6585, #6730, #6732 · 验:smoke 6/6(线程 6732)+ 回填 219/124 + RV230 卡片「审核记录 › #ep15 线程 #5405 · 裁定 #6487」点线程 → 聊天 ep15 定位 #5405 高亮 - 2026-09-19 05:09 ·
6a96c207· QA 初筛 c:05_frames/tools/qa/fft_grid_check.py(Tom #7123 via hudson #7137,依据 REF_IMAGE_QA_SURVEY ③ FFT 周期伪影):高通 + Hann 窗 2D FFT log 谱,找比局部中值高 12 dB 的孤立尖峰(3–64 px 周期;主轴门槛 +8 dB,不整条去掉——网格常落在主轴),3×3 分块一致性(≥半数块同频才算),--compare 原图排除内容自带的规则纹理;≥2 个一致尖峰 suspect、≥4 或 >20 dB bad;出 .fft.json + .fft.png(缩略 + 谱标红);--record 写 fft_check · 依据 #7123, #7137 · 验:smoke 6/6(线程 7137)+ EP06-S001 t8p RealESRGAN x2 帧(--compare 原 512 帧)ok、原帧 ok、EP18-S005 首帧 ok;人造 8px ±3 网格 → bad(主轴 4/8 px 尖峰 36 dB,6/9 块一致) - 2026-09-19 05:07 ·
77cf6b54· masked_edit.py --sam 默认开(Tom #7234 via hudson #7249,Board L45 附则 4 补):--sam-label 物名(Grounding DINO 找框 → SAM2 出目标物 mask)/ --sam-box / --sam-point / --sam-exclude,外扩 --sam-grow 12 再羽化;矩形 / 多边形只作补充,--no-sam 回旧法;贴回 = SAM ∩ 实际 diff(差异法降为安全过滤:返回图真改了的地方才贴);method.json 记 mask_source=sam + SAM 框 / 分数 / 像素。新增 05_frames/tools/qa/sam_mask.py(跑 seg venv,模型同 seg_boxes.py,出 mask + .sam.json + 预览) · 依据 #7234, #7249 · 验:smoke 6/6(线程 7137)+ sam_mask EP18-S005 --label door knob → 框 (890,843)-(982,1058) 分数 0.31、mask 10261 px 外扩后 18263;用 v001→v001b 模拟贴回:SAM∩diff 有效 alpha 18043 px,mask 外 diff 0.000 - 2026-09-19 05:02 ·
024b9e93· QA 初筛 b:05_frames/tools/qa/ref_similarity.py(Tom #7123 via hudson #7137,依据 REF_IMAGE_QA_SURVEY ③ DINO 一致性):frame vs 定妆 sheet(路径或 CH01 这类 id 从 registry 取)DINOv2-small 余弦相似度,整图 + 3×3 滑窗局部最佳(+ 可选 --crop),低于 --thr 0.6 标红;输出 .sim.json + .sim.png(frame 上画最佳匹配框,每张 sheet 下分数条红/绿);--record 写 ref_similarity。权重 facebook/dinov2-small 缓存 chat/.models/hf,跑在 chat/.asr 的 torch(手写 224 预处理,不装 torchvision) · 依据 #7123, #7137 · 验:EP16-S011 首帧(CH01)vs CH01/CH04/CH02 → 0.62 / 0.48 / 0.51(只 CH01 过线);EP18-S005 门(无人物)vs CH01/CH04 → 0.59 / 0.39 全红;加载 1.3–7 s,每张 <0.1 s - 2026-09-19 04:59 ·
42b97259· QA 初筛 a:05_frames/tools/qa/edit_seam_check.py(Tom #7123 via hudson #7137,依据 REF_IMAGE_QA_SURVEY ③ 接缝梯度检测):before/after/mask(png | 矩形 | auto=diff 区外扩 8px)→ 蒙版边内外圈 Lab ΔL/Δa/Δb/ΔE + 边界梯度增量(Lab 三通道 Sobel,沿边中位数 / 覆盖率 / p90)+ Laplacian 差 + diff 边界「台阶测试」(after 内外台阶 − before 同台阶,整圈一致 = 硬贴 / 偏色);输出 .seam.json + .seam.png(蒙版边黄、可疑段红);--record 写进 record/method.json 的 seam_check;masked_edit.py 每张贴回后自动跑。实测 EP18-S005/S004 v001→v001b(ECC 贴回)ok;人造 +30 色偏硬贴 bad、+8 亮度硬贴 suspect · 依据 #7123, #7137 · 验:smoke 6/6(线程 7137)+ 4 例:S005 ok(ΔE 1.8,台阶中位 2.1/33%)、S004 ok(1.2,2.9/37%)、人造硬贴 +30 色偏 bad(台阶 18.4/100%)、+8 亮度 suspect(4.0/96%);--record 写入 method.json 验过 - 2026-09-19 04:50 ·
7ce78096· 台账自动行(Tom #6726/#6734/#6736 via hudson #6728/#6738):① 锁文件派生尾缀(_01b/_01c/_02_rf/_refill/_r1/_fix)去掉后与输出比对,匹配即锁用(资产条注「锁用(派生 _02b)」)、pass;② 三档:锁用 pass(绿)/ 备选 alt(灰,默认:出了没被选中)/ 失败 fail(红:只有明确退回——批注含「退」或同镜台账 fail 行提到该版本);/rework 顶部统计加「备选」,失败只算红;卡片「备选」行说明 · 依据 #6726, #6728, #6734, #6736, #6738 · 验:smoke 6/6(线程 6728)+ 全表重算:媒体行 356 条 before fail 235 / pass 121 → after pass 124 / alt 221 / fail 11(fail→alt 221、fail→pass 3:RG289 _01b、RG292 _02b、RG296 _02b);页面 RG296 通过 + 锁用(派生 _02b),RG280 失败「被退回;未锁用,被 v003 取代」 - 2026-09-19 03:22 ·
387ca695· 桌面双侧栏(Tom #6887 via hudson #6888):根因 = 嵌入的 /rework 页顶栏「聊天」链接(href=/)没被拦截,把聊天页整个装进了自己的嵌入 iframe(外层侧栏 + 内层侧栏 + 内层 #ep17)。icons.js 嵌入态拦截 href=/ → 让父页关嵌入;ui.html 加保险:发现自己在 embed=1 的 iframe 里就通知父页关嵌入并不渲染 · 依据 #6887, #6888 · 验:smoke 6/6(线程 6801)+ 桌面 1400:嵌入 /rework 点「聊天」→ 嵌入关、iframe about:blank、aside 1 个;强制把 /?embed=1 塞进 iframe → 父页自动关嵌入 - 2026-09-19 01:56 ·
0eb966bb· 引用行弧线(hudson #6687):根因 .rq overflow:hidden 把左侧 -42px 的 ::before 弧线裁掉了(深浅主题都没画出来);改 overflow:visible(截断由 .t 负责),弧线改 2px 铜灰 rgba(168,100,42,.6) 双主题可见 · 依据 #6687 · 验:smoke 6/6(线程 6624)+ 390 深 / 浅主题截图:弧线从头像左上角弯到引用行,正文仍截断、无横向滚动 - 2026-09-19 01:44 ·
025067a6· 聊天引用条 Discord 样式(Tom #6649 via hudson #6651):高 22,从当前消息头像左上角 2px 弧线连到引用行,被引用人 20px 圆头像 + 铜色 13px 600 名字 + 13px 灰正文一行截断,点整行跳原消息高亮;紧邻上一条仍不显示;线程同样 · 依据 #6649, #6651 · 验:smoke 6/6(线程 6635)+ iPhone / 桌面 / 线程截图 #6632 引用条 - 2026-09-19 01:22 ·
cfbbeb09· 审片页:返修中的集也能改裁定(hudson #6592,放开 Tom #1286 的锁):单集页不再锁定,✓ / ↩ 重选、➤ 提交覆盖;服务端只拦与上次完全相同(返修 + 同意见 + 无新附图)的重复提交;页头显示上次裁定小标签 · 依据 #1286, #6592 · 验:smoke 6/6(线程 6010)+ 390×844 EP16:不锁、三钮 + 意见框都在,点 ✓ → ➤ 可用,拦截提交 payload verdict=pass → 回列表 - 2026-09-19 01:19 ·
1690d940· 页头「‹」统一(Tom #6563 via hudson #6565):聊天 / 线程 / 嵌入页(icons.js embed-back)/ 审片页 都是 44×44 触区、左贴边 4px、SVG 折线 24 / stroke 2.5,标题跟着左移 · 依据 #6563, #6565 · 验:smoke 6/6(线程 6010)+ 390×844 量:聊天 mback 53×53(dpr2) 左 7 / 线程 back 6 / 嵌入 embed-back 2 / 审片 back 5,图标 29px(=24css) stroke 2.5 - 2026-09-19 01:14 ·
831c6ea4· 审片页控制条浮在视频底部(Tom #6541 via hudson #6543):手机竖屏时 进度条 + ⏮▶⏭ + 镜号 绝对定位在视频区底边内(64 高、rgba(0,0,0,.45) + 模糊、左右 12 内距、无外框),视频高 = 可用高全部;播放 3 s 无操作淡到 25%、触碰 / 点画面 / 暂停回 100%;进度条白轨铜填充、镜号胶囊半透明白字;胶囊点开走覆盖层镜号列表;宽屏仍在右栏。返修锁定卡在审片页也带控制条、页头「返修中」、视频不再灰化。收口(hudson #6551):note 提到的镜没有 by=tom 行时也自动开一行(round=该镜最大轮次+1,made 沿用最近一行),同 note 重复裁定不重复开 · 依据 #6541, #6543, #6551 · 验:smoke 6/6(线程 6307)+ 390×844:视频 53–835(视口 844)、浮层 758–835 在视频内、vtap 让出 64;播放 3.6 s 后 dim opacity .25、pointerdown 回满;胶囊 → 覆盖层列表;副本 dry-run:note「S001 门框歪了 S003 0:20 手多了 S005 还是抖」→ S005 doing 行 fail + r2、无行的 S001 开 r1、S003 pass 历史开 r3;同 note 再裁无新行 - 2026-09-19 01:05 ·
6468c2be· 返修收口片段切分(hudson #6530):先按 ;; 换行,再按 S\d{3} 边界切,每个镜号各自一段(没时间戳也算),镜号前散文并入前段 · 依据 #6530 · 验:smoke 6/6(线程 6307)+ 副本 dry-run:note「S012 门没关好 S013 1:01 …拿出来 S015 这个镜头对着关闭的门」无分号 → S012/S013/S015 各 fail + 各开 r2,S002 未提 → pass - 2026-09-19 00:59 ·
6654b92d· 返修收口边界(hudson #6516):Tom 重复提交同一条 note 时,该镜已在处理的那轮 reason 与 note 相同 → 不动;只有 note 变了才 fail + 开新轮 · 依据 #6516 · 验:smoke 6/6(线程 6307)+ 临时副本 dry-run:r5 doing + 同 note 再裁 → 仍 doing、无新行;note 改成「袖口还是不对」→ r5 fail + 开 r6 - 2026-09-19 00:56 ·
3ed0785f· mic_input 🎤 对齐(Tom #6492 via hudson #6495):单行时框内垂直居中、直径 = 框内高 − 8(约 28–32)、右内距 = 左内距;框长高后固定右下角同内距;宿主 padding-right 随直径算(之前那行被 // 注释吞掉没生效,改 /* */);/rework 批注框 placeholder 改短(转发目标已是 #rework) · 依据 #6492, #6495 · 验:smoke 6/6(线程 6010)+ 390×844:/review 空框 43 高 🎤 31 居中差 0、右内距 15;长高 97 时 🎤 右下内距 15;/rework 46 高 🎤 35 居中差 0;聊天输入框自带 🎤 48 居中 - 2026-09-19 00:50 ·
17da5b68· 语音识别切 SenseVoice-Small(Tom #6392 via hudson #6464):tools/sv_worker.py 常驻子进程(chat/.asr 的 torch cu124 与 kokoro 的 torch 冲突 → 隔离进程,stdin/stdout JSON),服务启动即拉起并预热;voice.transcribe_local 先 SenseVoice 判语种 + 文本——中文 / 粤语用它的文本 + 现词表 + 幻觉过滤,判英文再走 whisper large-v3;CC_ASR=whisper 可回退;子进程挂了自动重启。词表加 工间→空间 / 太不就好了→太不友好了 / 每I每次→每次 / 看看了得不→听得懂不。smoke voice 改中英各一条(英文固定样本 #1017)。审片页横屏 🎤 进视频区内、描边细一致(hudson #6470) · 依据 #1017, #6392, #6464, #6470 · 验:smoke 6/6(线程 6464,voice zh+en)+ 线上 /api/voice 回归:#5939 → 测试一下四川话×3 听得懂不(0.33 s)、#6392 → 这个四川法大也得不到了(0.09 s)、曾判英的 #6358 → 中文「较正常嘛」、#1017 → Hello, hello.(whisper,0.66 s);worker 加载 1.7 s、启动即预热;横屏 🎤 在视频区内 122–180 / 视频 37–189 - 2026-09-19 00:45 ·
057a2ce6· /review 审片页(Tom #6444/#6451/#6460 via hudson #6445/#6448/#6454/#6462):宽屏(宽>高 或 ≥900)两栏——左视频撑满可用高、右栏 360–420 = 意见框 → 进度 + ⏮▶⏭ + 镜号;页头一行左「‹ EP15 · v004_sub · 13/14」右三个 40px 圆钮 ✓ 通过(选中铜实心)/ ↩ 返修(选中红实心)/ ➤ 提交(未裁 40% 灰,title 提示),底栏删除、视频高度按整视口重算;视觉精修:8px 网格 / 12px 圆角 / 1px 铜描边浅底、⏮▶⏭ 线性图标 44 触区、进度条 4px + 16 拖柄 + 1px 刻度、镜号胶囊 36、placeholder 15px;去掉视频底部字幕行;🎤 在视频右侧空白,没空位贴视频内右侧;底部导航条两种路径都隐藏(直开 CSS;嵌入态 postMessage cc-chrome → 父页隐藏导航 + 嵌入层到底,回列表恢复) · 依据 #6444, #6445, #6448, #6451, #6454, #6460, #6462 · 验:smoke 6/6(线程 6010)+ 390×844:页头 0–53(钮 212–376)/ 意见框 58–101 / 视频 106–733 / 控制行 768–836,无底栏、导航 none;记 2 条 + 返修后意见框到 128、视频 133–733;横屏 750×342 与桌面 1280 两栏:视频左 72–342/900,右栏意见框 62–106 → 控制行 140–208;嵌入态父页 cctb none、embed bottom 0,回列表 cctb flex - 2026-09-19 00:36 ·
1e009bc7· /review 审片页精简(Tom #6407/#6409 via hudson #6411/#6413):页头一行 44px「‹ EP15 · v004_sub · 13/14」;意见框空时 1 行 36px、有内容随之长高;视频区 = 视频宽、无黑边、背景同页底色,高度按视口算(页头 + 意见框 + 进度 + 控制行 + 底栏 + 8 余量,两趟量实际间隙修正;横屏最小 120 可滚);控制行紧贴视频、紧凑(40/44px 钮);底栏一行 52px「✓ 通过 | 返修 | 提交」;审片页隐藏底部导航条;🎤 放到视频右侧空白区;返修锁定卡也带 ‹ 返回 · 依据 #6407, #6409, #6411, #6413 · 验:smoke 6/6(线程 6010)+ iPhone 13 竖屏:页头 0–53、意见框 58–101、视频 106–504、控制行 521–581、底栏 586–664(innerHeight 664,不滚动看全);记 2 条后意见框 58–128、视频缩到 133–500 仍不重叠;导航条 display none;桌面 / 横屏截图 - 2026-09-19 00:27 ·
2e984c48· 全站提交态 busy.js(Tom #6369 via hudson #6375):CC_SUBMIT(btn, fn) 点下立即「提交中… + 禁用 + 转圈」→ 成功短暂「已提交 ✓」/ 失败红字原因 + 恢复;接入 聊天发送(含语音条)、附件上传(+ 转圈)、/review 提交、/rework 批注;写进 DEV_RULES。PWA(Tom #6377 via hudson #6382):manifest.json + 铜色图标 192/512/180 + apple-touch-icon + theme-color,六页 head 接入;麦克风 stream 会话内复用(CC_MIC.get 拿一次、录完只停 MediaRecorder、页面隐藏时释放;chat / review / mic_input 三处共用)。/review 列表页标题改回表单名(hudson #6385)。server 加小静态文件表 · 依据 #6369, #6375, #6377, #6382, #6385 · 验:smoke 6/6(线程 6375)+ iPhone:聊天发送失败态红字「发送失败:http 500」+ 文字保留 + 按钮恢复;review 提交失败「提交失败:模拟服务端 500」留在审片页;rework 批注成功 ✓ + 批注出现 + 输入清空;连续录两次 getUserMedia 只调 1 次;/manifest.json /icon-192 /icon-512 /apple-touch-icon /busy.js 200 - 2026-09-19 00:16 ·
6bd10b4c· /review 两层(Tom #6321/#6314 via hudson #6324/#6320):列表页 /review/<rid> 每集一行(集名 · 已裁/未裁/返修中/待提交 · ▶ 去审 · 版本 chips 短标签);审片页 /review/<rid>/<EP> 全屏独立路由:sticky 页头「‹ EP14 · v007_sub · 12/14」→ sticky 意见框(2–4 行自增、🎤 跟随,滚到选项 / 控制行时仍在顶上)→ 视频 → 进度条 + ⏮▶⏭ + 镜号 → 附图 / 更多 → 底栏「通过(推荐)· 版本 | 返修 · 提交」;单集提交只带本集,提交后回列表自动标已裁;点通过 / 返修只同步底栏不重绘(视频不重置)。smoke ui 项按两层结构查(列表页 .lrow + 审片页 EP14 卡) · 依据 #6314, #6320, #6321, #6324 · 验:smoke 6/6(线程 6010)+ iPhone/桌面脚本:列表 14 行、去审链接 /review/12_9_mix/EP14;审片页 1 卡、选项不在卡里、底栏 通过/返修;滚到控制行时意见框 top=页头底(125/78)且在视口;覆盖层 chip → 意见框出字、🎤 显示;点返修 → 底栏「待提交:返修」、视频未重置;拦截 POST 提交 → payload 只含 EP14、回到列表页 - 2026-09-19 00:13 ·
39852946· C:\Program Files\Git\rework 台账自动行批注发不出(Tom #6347 via hudson #6349\#6355):根因 = 卡片里 addNote(…, ${it.id}) 没加引号,台账行 id=code(RG286)→ ReferenceError,点了没反应;改成带引号传 id\key,非数字 id 不传(服务端按 rec;C:\Program Files\Git\code 存);批注为空时提示「批注是空的」;正在录音时点批注 → 先停录、等转写插完再发(mic_input 加 stopAndWait)。台账自动行「制作」:record.json 的 author\by 优先,没有按目录规则(09-18 分工后 05_frames\02_assets→billy、06_video→gregson、08_audio→lestrade;之前的旧记录 claude)。voice 幻觉黑名单加 优优独播剧场 \ YoYo Television(hudson #6346) · 依据 #6346, #6347, #6349, #6355 · 验:smoke 6/6(线程 6349)+ iPhone:/rework?c=RG286 打字→点批注 → POST /api/rework/note 200、卡片出 1 条批注;录音中点批注 → 停录 + 等转写 + 空则提示;RG286 制作=billy(媒体行 claude 801 / billy 130 / lestrade 84) - 2026-09-19 00:02 ·
79792b68· voice:词表加 审核 / 审片 / 裁定 / 返修 / 意见框;dialect_zh.json 加 regex 段(搭配型替换):「适合 + 剧集 / 页面 / 它」→ 审核,前有 不/很/挺 不换(hudson #6327);台账 RV230 action 改 v005(hudson #6334) · 依据 #6327, #6334 · 验:smoke 6/6(线程 5942)+ 5 句:适合每一个剧集→审核、适合它的页面→审核、适合不适合这一集 / 很适合这个页面 / 挺适合的 不变 - 2026-09-19 00:00 ·
f82c3a81· 返修台账 by=tom 行(Tom #6304 via hudson #6307):rework_add verdict 加 --by;returned_by=tom 的行 hudson pass 只记 sign、result 保持 doing(await_tom,页面「返修中 · 待 Tom」);Tom 在 12.9 表单提交裁定时 server 自动收口该集 by=tom 的 doing 行——note 仍提该镜 → fail + 自动开下一轮(reason=12.9 裁定:note 片段,同镜只开一行、round=最大+1),否则 → pass(sign=tom #裁定帖);/rework 卡片顶部「历史」条:同镜各轮 RVxxx › … 当前高亮、页内跳 / 不在页则 ?c=。数据:RV230(id 303) await_tom · 依据 #6304, #6307 · 验:smoke 6/6(线程 6307)+ 临时副本 dry-run:EP15 note「S013…;S011…」→ S013 三行 doing 全 fail + 新开 r5 一行、S002 未提 → pass sign tom #7777;rework_add verdict pass on by=tom → doing/await_tom,--by tom → pass;iPhone /rework RV230 历史条 RV219›…›RV230 当前高亮,点 RV226 页内跳 + hit
2026-09-18
- 2026-09-18 23:55 ·
e3b98a84· mic_input:宿主被 sticky 页头 / 底栏 / 弹层盖住时 🎤 不显示(elementFromPoint 命中检查,hudson #6302) · 依据 #6302 · 验:smoke 6/6(线程 6010)+ iPhone:/review、/rework 意见框在视口中 🎤 显示,滚到页头下面隐藏 - 2026-09-18 23:53 ·
d2f06357· /review 播放器重做(Tom #6275/#6282/#6286/#6287/#6292 via hudson #6278/#6284/#6289/#6291/#6295):视频去 controls / 无 poster(src#t=0.001 显示首帧),自绘细进度条(可拖、镜界刻度)+ 深色控制行 ⏮ ▶/⏸ ⏭(白色线性大图标,播放键随视频状态)+ 镜号胶囊(点开镜号列表可跳);⏮ ⏭ seek 到相邻镜起点并保持播放 / 暂停态;覆盖层胶囊两侧 ‹ ›(保持暂停)+ 胶囊可点列表;意见框移到视频上方、2 行起随内容长高;🎤 挪到视频右侧中部、覆盖层打开时隐藏;卡片顺序 卡头→意见框→视频→进度+控制行→选项→附图→更多;聊天页嵌入其它页时隐藏「跳到最新」浮钮 · 依据 #6275, #6278, #6282, #6284, #6286, #6287, #6289, #6291, #6292, #6295 · 验:smoke 6/6(当轮,线程 6010)+ iPhone/桌面脚本:卡片顺序 header→tawrap→cands→pbar→ctl→opts→att;无 controls;进度条拖到 60%→66%/62%、拖时暂停松手续播、14 刻度;覆盖层 chip → 意见框在视频上方且在视口内(77px 高);🎤 垂直居中;⏮ 播放中 seek 到上一镜起点仍播放、⏭ 暂停中仍暂停、胶囊列表 15 项高亮当前、点 S008 跳 31.4s;覆盖层 ‹ S008→S007 保持暂停;嵌入态 tobottom none / 关后 grid - 2026-09-18 23:41 ·
35a0a84a· 返修台账分类:by=tom 或 reason 含「12.9 裁定」一律 kind=视频(Tom #6237 via hudson #6240) · 依据 #6237, #6240 · 验:全表 302 行按新旧规则各算一遍 kind 无变化(已有行都带显式 kind / 无 tom 行漂移);/api/rework 重算后 299→RV231 视频、298→RV226 视频,编号无重复 - 2026-09-18 23:40 ·
674ffede· #rework 频道 + 返修批注每镜一线程(Tom #6230 via hudson #6233):channels.json 加 rework(总务组 ↩,topic「返修批注 · 每镜一线程」);/api/rework/note 转发到 #rework,同一镜 EP##-S### 复用同一线程——首条建主帖「【RVxxx】EP15-S013 返修批注 @made」,后续批注为线程回复;tech-* 保留(无 rework 频道的项目仍走旧分流)。smoke ui 项加 /review 开卡 + /rework 出行 + pageerror(hudson #6245);smoke --post 只贴 --thread N,restart_server --thread N 透传(hudson #6261)。台账数据:RV226(id 298) made→gregson(#6188 我改错到 id 226=RV168,已改回 claude) · 依据 #6188, #6230, #6233, #6245, #6261 · 验:smoke 6/6(当轮,贴线程 6233)+ RV226 三条批注 → #rework 主帖 6256 + 线程回复 6257/6263(重启后仍复用)+ iPhone 截图;made 查表 298→gregson - 2026-09-18 23:34 ·
d659770a· 通知箱点一条 → 跳到消息(Tom #6214 via hudson #6216):inbox.js 统一 CC_GO:聊天页原地 jump;其它页 location=/?ch=<频道>&m=<id>[&t=<线程>][&pj=dm];嵌在聊天页里的页 postMessage 让父页跳;ui.html 解析 ch/m/t、等 MSGS 到再 jump + 高亮,jump 先关嵌入,有线程的主帖开线程后也高亮。/review 🎤 改到视频区右上(hudson #6219)。修 /review 三处正则字面量里被换行打断(页面白屏) · 依据 #6214, #6216, #6219 · 验:smoke 6/6(当轮)+ iPhone 脚本:独立 /rework 点通知 #6219(线程回复)→ /?ch=chatdev&m=6219&t=6010 → 线程 #6010 内消息在视口 + flash;主帖 #6216 → 开线程 + flash;聊天页嵌入的 /rework 点通知 → 关嵌入原地 flash;review 三流程复跑通过 - 2026-09-18 23:24 ·
6cf699c0· /review 看片一步记意见(Tom #6202/#6203 via hudson #6205/#6208):视频右下 56px 🎤 按住=暂停+录音、松手=转写追加「S0xx m:ss 文本;」并续播;点画面=暂停+覆盖层(当前镜时刻 + 前 6 条意见 + 更多 + 继续),点 chip 追加并续播;有意见自动返修;大格子折进「更多…」;当前镜行 / 画面 touchend 在手势内 pause · 依据 #6202, #6203, #6205, #6208 · 验:smoke 6/6(当轮)+ iPhone 脚本三流程:点画面→覆盖层 S005·0:18→点 chip→「S005 0:18 多了一只手;」+返修+续播;按住🎤→暂停录音→松手占位→静音回滚→续播;当前镜行 touchend 暂停/继续 - 2026-09-18 23:19 ·
2dd9cadd· /rework:批注改自增高 textarea(1–6 行,⌘/Ctrl+Enter 或按钮提交);刷新按卡片 diff、保留批注文字 / 光标 / 滚动、打字或未提交时暂停刷新(Tom #6169/#6178 via hudson #6175/#6185);RV226 made→gregson(#6188) · 依据 #6169, #6175, #6178, #6185, #6188 · 验:smoke 6/6(当轮)+ iPhone 脚本:打半句 + 强制刷新 → 文字/光标/滚动 3541 都在,PENDING 补刷;textarea 3 行自增 - 2026-09-18 23:14 ·
5cdf60bf· EP16 S006 = 2d_v001(静帧 v002_01 + 3% 缓推 4 s,#6170)11/12;S005 hold +72 · 依据 #6170 · 验:smoke 6/6(当轮)+ 六页组件加载 + iPhone 假麦克风 review/rework 占位→回滚 + 视频 13 卡 206/readyState 4 - 2026-09-18 23:14 ·
2424ffdc· 全站语音输入 mic_input.js(Tom #6132 via hudson #6136/#6162):textarea/text input 自动挂 🎤,按住录→/api/voice 文本模式→插光标处,占位/回滚,宿主 padding-right 36;接入 chat/review/rework/todo/board/console;/review 卡片按 Tom #6142:播放器还原、「当前镜」行(点=暂停/继续)、意见框、40vh 选项区;rework_add --made 按集推默认,页面空显示「—」 · 依据 #6132, #6136, #6142, #6162 · 验:smoke 6/6(当轮)+ 六页组件加载 + iPhone 假麦克风 review/rework 占位→回滚 + 视频 13 卡 206/readyState 4 - 2026-09-18 22:50 ·
d16cd10c· ui.html:手机侧栏组名 17px/600 灰、48 高、chevron 占图标列(Tom #6103 / hudson #6108) · 依据 #6103, #6108 · 验:smoke 6/6(当轮)+ 脚本审计组名 17px/600/48/左距 16/chevron 22,折叠后仍 48 - 2026-09-18 22:47 ·
7ea6e38f· ui.html:手机侧栏统一(行 17px/48/图标 22/左距 16,组名 13 大写灰 600,设置行灰;Tom #6089 / hudson #6095);DEV_RULES:smoke 只贴当轮原文 · 依据 #6089, #6095 · 验:smoke 6/6(当轮)+ 脚本审计 42 行 fontSize={17px} height={48} padLeft={16px} icon={22} - 2026-09-18 22:44 ·
704cdd04· /review 三版(Tom #6070/#6073):撤弹层;卡片 = 视频(手机 sticky ≤34vh,桌面 ≤38vh)→ 镜号 chips → 分类意见 chips → 意见框(右下 🎤 按住转写,前带当前镜号)→ 附图 → 说明;按 currentTime 自动高亮当前镜号 · 依据 #6070, #6073 · 验:smoke 6/6 + iPhone 脚本:EP14 seek 到 S005 自动高亮、点意见 → 「S005 多了一只手;」;假麦克风按住 2.5 s → 占位「(转写中…)」→ 静音判失败恢复原文 - 2026-09-18 22:34 ·
adb691cd· /review 意见 chips 二版(Tom #6043/#6046/#6049):桌面铺开分类分色 + 视频 sticky(≤38vh);手机「填意见」全屏弹层:上 40% 该卡视频(DOM 移入继续播)+ 镜号 4 列 / 意见分类 2 列网格 + 实时拼句 + 清空 / 确定回填 · 依据 #6043, #6046, #6049 · 验:smoke 6/6 + iPhone 脚本:弹层 14 镜 / 20 意见、视频移入 t=59s、S013+两条 → 回填、关闭视频归位;桌面 sticky - 2026-09-18 22:28 ·
abad9870· ui.html:线程面板子项 min-width:0(长引用条撑爆 composer,Tom #6024 / hudson #6029);channels.json 加 ep16–ep20(hudson #6032) · 依据 #6024, #6029, #6032 · 验:smoke 6/6 + iPhone 模拟 200 字引用(线程 / 主列表 / 引用行)docW=390 + 回复态 / 键盘态截图 - 2026-09-18 22:23 ·
57daad18· 朗读上线(hudson #5952/#6017):/api/tts/<id> Kokoro 本地合成 + 🔊 按钮 + 启动预热;/review 表单意见 chips(镜号行 + quick_notes.json 意见行,Tom #6006);DEV_RULES 补中文路径 / 原生库禁区 · 依据 #5952, #6006, #6017 · 验:restart_server + smoke 6/6 + /api/tts 冷 34.8 s / 热 0.7 s / 缓存 0.0 s + 页面 🔊 播放脚本测;踩坑:espeakng_loader 编死 CI 数据路径、中文仓库路径需 UCRT UTF-8 locale - 2026-09-18 22:16 ·
6ca11148· ui.html:触屏不用 :hover 出工具条(iOS 点击后 hover 粘住导致 ··· 关不掉;Tom #6002 / hudson #6004) · 依据 #6002, #6004 · 验:smoke + iPhone 模拟 tap 序列(开/关/开/空白关,含 hover 粘住) - 2026-09-18 22:14 ·
43c08247· ui.html:手机工具条挪到头行上方(右对齐 ···、不遮挡),列表顶部放不下时放正文下方(Tom #5995 / hudson #5998) · 依据 #5995, #5998 · 验:smoke 6/6 + iPhone 模拟:中段条底 215 < ··· 顶 225 无重叠;列表顶部自动放正文下方 - 2026-09-18 22:13 ·
f2da5e61· ui.html:头像加载失败回退首字母(onerror),不留空圆(hudson #5993) · 依据 #5993 · 验:smoke + 拦截 /avatar/tom 后回退 TO + 两次···滚动后仍单条 - 2026-09-18 22:10 ·
3bb4bf99· ui.html:手机工具条只由「···」开合,点空白收起,一次一条;去掉长按弹条、线程内点消息不再弹(Tom #5983 / hudson #5985) · 依据 #5983, #5985 · 验:smoke 6/6 + iPhone 模拟:长按不弹 / ··· 开 / 第二条 ··· 只留一条 / 点别处收 - 2026-09-18 22:07 ·
a7e56573· 长轮询编辑时间戳改毫秒(转写完成同秒内也能立刻推下去,hudson #5964);🔊 朗读按钮 + /api/tts/<id>(#5952,模型装完再启用);dialect 加 开航了没吗→搞好了没嘛(#5969) · 依据 #5952, #5964, #5969 · 验:restart_server + smoke 6/6 + API 计时(post→落库 0.84 s,wait 收到编辑 0.81 s) - 2026-09-18 22:00 ·
62001d99· voice.py 四川话调优(hudson #5942):短方言句 + 精简词表 + beam 3(长词表会带偏口音),dialect_zh.json 加「开盘了得不→听得懂不」等 4 条 · 依据 #5942 · 验:restart_server + smoke 6/6 + 两条四川话 + 两条普通话前后对照 - 2026-09-18 21:55 ·
ce333165· 录音中停止钮改铜色圆底 + 线性方块 + 呼吸描边,语音条 ▶/⏸ 线性化(Tom #5924/#5925);voice.py 幻觉黑名单(Amara / 谢谢观看 …)命中按失败处理(hudson #5928) · 依据 #5924, #5925, #5928 · 验:restart_server + smoke 6/6 + 假麦克风录音态截图 + is_hallucination 四例 - 2026-09-18 21:40 ·
96347d74· ui.html:引用条单行省略(整行裁切 + 文本块 ellipsis);被引用的即紧邻上一条时不渲染引用条(主列表与线程)(Tom #5903/#5905 via hudson #5907/#5910) · 依据 #5903, #5905, #5907, #5910 · 验:smoke 6/6 + 四条构造消息脚本测(紧邻隐藏 / 隔条显示 / 省略号)+ 桌面手机裁图 - 2026-09-18 21:24 ·
210997f8· ui.html:手机顶栏 🔍 左、通知箱最右,同 24px/stroke 2/40 触区,角标 16px(Tom #5875) · 依据 #5875 · 验:smoke + 390 裁图 + 位置/尺寸脚本测 - 2026-09-18 21:22 ·
8913c54c· ui.html:手机顶栏加回通知箱图标(🔍 左侧,带未读数;Tom #5869 / hudson #5872) · 依据 #5869, #5872 · 验:smoke 6/6 + 390 截图 + 点击打开通知箱脚本测 - 2026-09-18 21:17 ·
3b527b8c· 语音条带引用:/api/voice X-Meta 传 reply_to、服务端落库,发完清引用条(Tom #5844 / hudson #5846) · 依据 #5844, #5846 · 验:restart_server + smoke 6/6 + 假麦克风端到端(手机/桌面各发一条 reply_to=5715) - 2026-09-18 21:00 ·
8b24a916· ui.html:📷 拍照钮只在手机 / 触屏显示,桌面只留 +(Tom #5807 / hudson #5809) · 依据 #5807, #5809 · 验:smoke + 1440/1024/390 computed display 检查 - 2026-09-18 20:59 ·
4ee0acc8· ui.html:手机输入区实心深灰圆盘 44px 等高、实心输入条圆角 22、大号 emoji glyph、间距 8 / 内边 12(Tom #5803 / hudson #5805) · 依据 #5803, #5805 · 验:smoke 6/6 + ui_shot 手机深浅 - 2026-09-18 20:54 ·
175ee756· ui.html:语音条改内联小控件(▶ 时长 铜色进度,单实例播放);手机输入区「表单」钮换「📷 拍照」(capture=environment)(hudson #5798) · 依据 #5798 · 验:smoke 6/6 + 脚本点播(playing/进度 19%)+ 相机 filechooser - 2026-09-18 20:52 ·
7d7a8e8f· ui.html:工具条只留图标、Discord 式紧凑圆角浮条(36px×8 间距 4)、「新消息」分隔线细灰(hudson #5794) · 依据 #5794 · 验:smoke 6/6 + 手机长按工具条一行脚本测 - 2026-09-18 20:51 ·
94648d79· CopperChat 手机对标 Discord(Tom #5785 via hudson #5787):跳到最新回浮动圆钮(44 深灰半透明 ↓,输入框上 16px,桌面同);手机顶栏 ← 未读药丸(点开通知箱) # 频道名 › + 🔍;标题点开频道 sheet(线程/置顶/成员/收藏/通知);输入区圆钮 + 表单 + 圆角输入框(内含表情 sheet)+ 麦克风;占位「给 #频道 发消息」 · 依据 #5785, #5787 · 验:smoke 6/6 + 手机四页 + 圆钮位置/表情插入脚本测 - 2026-09-18 20:45 ·
090f8aec· ui.html:「+」直接选文件(去掉弹出菜单与「语音转文字」项;Tom #5781 / hudson #5782) · 依据 #5781, #5782 · 验:smoke 6/6 + iPhone/桌面 filechooser 触发 - 2026-09-18 20:43 ·
8aa8fc76· ui.html:手机「+」菜单改底部 sheet(z 9001 + 遮罩),文件 input 改透明覆盖整行(iOS hidden input 不触发;Tom #5772 / hudson #5774) · 依据 #5772, #5774 · 验:smoke 6/6 + playwright iPhone13 tap「+」→「图片/文件」filechooser 触发(multiple) - 2026-09-18 20:41 ·
67f0af50· ui.html:「↓ 跳到最新」改为消息区底边 28px 铜色细横条(往上翻超一屏出现,点即到底并消失;Tom #5767 / hudson #5768) · 依据 #5767, #5768 · 验:smoke 6/6 + 桌面/手机脚本测(条底边=输入区顶边,点后消失) - 2026-09-18 20:33 ·
24d4683d· ui.html:「我的收藏」从侧栏移到顶栏 ⭐(Tom #5761 / hudson #5762);桌面侧栏顶部只留通知箱 · 依据 #5761, #5762 · 验:smoke 6/6 + 1440 截图 - 2026-09-18 20:22 ·
457dd743· ui.html:侧栏有 emoji 的频道用 emoji 替代 #;去掉消息区「N 条置顶」提示行(hudson #5752) · 依据 #5752 · 验:smoke 6/6 + 1440 截图 - 2026-09-18 20:20 ·
9e01b3b3· CopperChat 顶栏对标(Tom #5741/#5744/#5748 via hudson #5742/#5746/#5749):48px 顶栏 # 名 + 竖线 + 说明(悬停全文,私聊显示对方角色)+ 线程列表 / 置顶面板(带数)/ 成员(最近发言 + 在线)/ 搜索框「搜索 <项目>」/ ?;置顶不再常驻,消息区顶 28px 灰字提示;横幅铜底深字 + 「标记为已读 🔔」;channels.json icons 字段(频道名前 emoji) · 依据 #5741, #5742, #5744, #5746, #5748, #5749 · 验:restart_server + smoke 6/6 + 1440 截图 + threads/members/pins 脚本调用 - 2026-09-18 20:15 ·
755007d4· ui.html:待发附件预览右上角 ×,点掉即从待发列表移除(Tom #5731 / hudson #5735) · 依据 #5731, #5735 · 验:smoke 6/6 + 脚本模拟 3 个待发移除 1 个 - 2026-09-18 20:13 ·
7b4603ab· ui.html:工具条「引用」(❝)与「线程」(↩)并列带文字标签(Tom #5723/#5725) · 依据 #5723, #5725 · 验:smoke + 目视 - 2026-09-18 20:13 ·
650bc081· ui.html:上传改 XHR 带进度,进度条 = 输入框内部顶边 2px 铜线(hudson #5719) · 依据 #5719 · 验:smoke 6/6 + 3 MB 探针上传(返回 url、条自动收) - 2026-09-18 20:11 ·
09d50867· CopperChat 回复引用(Discord 式,hudson #5706 / Tom #5709 #5712):messages.reply_to 列 + /api/messages 收发 reply/reply_to,被回复者进通知箱与推送;页面「回复」按钮 → 输入框上方「正在回复至 作者」条,消息顶部弯线 + 小头像 @作者 摘要;chat.py --reply N · 依据 #5706, #5709, #5712 · 验:restart_server + smoke 6/6 + chat.py --reply 实发 #5716 + 手机/桌面截图 - 2026-09-18 20:06 ·
6fa55428· ui.html 手机回归修复(hudson #5699/#5703):合并消息保留头像占位不塌陷、长按工具条改浮层、发送键只在有文字时出现、横幅一行 · 依据 #5699, #5703 · 验:smoke 6/6 + ui_shot 手机四页 + 宽度脚本测(正文 292/390) - 2026-09-18 20:03 ·
6dc9fa90· CopperChat 桌面对标 Discord(Tom #5692 via hudson #5694):侧栏项目标题栏 / 组标题 / 32 高频道行 / 红药丸;顶栏 # 名 + topic(channels.json topics)+ 置顶 / 成员 / 搜索(/api/search)/ ?;作者角色色 + 7 分钟同人折叠;铜色横幅带「标记为已读」;日期线细灰;输入框圆角大条 · 依据 #5692, #5694 · 验:restart_server + smoke 6/6 + ui_shot 1440/2560 + search/members/cont 脚本测 - 2026-09-18 19:54 ·
992f4040· ui.html:桌面线程面板顶栏去掉通知箱图标(Tom #5685) · 依据 #5685 · 验:smoke 6/6 - 2026-09-18 19:54 ·
c9204c79· ui.html:正文列改回左对齐(上限 900 保留),置顶条 / 分割线同宽左对齐(Tom #5683) · 依据 #5683 · 验:smoke 6/6 - 2026-09-18 19:51 ·
70a494f7· ui.html:超宽屏正文列 ≤900 居中;线程状态行只在镜头线程 / 已设状态时显示(hudson #5677 ⑦⑧) · 依据 #5677 · 验:smoke 6/6 + ui_shot 2560 + render() 三例 - 2026-09-18 19:48 ·
164478a0· ui.html 桌面版(Tom #5672 via hudson #5673):侧栏工具项沉底小字 + 标签补前缀、用法收进 ?、顶栏只留铃铛、正文列 ≤900 屏幕像素、横幅一行无 × · 依据 #5672, #5673 · 验:smoke 6/6 + ui_shot 1440 chan/inbox - 2026-09-18 19:45 ·
2d852a38· backup.py:仓库整树镜像到云盘 <根>/repo(/MIR + 排除),chat 备份改到 <根>/chat,backup/backup.log 每步一行;tools/restore_repo.py 从镜像拷回目录(默认 dry-run)(hudson #5670) · 依据 #5670 · 验:backup.py --dry-run + repo 全量镜像后台跑中 - 2026-09-18 19:39 ·
458a6ef0· CHANGELOG.md(今日 128 条代码提交回填)+ tools/changelog_add.py;DEV_RULES.md 代码改动规范;CLAUDE.md 常用入口链接(hudson #5660) · 依据 #5660 · 验:文档;changelog_add.py --since 回填实跑 - 2026-09-18 19:39 ·
99919258· ui.html:新消息横幅改铜色系、私聊页不出横幅(hudson #5665) · 依据 #5665 · 验:smoke 6/6 - 2026-09-18 19:35 ·
755dc986· CopperChat 手机版(Tom #5651 via hudson #5655):回复行收进 ⋯/长按、‹ 单独、工具项沉底、置顶折一行、发送常显 + 语音按住说松手发 · 依据 #5651, #5655 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 19:32 ·
756a6900· CLAUDE.md:界面 / 服务改动交付前 smoke.py 必过 · 依据 — · 验:回填 · 文档,无需 - 2026-09-18 19:30 ·
13f8fe98· tools/smoke.py 冒烟(health/state/messages/inbox/voice/ui+console error,hudson #5649);ui_shot 抽出 shoot();restart_server.py 重启后自动冒烟贴 #chatdev · 依据 #5649 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 19:27 ·
c02b2981· voice.py:语种自动检测(zh/en 各自词表,英文出原文不翻译,方言替换只对 zh;hudson #5641) · 依据 #5641 · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 19:25 ·
2cfda5aa· 通知箱:默认「全部」未读排前、空态文案、顶部「今日 N 条 · 未读 M」(hudson #5638) · 依据 #5638 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 19:23 ·
8b52daaf· tools/restart_server.py:无缝重启(先起新进程双绑 8765 → 停旧 → health 确认 pid;hudson #5622 ③) · 依据 #5622 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 19:21 ·
3a6d2e48· 语音转写 large-v3/CUDA(hudson #5575 ①②):项目内 .cuda/.models、词表 initial_prompt、方言词表纠错 dialect_zh.json、medium/CPU 回退;server /api/health + 客户端断开不进 err.log;页面「重连中…」退避重试(#5622 ①②) · 依据 #5575, #5622 · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 19:15 ·
ef2ce23f· CopperChat:侧栏「全部标已读」(hudson #5617,只对自己账号:频道 + 私聊各 POST /api/read 到最新) · 依据 #5617 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 19:12 ·
3b1e979e· CopperChat 手机版一致化(hudson #5575 ③,按 Discord):统一字号 / 行高 / 圆角变量块,通知箱 100vw→left/right 修 zoom 裁切、卡片 flex:none、顶栏紧凑;tools/ui_shot.py 截图工具 · 依据 #5575 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 19:07 ·
9e10ca13· backup.py:可选云盘镜像步(backup_cloud.txt 写盘符目录 → robocopy /MIR;hudson #5606) · 依据 #5606 · 验:回填 · 文档,无需 - 2026-09-18 19:06 ·
82a32cef· CopperChat 每日备份(hudson #5601):backup.py(VACUUM INTO + files 增量镜像 + 留 14 天)+ 服务 03:00 线程 + tools/restore_chat.py 回滚;tools/ui_shot.py 手机截图工具 · 依据 #5601 · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 19:01 ·
ca213473· CopperChat:去掉「只看 @我」开关(hudson #5595,私聊被误滤;通知箱替代) · 依据 #5595 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 18:51 ·
f632c3e7· 程序员岗定名 watson(Tom #5567),mycroft 撤销;CLAUDE.md / Board / ui 角色同步 · 依据 #5567 · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 18:49 ·
8164c7d7· 新岗 mycroft 程序员(Tom #5566):登记 + CLAUDE.md / Board §12;hudson 不再写代码 · 依据 #5566 · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 18:49 ·
c6c1b1ef· EP06 FINAL v001:Tom #5538 pass(v015),13 条 H3 take RealESRGAN x2(≈¥1.14),USE_UPSCALE 粗剪 + v016up 混音(cue v002)+ 字幕 + 母版 + RECORD;台账 EP06 行 sign tom #5538(275 与 272 重复已并) · 依据 #5538 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 18:14 ·
47734148· 通知箱:手机全屏(去掉 ui.html 里旧的 92vw 规则),左上加 ‹ 返回(Tom #5532) · 依据 #5532 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 18:13 ·
309b64a6· 语音转写:本机 faster-whisper small int8 优先(≈1 s,免费)→ ElevenLabs Scribe → fal whisper;模型常驻(Tom #5526/#5531) · 依据 #5526, #5531 · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 18:05 ·
fb5d4521· 通知箱重做:跟随主题色、卡片式条目(作者 / 时间 / 频道 chip / 原因 chip / 未读标)、未读铜色边、手机全宽(Tom #5511) · 依据 #5511 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 18:01 ·
d107b840· 进度表:看完视频返回恢复原滚动位置;播放页 ‹ 走 history.back(Tom #5507) · 依据 #5507 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 18:00 ·
b300af11· 看完视频点 ‹ 只关嵌入、留在原频道原位置(Tom #5505) · 依据 #5505 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 17:46 ·
2453e6be· 频道列表 Discord 风:平铺分组、# / 喇叭图标、未读加粗 + 左侧圆点、工具行移到底部并隐藏与底栏重复的三项(Tom #5477) · 依据 #5477 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 17:44 ·
f102eba7· 员工状态:待回 @ 只算 tom / hudson 点名(scribe 误报) · 依据 — · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 17:43 ·
49622990· 频道列表页美化:分组卡片(圆角、铜色组头)、频道缩进、工具行收紧(Tom #5470) · 依据 #5470 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 17:42 ·
21d97a87· ↓ 按钮定位到输入框上方、缩小(Tom #5471 挡住发送键) · 依据 #5471 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 17:40 ·
8011b933· 私聊列表成可折叠分组(Tom #5465) · 依据 #5465 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 17:39 ·
f8f10041· 聊天:右下「↓ 到底部」浮动按钮(离底 >400px 时出现,Tom #5455) · 依据 #5455 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 17:38 ·
38725f60· 侧栏分组标题加大(14px / 手机 17px,高 40–52px,Tom #5462) · 依据 #5462 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 17:37 ·
0921a578· 侧栏频道分组(公告 / 总务、剧集、技术、其他),可折叠(Tom #5460) · 依据 #5460 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 17:35 ·
05d11a0c· 公告频道 announcements / status(Tom #5450:只管理员发主帖、不叫醒;CLAUDE.md 开工先读) · 依据 #5450 · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 17:14 ·
e2b801ff· 员工状态:「不用回」通知不计待回 @ · 依据 — · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 16:58 ·
8c42bb78· CLAUDE.md 铁律 5:二维尽量不用、先 AI;整帧条优先(Tom #5411/#5423) · 依据 #5411, #5423 · 验:回填 · 文档,无需 - 2026-09-18 16:55 ·
d0ea727b· billy:EP15 ④ END S002/S008/S013(+S009 两轮记录);EP14 S015 2d_v002(根部圆盘 + 木块回填) · 依据 — · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 16:38 ·
aff76baf· gitignore:chat/state_chat*.json 运行时 checkpoint 不再跟踪(#5381) · 依据 #5381 · 验:回填 · 文档,无需 - 2026-09-18 16:34 ·
109fece9· CLAUDE.md 省额度:团队意见落成六条(#5370–5372) · 依据 #5370 · 验:回填 · 文档,无需 - 2026-09-18 16:33 ·
092e1312· chat_watch:事件正文带全 1200 字(claude #5371) · 依据 #5371 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 16:30 ·
20342e04· chat_watch:非 hudson 只被 @我 / 私聊 / @all 叫醒(省额度,Tom #5363) · 依据 #5363 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 16:29 ·
faad4583· CLAUDE.md:省额度规则(Tom #5358) · 依据 #5358 · 验:回填 · 文档,无需 - 2026-09-18 16:25 ·
384b76e0· EP14 cue v002(hudson #5340):duration 改 cut.json 实长,foley gain 按 momentary 差反推(主动作高出床 +7~+9 dB、轻响 +5~+6、心跳 +5、低频 +2);新工具 cue_momentary.py 每条 cue 的 momentary 峰 vs 床表(lestrade) · 依据 #5340 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 16:22 ·
82792e0c· billy:layer2d.py 参数化二维层工具(层 / 关键帧 / 光扫 / 裁切窗 / 缓推 / 证据条)+ EP14 S003 / S015 复现规格;SC09 反向母图 v002R 两态 · 依据 — · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 16:17 ·
97493ec7· billy:EP14 S001 2d C 版 / S013 MID / S014 束带改黑 / S009 头框核;EP06-S004 首尾帧 v004(gpt + Qwen,车区回填);SC09 母图 v002 两态 · 依据 — · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 15:59 ·
2fb9a430· EP15 新出 SFX 2 条(布展 d69fb664;脚步远去 + 门合 v001 静音留档 → v002 798c3df5),DIALOGUE_TRACKS 记 L41 #5291;eleven_credits 计数器读 0 时回落公式(lestrade) · 依据 #5291 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 15:56 ·
5b93fdce· billy:EP14 二维 6 镜工具(S001 key / S003 tilt / S005 drawer / S006 light / S011 cloth / S015 handle)+ S013 MID + S009/S014 END refill + S001 TURNED v003/v004 候选 · 依据 — · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 15:47 ·
b196fd57· l43_evidence 三个自动项(§9.10 hudson #5224):整幅格扫 END 贴回缝、瞬时鬼影候选 + refill 命令、附则 6 剪法建议;读图指南 §10 · 依据 #5224 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 15:44 ·
8c3d5c91· 音效素材库索引 v001(Tom #5206 / hudson #5208):sfx_library_index.py 扫 329 条(sfx 296 / music 31 / 合成床 2)量 LUFS、27 份 cue 表反查用镜、按 11 类分组 + 复用标签,输出 SFX_LIBRARY_INDEX.md/.json(lestrade) · 依据 #5206, #5208 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 15:40 ·
f39cdf66· 不闲着:CLAUDE.md + Board §9.10 常备功课(Tom #5220) · 依据 #5220 · 验:回填 · 文档,无需 - 2026-09-18 15:39 ·
ffd7c3fa· EP14 BGM15_a/b:v001 出成周期鼓包留档,v002 改连续质地提示词重出(a −14.9 / b −12.1 LUFS);credits 真实扣减首批 observed 记录(1155/条,counter 滞后加轮询 ec.after);audio_ledger 扫全部 bgm_eleven_v* 目录(lestrade,hudson #5213) · 依据 #5213 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 15:35 ·
29fb8f9c· ElevenLabs 台账记真实扣减(Tom #5191 / hudson #5195):eleven_credits.py 前后读 /v1/user/subscription,eleven_sfx / eleven_music sidecar 写 credits_before/after(剩余)/used/limit/basis/cost_usd;audio_ledger 带入 record;今日 42 条回填(lestrade 22 条按 ping 差 3200 重建余额到 213 精确吻合,其余 formula);EP01 补 46 条漏记 · 依据 #5191, #5195 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 15:33 ·
59091fbd· 员工状态:待回 @ 排除 hudson 的回执 / 致谢(scribe 误报) · 依据 — · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 15:29 ·
60143d35· 生成台账:ElevenLabs 真实 credits 列 + 本月剩余(Tom #5191;工具端由 lestrade 写 credits_used/after/limit) · 依据 #5191 · 验:回填 · 文档,无需 - 2026-09-18 15:25 ·
0293b019· billy:EP14 首帧 15/15 + END 八张(蒙版/整张工具);EP08-S002 lip3–5(仿射段跟踪 + 段淡入);EP06-S004 2d_v002(车道二维);EP13-S011 2d_v002(静帧缓推) · 依据 — · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 15:00 ·
8c03f01b· EP12 FINAL v001:Tom #5102 pass(v008),S010 t2e2 x2 超分,USE_UPSCALE 粗剪 + v009up 混音 + 字幕 + 无字幕母版 + RECORD;台账 EP12 行 sign tom #5102 · 依据 #5102 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 14:54 ·
98358484· l43_evidence:--seam-region END 贴回缝检测(行/列直线边分,hudson #5086;EP12-S010 t2e2 复现 f55) · 依据 #5086 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 14:39 ·
7fb826ab· EP06 RV187:S004 t9b f34–48 马前左道路鬼影 refill_bg(自身中值底板贴回)→ t9b_rf1 674efe0c;新工具 refill_bg_static.py · 依据 — · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 14:33 ·
1463c6b3· 员工状态:掉线检查只算点名 @,不算 @all(scribe 误报 #5046) · 依据 #5046 · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 14:30 ·
43315620· billy:EP13 首帧/尾帧/二维/配音/音效记录 + EP14 前置(PROP30–32 定妆、S003/S006/S011 图、单出 9 + 母图裁 3 + 四处改)提示词/记录/工具 · 依据 — · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 14:02 ·
d71a2cbc· 员工状态(Tom #4972):/api/agents 加 pending_at / silent_min;/board 顶部在岗条(被 @ 后沉默 ≥30 分钟标红) · 依据 #4972 · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 13:55 ·
680b7021· 通用聊天监听 tools/chat_watch.py + CLAUDE.md 开工硬性第一步:挂后台监听(Tom #4953) · 依据 #4953 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 13:46 ·
dbcaa88a· 出图台账改名「生成台账」(Tom #4943:含出图 / RH 视频 / 音频) · 依据 #4943 · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 13:28 ·
c9bb1abc· rh_comfy_run 支持 LoadVideo(motion_reference 上传);EP06-S001 v041 参考视频实验 manifest(占位 --dry 验图通过) · 依据 — · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 09:54 ·
f21ab694· add_dialogue_table:兼容 dialogue.line 字段(EP13 yaml,gregson #4892) · 依据 #4892 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 08:26 ·
16446edb· CLAUDE.md:中断后恢复流程(补读 → 报到 → 按序处理 → 重装监听 → 以仓库为准),Tom #4786 · 依据 #4786 · 验:回填 · 文档,无需 - 2026-09-18 08:23 ·
9c7f62cd· 返修批注 API:批注按 id 存后返回值 KeyError → 400(批注已存却报失败、重复转发,Tom #4775);去重 RV175 · 依据 #4775 · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 07:05 ·
6400e5be· EP08 v012:恢复 v010 剪法(Tom #4697),S002b 标 UNUSED;rough_cut 跳过 UNUSED 镜 · 依据 #4697 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 06:54 ·
86baa947· 进度表:版本号正则兼容超分版 v010up(Tom #4675 进度表加载失败) · 依据 #4675 · 验:回填 · 文档,无需 - 2026-09-18 06:51 ·
6e64d44c· rh_take / rh_resume:cost_cny 改按 taskCostTime × 机型单价(hudson #4667),余额差保留为参考字段;三条负数记录回填 · 依据 #4667 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 06:49 ·
d2414397· 出图台账:RunningHub 视频成本改按机时 × 机型单价(余额差并发 / 充值时错且为负,Tom #4664) · 依据 #4664 · 验:回填 · 文档,无需 - 2026-09-18 06:46 ·
48e73edb· EP10 FINAL v001:12 镜 RealESRGAN x2 超分(2 镜原生二维),混音 v007up,ZH/EN 归档 + RECORD(hudson #4605);ep_final.py 归档脚本 · 依据 #4605 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 06:16 ·
b7254dad· EP09 v007:S005 底噪切点前 4 帧淡出(Tom #4598 / hudson #4601),sfx_assemble 加 room_tone.cut_fade · 依据 #4598, #4601 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 06:06 ·
b59459b1· CopperChat:频道全量拉取改取最新 300 条顶层(#review >300 条时停在昨天、通知跳不到,Tom #4585);jump 未渲染时强制刷新 · 依据 #4585 · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 05:58 ·
fc5d87b4· RH 发片 wrapper rh_one.sh / eval_gen.py / ep_upscale_batch.sh 入库(交接 gregson) · 依据 — · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 05:55 ·
6b812100· 预登记新人身份 lestrade / gregson / watson / toby(Tom #4576),CLAUDE.md 角色表同步 · 依据 #4576 · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 05:52 ·
48c307d4· 新人接入:chat/tools/new_agent.py 一键建 token/成员/角色行 + CLAUDE.md 新人段(Tom #4570) · 依据 #4570 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 05:51 ·
739f9e66· CLAUDE.md:会话启动说明(角色表、CopperChat 用法、铁律、入口),Tom #4567 · 依据 #4567 · 验:回填 · 文档,无需 - 2026-09-18 05:46 ·
b3ede5a4· EP11 v004 字幕合一行(hudson #4550);burn_subs 支持 subtitle_merge_into · 依据 #4550 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 05:27 ·
70fc87f3· EP10 v006:S004 笑声音效 b(billy cue v004);修 sfx_assemble 空 cues 崩溃 + mix_episode 装配失败中止(v005 用了旧音效轨,已如实报) · 依据 — · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 05:22 ·
57217062· 出图台账 Qwen 记录:文生图无 image 字段时不报错 · 依据 — · 验:回填 · 文档,无需 - 2026-09-18 05:22 ·
275831ff· 出图台账支持 RunningHub Qwen-Image-Edit 记录(provider/model/输入输出/机时折算 ¥),扫 00_project/tests(Tom #4505) · 依据 #4505 · 验:回填 · 文档,无需 - 2026-09-18 04:42 ·
9773ec57· EP10 v005:S012 t4b 锁、粗剪 + 混音 + 字幕 + 换卡(hudson #4431);mix_episode 子进程 utf-8;EP11-S007 t2b 768 发 · 依据 #4431 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 04:33 ·
f876a567· 返修编号固定:code 写回 REWORK_LOG(不再随分类/删行漂移),批注改按行 id 存并迁移 9 条(Tom #4406/#4408) · 依据 #4406, #4408 · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 04:23 ·
f0b7d4bd· CopperChat:成员表加 billy(AUTHORS / @ 补全 / 颜色 / 角色说明),Tom #4393 · 依据 #4393 · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 03:47 ·
fc361744· EP09-S014 2d_v006b:SAM2 逐帧(8× 裁片+固定正负点 seg_video_crop.py)+ t2p 自身背景 diff 去残块,2 px 羽化(hudson #4316);台账 r4 fail / r5 doing · 依据 #4316 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 03:39 ·
880b0589· play.html:连播改为同一 video 换 src 播放(iOS 不跳页),保留 embed 参数;手机 .list 抬到底栏上方(Tom #4317) · 依据 #4317 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 03:34 ·
072ddf29· EP09-S014 2d_v006 混合:t2p 逐帧 SAM(seg_video_box.py 定框逐帧)∩ diff 抠像步态 + 沿路平移、透视缩放、柱旁 hold · 依据 — · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 02:57 ·
4c911dd3· EP06-S004 FRAME_LOCK v002_01 + END v002_01(hudson #4259)→ t9 双锚 manifest v038,512 发;EP07 S005 笑声音效 3 候选;audio_ledger 扫 sfx_eleven_v* · 依据 #4259 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 02:41 ·
fc58e24a· 表单:返修中的卡片整体置灰(去色 + 灰底 + 橙色「返修中」条)(Tom #4237) · 依据 #4237 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 02:38 ·
3dcd7eac· rough_cut:加 cut_in_frame 掐头(hudson #4229),台词起点按掐头平移 · 依据 #4229 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 02:29 ·
a7b25c41· EP08 返修 4 v008:L01 拆两句按句对嘴(−3 / −12 帧),字幕分行;burn_subs 中文优先取每句 source_text_zh · 依据 — · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 02:08 ·
3e348f34· 表单页:内嵌时提交条贴内嵌区底部(不再重复让出标签栏高度)(Tom #4196) · 依据 #4196 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 02:07 ·
90e09a14· 表单页手机版:标题缩短与返回/通知箱同排,提交条贴在底部标签栏上方(Tom #4194) · 依据 #4194 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 01:54 ·
837921e2· 进度表手机版:更新时间从顶栏右上挪到图例行右侧(Tom #4187) · 依据 #4187 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 01:53 ·
4964a379· 通知箱:点通知跳转后自动关闭抽屉(Tom #4185) · 依据 #4185 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 01:52 ·
20941b08· 手机:线程顶栏与频道顶栏同高、同字号、同图标尺寸(Tom #4183) · 依据 #4183 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 01:51 ·
5abbdcd3· 手机线程顶栏:去掉右上 ×,返回改为与频道页一致的 ‹,通知箱靠右(Tom #4181) · 依据 #4181 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 01:46 ·
e3f94073· 手机:线程回复框贴底、与主输入框同高(去掉重复的安全区留白)(Tom #4176) · 依据 #4176 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 01:42 ·
313ab391· 手机:输入框与底部标签栏间距收紧(Tom #4174) · 依据 #4174 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 01:41 ·
839d5f55· Reapply "手机:线程面板与内嵌页底部让出标签栏高度(修复输入框被挡)(Tom #4168)" · 依据 #4168 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 01:40 ·
bd66a83c· Revert "手机:线程面板与内嵌页底部让出标签栏高度(修复输入框被挡)(Tom #4168)" · 依据 #4168 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 01:39 ·
8a4e766c· 手机:线程面板与内嵌页底部让出标签栏高度(修复输入框被挡)(Tom #4168) · 依据 #4168 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 01:35 ·
5f7f1322· 手机:底栏「聊天」回到当前频道对话而不是频道列表;修复「锁屏推送」标签重复(Tom #4165) · 依据 #4165 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 01:33 ·
a2202c35· 手机:通知箱移到顶栏右侧(带未读角标),底栏为 聊天 / 进度 / 任务 / 返修 / 表单(Tom #4163) · 依据 #4163 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 01:29 ·
bb530947· 手机端导航改为底部标签栏(图标 + 文字:通知箱 / 聊天 / 进度 / 任务 / 返修 / 表单,当前页高亮),参考 OKX(Tom #4161) · 依据 #4161 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 01:23 ·
a42216b0· 手机顶部工具栏改为独立一排大按钮(图标 40 px、触区 56×52,五钮均分),聊天正文链接铜色(Tom #4158) · 依据 #4158 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 01:19 ·
ccf69969· 手机顶栏按钮再放大:图标 34 px、触区 42×48,压缩标题栏留白(Tom #4156) · 依据 #4156 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 01:12 ·
8fc222cb· 手机顶栏:标题单行省略、工具栏同排;表单说明去掉「四集」旧字;任务表清掉 11 条过期任务、补 4 条当前任务(Tom #4154) · 依据 #4154 · 验:回填 · 文档,无需 - 2026-09-18 01:08 ·
01c2e9c6· 手机顶栏:工具栏与标题同一行靠右(44 px),内嵌时不重复聊天钮;台账链接改铜色(Tom #4152) · 依据 #4152 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 01:04 ·
75f75c7f· 内页手机版:顶栏隐藏长统计行、标题带图标(台账 / 表单) · 依据 — · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 01:04 ·
d795adfa· 进度表手机版:说明折叠、更新时间只显时分、播放/展开图标换线性图标;手机上顶部工具栏按钮放大到 48 px 独占一行(Tom #4149/#4150) · 依据 #4149, #4150 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 01:00 ·
8d44eae3· 返修台账手机版:筛选改三个下拉(集/结果/类型),隐藏长统计行,缩略图缩小(Tom #4146) · 依据 #4146 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 00:59 ·
df61655b· 返修台账性能:结果视频改为 ffmpeg 封面图(不再逐条预加载 <video>),首屏 30 条(Tom #4143/#4144) · 依据 #4143, #4144 · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 00:53 ·
65e2330d· 返修台账:问题类型标签(口型 / 残影·接缝 / 变形 / 多手 / 机位 / 方向 / 回退 / 连戏 / 表情 / 声线 / 音效 / 定妆 / 流程)+ 按类型筛选(Tom #4136) · 依据 #4136 · 验:回填 · 文档,无需 - 2026-09-18 00:47 ·
1ed2910d· 服务端重算返修台账时同时重载 rework_assets(否则剧本/台词补全不生效) · 依据 — · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 00:44 ·
80880595· 返修台账:定稿表只给本镜那一段(折叠显示),不再链接整集文件(Tom #4122) · 依据 #4122 · 验:回填 · 文档,无需 - 2026-09-18 00:43 ·
dc099ba9· 返修台账:本镜剧本+台词摘录工具 shot_excerpt.py(Tom #4122 只要对应镜头),EP12-S015 资产改为摘录 · 依据 #4122 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 00:40 ·
bcb256e1· 返修台账:每张卡片显示该镜剧本要点(起/动作/终)与台词行,附动作定稿表链接(Tom #4119) · 依据 #4119 · 验:回填 · 文档,无需 - 2026-09-18 00:36 ·
d6bcbd80· 内嵌页右上角保留工具栏(通知箱由外层聊天页打开,其余在内嵌区切换)(Tom #4117) · 依据 #4117 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 00:34 ·
31d62dff· 内嵌页去掉多余的外层标题栏,改在页面自己的顶栏左侧放返回键(Tom #4115) · 依据 #4115 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 00:32 ·
735bd0a7· 聊天:内嵌页打开时点频道/私聊/返回自动关闭内嵌页(Tom #4113) · 依据 #4113 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 00:27 ·
e6084694· 主题统一:进度表/任务表/返修台账/台账/控制台/表单跟随聊天页的深浅色设置(含嵌入态);侧栏开关标签写全(Tom #4110) · 依据 #4110 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 00:23 ·
117be168· 聊天:进度表 / 任务表 / 返修台账 / 出图台账 / 控制台 / 表单在聊天主区内嵌打开(侧栏不动,顶部返回 / 新标签打开),嵌入态隐藏页内顶栏链接和工具栏(Tom #4107) · 依据 #4107 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 00:21 ·
10fd33fa· rh_upscale:超分任务改挂独立容器 2099624022739869697(Tom #4105),--workflow-id 可改 · 依据 #4105 · 验:回填 · 脚本自测(--dry-run / 实跑一次) - 2026-09-18 00:11 ·
788e1766· 聊天页(桌面):顶栏提示文字截断省略,工具栏固定在右侧、铜色同色调(Tom #4101) · 依据 #4101 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 00:09 ·
ac30f685· 各页顶栏链接统一带线性图标(进度表/任务表/台账/控制台/聊天)(Tom #4099) · 依据 #4099 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 00:08 ·
4982ec24· 返修台账页面风格统一:顶栏链接带图标、搜索框/排序/页签/批注钮同色系,去掉空集筛选(Tom #4099) · 依据 #4099 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 00:06 ·
bca5978d· 聊天:/rework?c=… /ledger?id=… /play 这类带参数的站内链接可点(Tom #4097) · 依据 #4097 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 00:03 ·
25c61c18· 返修批注按类型转发:RV→#tech-video、RI/RG→#tech-image、RA/RS→#tech-audio(Tom #4090) · 依据 #4090 · 验:回填 · restart_server.py 无缝重启 + smoke 6/6 - 2026-09-18 00:01 ·
e04664ec· 图标:进度表改为带轴柱状图、控制台滑块改纯线条、台账加一行,统一线性风格(Tom #4083) · 依据 #4083 · 验:回填 · smoke 6/6 + ui_shot 截图 - 2026-09-18 00:01 ·
f6f1117a· 返修台账:记录批注(卡片内输入,存 REWORK_NOTES.json,自动转发 #tech-video 带链接)(Tom #4082) · 依据 #4082 · 验:回填 · restart_server.py 无缝重启 + smoke 6/6