| —(基线) | — | PRD §4 M1~M13 | 移植期已登记差异全集(wire 形态/时间双轨/Mock 台账 desc 参数化/估算法等) | 见 PRD §4 对应模块节 | 登记(引用不重复) |
| DIF-28-1 | 2026-10-20 | F1.01 §7(auth/service.go:121) | 注册台账行描述硬编码「注册赠送 200 积分(初始)」,而实发积分与欢迎通知文案均跟随 trial_credits settings 实际值——配置改非 200 时台账文案与实发不符 | 仅台账展示文案失真,余额正确;冻结 index.js:92 同 quirk(文案字面 200) | 登记(冻结 quirk 保真,勿修——改文案即偏离冻结对拍基准) |
| DIF-29-1 | 2026-10-20 | F2.01 §5 等(task/repo.go 多处) | 读面空列表 wire null vs 冻结恒 []——GET /tasks data、/tasks/:id assets、scenes2、shots/:id/histories、asset-library、ShotView.slots 六处(gorp nil slice) | 前端 ` | |
| DIF-29-2 | 2026-10-20 | F2.06 §7(service_gen.go:62) | extract v1 单张失败 502 文案「(<总额> 积分已退回)」用总额;冻结 v1 传单价「(10 积分已退回)」 | 仅文案金额失真,退款金额正确(单价) | 登记 |
| DIF-29-3 | 2026-10-20 | F2.06 §5(service_gen.go:128) | extract2 响应 item 与 full2 variants 合并缺 variants 键(omitempty);冻结每项显式 variants: [] | 前端消费面未读该键,零功能影响 | 登记 |
| DIF-29-4 | 2026-10-20 | F2.11 §8(task/service.go:642、service_gen.go:529) | image_histories 行 id 前缀 si_(ids.PrefixShotImage);冻结恒 uid('ih_')——ids.PrefixImageHistory="ih_" 仅 director 域消费(repo.go:319 InsertImageHistory),task 域历史行走 si_:前缀双轨并存(三十期勘正,原「已定义未用」表述不实) | GET /shots/:id/histories 行 id 形态分叉;前端零消费 | 登记(改前缀即偏离现行测试锚;前缀双轨事实随 m10 F10.06 展开) |
| DIF-29-5 | 2026-10-20 | F2.02 §4(repo.go:136-143) | legacy/duplicate INSERT 显式写 18 列零值(script_type=’’/min_duration=0/split_status=’’ 等覆盖 DDL 默认);冻结仅 5 列走 SQLite DEFAULT | wire 上 legacy/副本任务 script_type:""、min_duration:0 与冻结键值不同 | 登记 |
| DIF-29-6 | 2026-10-20 | F2.03 §7(task/service.go:263-266) | CreateV2 token 计费 ceil 向上取整;冻结 Math.round——credits.TextCost 已实现正确 round(billing.go:118-131)却未被调用(死代码并存) | 计费边界差 1 积分(est 非 tokens 整倍数时);对拍基准偏离 | 登记(修则同步回归测试期望;二十九期未动) |
| DIF-29-7 | 2026-10-20 | F2.03 §7(task_assembly.go:122-137) | V2 台账 desc 模型名可空串(textModelName() 无缺省兜底);冻结 getSetting('text_model') 缺行回「星芒文本引擎」 | 台账 desc 出现「…tokens / ,-N)」空串形态 | 登记 |
| DIF-29-8 | 2026-10-20 | F2.07 §5(task_handlers.go:524-532) | resplit 响应回显原始 instruction(trim 只在 service 内部);冻结回显 trim 后值;库存 trim 值 | 带首尾空格请求时响应与冻结 wire 不同 | 登记 |
| DIF-29-9 | 2026-10-20 | F2.09 §4(service_gen.go:596-603) | preview 台账 desc「2K预览(-15)」缺「生成」二字(冻结「2K预览生成(-15)」);Mock label 随 desc 全串(冻结 label「分镜图」/「2K预览」——影响 Mock SVG 文件名) | 台账文案+Mock 落盘文件名形态 | 登记 |
| DIF-29-10 | 2026-10-20 | F2.05 §4(service.go:183/200-204) | duplicate title 截 60(冻结不截);仅复制源镜存在 slot_no=1 的槽位(冻结每镜无条件插) | 长 title 副本与槽位缺失分叉 | 登记 |
| DIF-29-11 | 2026-10-20 | F2.10 §3(task_handlers.go:494/505) | 场景重命名/删除 groupNo 非数字→归 0 匹配零行 200;冻结 NaN 绑定 TypeError→500 | 异常路径语义分叉(Go 更宽容) | 登记 |
| DIF-29-12 | 2026-10-20 | F2 通用(各 handler) | JSON bind 失败统一 400「请求体格式错误」;冻结 express.json 语法错误走中央中间件透出 SyntaxError message 截 300 | 错误文案形态不同(中文统一 vs 异常文本透传) | 登记 |
| DIF-29-13 | 2026-10-20 | F2.02 §3(service.go:155/160) | legacy 缺省标题「未命名」;冻结 INSERT title 用「未命名剧本」而台账 desc 用「未命名」——Go 把 desc 缺省同化进 title | 缺省标题 wire 值不同 | 登记 |
| DIF-29-14 | 2026-10-20 | F2.03 §3(service.go:278-279) | V2 script_type/face_style 仅 orDefault 补空串、任意值透传;冻结二值化归一(‘overseas’?‘overseas’:‘domestic’ 等) | 非法枚举值入库透传 | 登记 |
| DIF-29-15 | 2026-10-20 | F2.03 §7(service.go:262) | token 估算用 rune 数×1.6;冻结 UTF-16 .length——BMP 外字符(emoji 等)计数不同 | 计费估算边界差(astral 字符面) | 登记 |
| DIF-29-16 | 2026-10-20 | F2.04 §4(service_gen.go:332-341) | full/full2 的 assets_data fallback 拼装收窄 5 键 item;冻结直接塞 assets 原始全列行 | 缓存缺失时降级形态不同;前端消费 5 键内无感 | 登记 |
| DIF-29-17 | 2026-10-20 | F3.02 §7(generation/model.go:19/:27) | videos standalone/refunded wire 出 bool true/false;冻结 SQLite SELECT * 透传 1/0 数字 | 前端类型未声明零消费,低危 | 登记 |
| DIF-29-18 | 2026-10-20 | F3.09 §8(generation/service.go:122-141) | contentTypeOf 缺 .mp3/.m4a/.aac/.ogg/.flac/.mp4 分支——音频上传/真实成片 Content-Type 落 default image/svg+xml | URL 直读功能面不受影响,响应头 wire 形不同 | 登记(补扩展映射为低成本改进候选) |
| DIF-29-19 | 2026-10-20 | F3.08 §4(generation/service.go:114-119) | Mock 图片落盘文件名=label+ObjectKey 随机名;冻结 img_<uid>.svg 且 uid 即行 id(文件名与 id 解耦 vs 绑定) | 文件名形态差异;url 键形不变 | 登记 |
| DIF-29-20 | 2026-10-20 | F3.06 §7(generation_handlers.go:193-196) | style-presets 有 requireDB——降级模式 503;冻结零 DB 依赖恒 200(纯目录+文件系统) | 降级面可用性收窄(faq 无 requireDB 与冻结一致) | 登记 |
| DIF-29-21 | 2026-10-20 | F3.08 §7(service_media.go:84-86) | ref_image_ids 追加错误 _ = 吞掉;冻结同语句抛错进中央 500 | 触发面仅 DB 故障 | 登记 |
| DIF-29-22 | 2026-10-20 | F3.01 §7(service_video.go:316-318) | 真实通道 LinkShotVideoKeep 失败→videoFailFast 退款+500「视频生成失败」;冻结 providers.js:103-105 shots UPDATE 在 try 外不退款走中央 500 | Go 更保守(多退一次款语义)——integration_test.go:320-323 裁决范围收窄注记引用 | 登记(裁决保真) |
| DIF-29-23 | 2026-10-20 | F4.01 §3(export_handlers.go:24/:113) | export 创建/单镜参数 _ = c.Bind 静默忽略解析错误,malformed JSON 零值续走业务(② → 404 task not found);冻结 express.json 400 SyntaxError | 错误路径语义分叉(Go 更宽容) | 登记 |
| DIF-29-24 | 2026-10-20 | F4.05 §7(export/service.go:259-260) | deliver 空 file_path 视频行跳过 200;冻结 path.basename('') → readFileSync(目录) 崩溃 500 | Go 不复刻冻结崩溃(代码注释已登记、PRD §4 M4 正文未含) | 登记(修后语义保真) |
| DIF-30-1 | 2026-10-20 | F9.04 §7(scriptlib/repo.go:713) | GetWriterJoinedAt 原生 QueryRow 对 users 行查无透传错误→500;冻结 studio.js null 兜底 | FK 语义死路径(writer_profiles.user_id 外键恒存在)——十四续 B8 注释改实在先 | 登记(不可达面) |
| DIF-30-2 | 2026-10-20 | F9.05 §8 等(scriptlib_handlers.go:119/:189/:261/:290/:309/:351/:408/:426 八处) | 域内 _ = c.Bind 静默按空载荷续走(admin create/put/cover rating/submissions/profile/review/narrations);冻结 express.json malformed→400 SyntaxError | 错误路径语义分叉(DIF-29-23 同族扩域:export→scriptlib 八端点);notify handlers :45 同形 | 登记 |
| DIF-31-1 | 2026-10-20 | F6.01/F6.04/F6.08(org/model.go:72-84/:110-125/:153-166) | members/ShareRow/assets 行 created_at 键序位次三处同族——冻结 ALTER 尾插序 vs Go struct 列序,键集相等序不同,前端按键取值无感 | wire 键序方言(M4 ① 同族先例整批登记) | 登记 |
| DIF-31-2 | 2026-10-20 | F6.11/F6.13(org/service.go:747-753/:686-696) | perm-groups/material-perms 响应 map 字母序输出(冻结展开序);且 PUT perms 传非数组时冻结 Array.isArray 判否 200 沿用旧值 vs Go echo bind []string 直接 400 | 键序方言+类型宽容差两点合一 | 登记 |
| DIF-31-3 | 2026-10-20 | F12.01/06/08/11/12/13(admin/model.go:122/:172/:205/:256 等) | 布尔 wire 型 enabled/active/is_active/refunded Go true/false vs 冻结 SQLite 0/1 | 方言级 wire 分叉(六节波及;JS truthy 消费面无感) | 登记 |
| DIF-31-4 | 2026-10-20 | F12.02/F12.04 §3(admin_handlers.go:40-44/:89-93)+F8.01 §7 扩域 | bind 严格性:冻结 +credits/+amount/+amount_cny 一元加强转宽收 JSON 数值字符串;Go int64/float64 bind 失败→400「请求体格式错误」/echo 400 裸信封 | 请求侧类型宽容差(M7 ⑥ credits 面同族扩域:m12 用户/发放面+m08 下单面) | 登记 |
| DIF-31-5 | 2026-10-20 | F12.10 §7(service_billing.go:92-109) | PUT settings 非标量值字符串化:Go jsString default fmt.Sprint 对 map→map[a:1] vs 冻结 String(v)→[object Object] | 仅 body 值为对象/数组时;存储面方言 | 登记 |
| DIF-31-6 | 2026-10-20 | F12.12 §8(service_prompts.go:244-250) | upload 点文件名:Go regexpStripExt idx<=0 保留 .md 作版本名 vs 冻结 /.[^.]+$/ 匹配整段清空→缺省名兜底 | 仅 .xxx 形态文件名边缘 | 登记 |
| DIF-32-1 | 2026-10-20 | F11.08 §5(evaluation/model.go:210-211+service_viral 列表展开) | viral list wire:冻结带 status 键且 result 为 JSON 原串直出;Go Result/Status 均 json:"-"、result 经 service 展开为对象、status 整键不出 | 三十二期双跑对账新发现(scripts/dev/parity 首扫抓获;F11.08 §5 只记了 Go 侧 json:"-" 面,未立冻结差);前端 ViralAnalysisView 自行 JSON.parse 冻结串,Go 对象形态恰兼容 | 登记 |
| DIF-32-2 | 2026-10-20 | F9.02 §5(service_studio.go:31-46 market list) | market list 行宽:冻结 15 列窄投影(id/title/genre/market/audience/form/tags/highlights/description/rating/cover_path/char_count/uses_total/uses_7d/enabled)vs Go 宽行(另含 content/created_at/episodes/planned_chars/writer_name/synopsis/setting/preview_text/characters/worldview 等裸行键) | 三十二期双跑对账新发现(同上);多余键前端零消费无感 | 登记 |