审计日期:2026-09-17。先完成以下基线审计,再实施展示优化。
- 静态检查全部 210 条 PN 规则,覆盖 normalization、match、token steps、草稿身份与投影。53 条规则移除分隔符;91 条包含显式分隔符消费步骤。
- 动态枚举 managed-nand-pn、dram-pn、有效 Micron / SpecTek MDB 和 FDB 厂商 PN,按厂商与原 PN 去重:32 个资源厂商、25,659 个组合,其中 19,022 个含
-或:。资源厂商数包含只有 FDB 记录而没有专用解码规则的厂商。 - 每个组合比较原输入和省略分隔符输入的直接规则、字段、默认引擎结果与精确搜索结果;MDB 排除 DO NOT USE 并拆分多值。
- 发现 573 个资源 PN 在规则解码后丢失已有分隔符,且解码身份与搜索展示不一致。没有将无资源命中或零样本规则记为已通过动态验证。
| 厂商 | 去重 PN | 含分隔符 | 解码丢失分隔符 |
|---|---|---|---|
| biwin | 90 | 46 | 46 |
| issi | 434 | 326 | 0 |
| kingston | 35 | 34 | 34 |
| kioxia | 676 | 9 | 0 |
| longsys | 66 | 66 | 60 |
| micron | 16047 | 15465 | 0 |
| samsung | 872 | 483 | 112 |
| skhynix | 741 | 164 | 19 |
| sndk | 807 | 772 | 0 |
| spectek | 2956 | 21 | 0 |
| siliconmotion | 64 | 64 | 64 |
| ymtc | 88 | 0 | 0 |
| esmt | 271 | 242 | 238 |
| nanya | 492 | 492 | 0 |
| elpida | 7 | 7 | 0 |
| cxmt | 62 | 62 | 0 |
| winbond | 801 | 483 | 0 |
| etron | 314 | 225 | 0 |
| gigadevice | 54 | 54 | 0 |
| ato | 5 | 0 | 0 |
| fidelix | 10 | 0 | 0 |
| infineon | 4 | 0 | 0 |
| intel | 228 | 0 | 0 |
| memoright | 2 | 0 | 0 |
| mxic | 15 | 2 | 0 |
| pfc | 5 | 3 | 0 |
| phison | 381 | 0 | 0 |
| powerchip | 15 | 2 | 0 |
| renesas | 3 | 0 | 0 |
| smic | 2 | 0 | 0 |
| spansion | 15 | 0 | 0 |
| st | 97 | 0 | 0 |
- 全局 normalizePartNumber 保留常规连字符;部分规则为容错删除连字符,并把解析串直接赋给 device.partNumber,造成已有连字符丢失。匹配串和展示串必须独立。
- Samsung KLU / MCP、SK hynix MCP,以及 ESMT、BIWIN、Kingston、Longsys、Silicon Motion 的受影响规则已有主体/后缀编码段,可在现有解析位置声明展示分隔符。不得用完整 PN 白名单或全厂商统一位数恢复。
- Samsung KLM / K9、SK hynix H27 等规则已消费可选连字符,字段解析成功后仍直接输出输入;补充相同的展示边界能力。
- Micron、Samsung DRAM、Nanya、CXMT 等部分省略分隔符输入依靠精确目录别名恢复。保留已有目录能力,不把格式优化扩展为所有产品线的新语法。标记边界前必须确认主体解析成功;未知尾部保留全部字符。
- 解码、投影、explain、搜索项、候选身份和后续操作应共用规则生成的展示 PN;匹配键继续保留原有 token 等价关系和部分搜索分隔符语义。
- H25 -X 形式已有显式全局别名政策:规范 PN 为无分隔 X 封装形式。Micron Japan 规则已有订购 PN 重构并移除分销商 TR 包装别名;不得被通用保留机制覆盖。
- 没有已确认分隔边界的规则只保留用户给出的分隔符,不从字符串长度猜测,也不改变原本连续书写的 HN8 / H26 / YMTC 标签等型号。
默认引擎带分隔符与省略分隔符的字段差异共 6 个,全部为 Micron MTFC:MTFC32GHKSDN-WT、MTFC1GBB1DG-WT ES、MTFC32GBALAEAM-WT、MTFC256GBAOANAM-WT、MTFC256GBAOANAM-WT ES、MTFC128GAOANAMF1-WT。原始写法仅命中厂商前缀,紧凑写法却可能被另一结构规则接受。这是既有规则识别/候选排序差异,不能靠插入横线宣称修复;本轮不扩展这些结构的规格映射。
“移除”表示规则 normalization 删除 - / :;“消费”表示已有 stripIfPrefix 步骤;“保留”表示不删除这两种分隔符。样本数是所有资源中实际优先命中该规则的数目,不代表规则只支持这些 PN。
| 规则 ID | 解析处理 | 命中资源 | 含分隔符 | 丢失 |
|---|---|---|---|---|
vendor.micron.xpoint.mtx.v1 |
消费 | 30 | 30 | 0 |
vendor.micron.managed.mtfc.extended-package.v1 |
消费 | 9 | 9 | 0 |
vendor.micron.managed.mtfc.nextgen.v1 |
消费 | 525 | 525 | 0 |
vendor.micron.ssd.modern.v1 |
消费 | 26 | 26 | 0 |
vendor.micron.ssd.p420m.v1 |
消费 | 0 | 0 | 0 |
vendor.micron.ssd.420-5xx.v1 |
消费 | 0 | 0 | 0 |
vendor.micron.ssd.3xx-4xx.v1 |
消费 | 0 | 0 | 0 |
vendor.micron.ssd.ek470.v1 |
消费 | 0 | 0 | 0 |
vendor.micron.ssd.5400.v1 |
消费 | 0 | 0 | 0 |
vendor.micron.ssd.6500-ion.v1 |
消费 | 0 | 0 | 0 |
vendor.micron.ssd.datacenter-gen4-gen5.v1 |
消费 | 0 | 0 | 0 |
vendor.micron.ssd.4100at.v1 |
消费 | 10 | 10 | 0 |
vendor.micron.ssd.4150at.v1 |
消费 | 18 | 18 | 0 |
vendor.micron.ssd.client-gen4.v1 |
消费 | 0 | 0 | 0 |
vendor.micron.ssd.4600.v1 |
消费 | 0 | 0 | 0 |
vendor.micron.ssd.9400.v1 |
消费 | 0 | 0 | 0 |
vendor.micron.ssd.generic.v1 |
保留 | 3 | 3 | 0 |
vendor.micron.emmc.mtfc.legacy.v1 |
消费 | 411 | 411 | 0 |
vendor.micron.emmc.n2m400.v1 |
保留 | 8 | 0 | 0 |
vendor.micron.umcp.mt29v_mt30a.v1 |
消费 | 314 | 314 | 0 |
vendor.micron.emcp.nand_mcp.v1 |
消费 | 46 | 46 | 0 |
vendor.micron.emcp.aio.v1 |
消费 | 267 | 267 | 0 |
vendor.micron.emcp.mt29d.v1 |
消费 | 39 | 39 | 0 |
vendor.micron.emcp.mt29c.v1 |
消费 | 708 | 708 | 0 |
vendor.micron.emcp.mt29rz.v1 |
消费 | 0 | 0 | 0 |
vendor.micron.dram.amd-alias.v1 |
消费 | 9 | 9 | 0 |
vendor.micron.dram.component.v1 |
消费 | 9806 | 9772 | 0 |
vendor.micron.dram.crucial_component.v1 |
保留 | 4 | 4 | 0 |
vendor.micron.dram.japan.component.v1 |
消费 | 6 | 6 | 0 |
vendor.micron.hbm2e.mt54.v1 |
保留 | 17 | 17 | 0 |
vendor.micron.hbm3e.mt65.v1 |
保留 | 3 | 3 | 0 |
vendor.micron.hmc.mt43a.v1 |
消费 | 38 | 38 | 0 |
vendor.micron.raw.current.v1 |
消费 | 2985 | 2560 | 0 |
vendor.micron.raw.legacy.v1 |
消费 | 143 | 131 | 0 |
vendor.micron.clearnand.v1 |
消费 | 21 | 16 | 0 |
vendor.micron.hsc.mt29fb.v1 |
消费 | 38 | 38 | 0 |
vendor.intel.token.v1 |
保留 | 223 | 0 | 0 |
vendor.intel.i29.prefix.v1 |
保留 | 1 | 0 | 0 |
vendor.samsung.ufs.token.v1 |
移除 | 41 | 40 | 40 |
vendor.samsung.emmc.token.v1 |
消费 | 21 | 21 | 0 |
vendor.samsung.emcp.legacy-class100.v1 |
移除 | 6 | 6 | 6 |
vendor.samsung.mcp.token.v1 |
移除 | 66 | 66 | 66 |
vendor.samsung.hbm2.kha.v1 |
保留 | 16 | 16 | 0 |
vendor.samsung.hbm2e.khaa.v1 |
保留 | 0 | 0 | 0 |
vendor.samsung.hbm3.khba.v1 |
保留 | 4 | 4 | 0 |
vendor.samsung.hbm3e.khbb.v1 |
保留 | 2 | 2 | 0 |
vendor.samsung.dram.ddr3.component.v1 |
消费 | 70 | 70 | 0 |
vendor.samsung.dram.legacy_standard.component.v1 |
消费 | 3 | 3 | 0 |
vendor.samsung.dram.standard.component.v1 |
消费 | 80 | 80 | 0 |
vendor.samsung.dram.ddr5.component.v1 |
消费 | 4 | 4 | 0 |
vendor.samsung.dram.lpddr1.component.v1 |
消费 | 2 | 1 | 0 |
vendor.samsung.dram.lpddr4_ordering.component.v1 |
消费 | 55 | 55 | 0 |
vendor.samsung.dram.lpddr.component.v1 |
消费 | 70 | 70 | 0 |
vendor.samsung.dram.legacy_gddr.component.v1 |
消费 | 27 | 19 | 0 |
vendor.samsung.dram.gddr.component.v1 |
消费 | 10 | 10 | 0 |
vendor.samsung.token.v1 |
消费 | 391 | 16 | 0 |
vendor.nanya.dram.standard.component.v1 |
消费 | 298 | 298 | 0 |
vendor.nanya.dram.low_power.component.v1 |
消费 | 194 | 194 | 0 |
vendor.elpida.dram.sdr_ddr.component.v1 |
消费 | 2 | 2 | 0 |
vendor.elpida.dram.ddr2_ddr3.component.v1 |
消费 | 2 | 2 | 0 |
vendor.elpida.dram.lpddr2_lpddr3.component.v1 |
消费 | 61 | 61 | 0 |
vendor.elpida.dram.gddr5.component.v1 |
消费 | 1 | 1 | 0 |
vendor.elpida.dram.daisy_chain_mobile.v1 |
消费 | 2 | 2 | 0 |
vendor.cxmt.dram.ddr4.component.v1 |
消费 | 15 | 15 | 0 |
vendor.cxmt.dram.ddr5.component.v1 |
消费 | 6 | 6 | 0 |
vendor.cxmt.dram.lpddr4x.component.v1 |
消费 | 38 | 38 | 0 |
vendor.cxmt.dram.lpddr5.component.v1 |
保留 | 3 | 3 | 0 |
vendor.cxmt.dram.lpddr5.cdtq-process-alias.v1 |
保留 | 0 | 0 | 0 |
vendor.gigadevice.dram.ddr3l.component.v1 |
消费 | 14 | 14 | 0 |
vendor.gigadevice.dram.ddr4.component.v1 |
消费 | 25 | 25 | 0 |
vendor.gigadevice.dram.lpddr4x.component.v1 |
消费 | 15 | 15 | 0 |
vendor.issi.dram.standard.component.v1 |
消费 | 256 | 200 | 0 |
vendor.issi.dram.lpddr4.component.v1 |
消费 | 100 | 48 | 0 |
vendor.issi.dram.decoder.component.v1 |
消费 | 53 | 53 | 0 |
vendor.issi.emmc.token.v1 |
消费 | 7 | 7 | 0 |
vendor.issi.ufs.token.v1 |
消费 | 18 | 18 | 0 |
vendor.issi.raw.parallel-slc.v1 |
消费 | 0 | 0 | 0 |
vendor.winbond.dram.sdr.component.v1 |
保留 | 49 | 45 | 0 |
vendor.winbond.dram.ddr.component.v1 |
保留 | 11 | 9 | 0 |
vendor.winbond.dram.lpddr.component.v1 |
保留 | 28 | 0 | 0 |
vendor.winbond.dram.ddr2.component.v1 |
保留 | 46 | 39 | 0 |
vendor.winbond.dram.lpddr2.component.v1 |
保留 | 33 | 0 | 0 |
vendor.winbond.dram.ddr3.component.v1 |
保留 | 366 | 364 | 0 |
vendor.winbond.dram.lpddr3.component.v1 |
保留 | 18 | 0 | 0 |
vendor.winbond.dram.ddr4.component.v1 |
保留 | 28 | 26 | 0 |
vendor.winbond.dram.lpddr4.component.v1 |
保留 | 220 | 0 | 0 |
vendor.winbond.raw.w29n.v1 |
移除 | 2 | 0 | 0 |
vendor.winbond.raw.w25n.v1 |
移除 | 0 | 0 | 0 |
vendor.winbond.raw.w35n.v1 |
保留 | 0 | 0 | 0 |
vendor.macronix.raw.mx30_mx60.v1 |
保留 | 14 | 2 | 0 |
vendor.esmt.dram.component.v1 |
移除 | 267 | 238 | 238 |
vendor.esmt.emmc.fc51.v1 |
保留 | 4 | 4 | 0 |
vendor.esmt.raw.f59.v1 |
保留 | 0 | 0 | 0 |
vendor.etron.dram.sdr.component.v1 |
保留 | 11 | 0 | 0 |
vendor.etron.dram.ddr.component.v1 |
保留 | 49 | 32 | 0 |
vendor.etron.dram.ddr2.component.v1 |
保留 | 31 | 21 | 0 |
vendor.etron.dram.ddr3.component.v1 |
保留 | 152 | 116 | 0 |
vendor.etron.dram.ddr4.component.v1 |
保留 | 27 | 12 | 0 |
vendor.etron.dram.lpddr2.component.v1 |
保留 | 3 | 3 | 0 |
vendor.etron.dram.lpddr4.component.v1 |
保留 | 41 | 41 | 0 |
vendor.skhynix.dram.ddr3_ddr4.component.v1 |
消费 | 62 | 61 | 0 |
vendor.skhynix.dram.ddr5.component.v1 |
消费 | 35 | 4 | 0 |
vendor.skhynix.dram.gddr5.component.v1 |
消费 | 1 | 1 | 0 |
vendor.skhynix.dram.lpddr3.component.v1 |
消费 | 2 | 2 | 0 |
vendor.skhynix.dram.lpddr4.component.v1 |
消费 | 47 | 47 | 0 |
vendor.skhynix.dram.lpddr4.pop.v1 |
消费 | 2 | 2 | 0 |
vendor.skhynix.dram.legacy_sdr.component.v1 |
消费 | 1 | 1 | 0 |
vendor.skhynix.dram.legacy_ddr.component.v1 |
消费 | 2 | 2 | 0 |
vendor.skhynix.dram.lpddr5.h9jk.v1 |
消费 | 3 | 3 | 0 |
vendor.skhynix.dram.lpddr5.component.v1 |
消费 | 3 | 3 | 0 |
vendor.skhynix.dram.lpddr5.h58.v1 |
保留 | 18 | 0 | 0 |
vendor.skhynix.dram.lpddr5x.component.v1 |
保留 | 59 | 0 | 0 |
vendor.skhynix.dram.gddr6.component.v1 |
消费 | 1 | 1 | 0 |
vendor.skhynix.dram.gddr6.16gb.component.v1 |
保留 | 4 | 0 | 0 |
vendor.skhynix.dram.gddr6.8gb.component.v1 |
保留 | 2 | 0 | 0 |
vendor.skhynix.dram.gddr7.component.v1 |
保留 | 3 | 0 | 0 |
vendor.skhynix.hbm3.h5u.v1 |
保留 | 2 | 0 | 0 |
vendor.skhynix.hbm2e.h5wr.v1 |
保留 | 4 | 4 | 0 |
vendor.skhynix.dram.lpddr4x.h54.v1 |
保留 | 35 | 0 | 0 |
vendor.skhynix.dram.lpddr4x.h9hk-modern.v1 |
保留 | 5 | 5 | 0 |
vendor.skhynix.dram.lpddr4x.h9hc-432ball.v1 |
保留 | 4 | 4 | 0 |
vendor.skhynix.dram.ddr4-32gb.h5anbg.v1 |
保留 | 2 | 2 | 0 |
vendor.skhynix.h25.gt-package.v2 |
移除 | 59 | 0 | 0 |
vendor.skhynix.h25.raw.v2 |
消费 | 32 | 0 | 0 |
vendor.skhynix.legacy.token.v1 |
保留 | 69 | 0 | 0 |
vendor.skhynix.ufs.hn8.automotive-ufs31.v1 |
移除 | 9 | 0 | 0 |
vendor.skhynix.ufs.hn8.uc310-v6.v1 |
移除 | 6 | 0 | 0 |
vendor.skhynix.ufs.hn8.mobile-ufs31.v1 |
移除 | 8 | 0 | 0 |
vendor.skhynix.ufs.hn8.ufs22-v7.v1 |
移除 | 6 | 0 | 0 |
vendor.skhynix.ufs.hn8.ufs22-v6.v1 |
移除 | 7 | 0 | 0 |
vendor.skhynix.ufs.hn8.zufs41.v1 |
移除 | 2 | 0 | 0 |
vendor.skhynix.ufs.h28u.v1 |
移除 | 5 | 0 | 0 |
vendor.skhynix.ufs.h28s.v1 |
移除 | 5 | 0 | 0 |
vendor.skhynix.emmc.managed.v1 |
保留 | 32 | 0 | 0 |
vendor.skhynix.emcp.h9hp-lpddr4x.v1 |
移除 | 8 | 8 | 8 |
vendor.skhynix.emcp.h9t_h9h.v1 |
移除 | 4 | 4 | 4 |
vendor.skhynix.emcp.h9a.v1 |
移除 | 4 | 0 | 0 |
vendor.skhynix.umcp.h9q.v1 |
移除 | 1 | 0 | 0 |
vendor.skhynix.umcp.h9hq.v1 |
移除 | 7 | 7 | 7 |
vendor.skhynix.umcp.h9hr-lpddr5.v1 |
消费 | 3 | 3 | 0 |
vendor.skhynix.e2nand.h2d_h2j.v1 |
消费 | 26 | 0 | 0 |
vendor.skhynix.e3nand.h23q.v1 |
移除 | 6 | 0 | 0 |
vendor.skhynix.h27.raw.v2 |
消费 | 140 | 0 | 0 |
vendor.kioxia.managed.thg.v1 |
保留 | 82 | 0 | 0 |
vendor.kioxia.ufs.managed.v1 |
保留 | 21 | 0 | 0 |
vendor.kioxia.raw.tc-th.v1 |
保留 | 574 | 7 | 0 |
vendor.sndk.inand.mcp.sd7dp26a.v1 |
消费 | 0 | 0 | 0 |
vendor.sndk.inand.managed.v1 |
消费 | 189 | 189 | 0 |
vendor.sndk.inand.legacy-emmc.v1 |
消费 | 3 | 3 | 0 |
vendor.sndk.issd.v1 |
消费 | 7 | 7 | 0 |
vendor.sndk.shortcode.v1 |
消费 | 22 | 22 | 0 |
vendor.sndk.marking.12digit.v1 |
保留 | 3 | 0 | 0 |
vendor.sndk.raw.ecb.current.v1 |
消费 | 0 | 0 | 0 |
vendor.sndk.raw.wcs.current.v1 |
消费 | 303 | 298 | 0 |
vendor.sndk.token.v1 |
消费 | 237 | 224 | 0 |
vendor.siliconmotion.ferri.emmc.v1 |
移除 | 32 | 32 | 32 |
vendor.siliconmotion.ferri.ufs.v1 |
移除 | 32 | 32 | 32 |
vendor.kingston.emmc.v1 |
移除 | 17 | 17 | 17 |
vendor.kingston.emmc.e04.v1 |
移除 | 1 | 0 | 0 |
vendor.kingston.ufs.v1 |
移除 | 5 | 5 | 5 |
vendor.kingston.emcp.v1 |
移除 | 8 | 8 | 8 |
vendor.kingston.epop.v1 |
移除 | 4 | 4 | 4 |
vendor.longsys.foresee.emmc.v1 |
移除 | 36 | 36 | 36 |
vendor.longsys.foresee.ufs.v1 |
移除 | 16 | 16 | 16 |
vendor.longsys.foresee.emcp.v1 |
移除 | 6 | 6 | 6 |
vendor.longsys.foresee.umcp.v1 |
移除 | 2 | 2 | 2 |
vendor.longsys.foresee.spi-nand.f35.v1 |
移除 | 0 | 0 | 0 |
vendor.longsys.foresee.spi-nand.fs35.v1 |
移除 | 0 | 0 | 0 |
vendor.longsys.dram.ddr3l.v1 |
消费 | 6 | 6 | 0 |
vendor.biwin.emmc.v1 |
移除 | 8 | 0 | 0 |
vendor.biwin.emmc.bwefm.v1 |
移除 | 21 | 0 | 0 |
vendor.biwin.emmc.bwcmaqb.v1 |
移除 | 2 | 0 | 0 |
vendor.biwin.ufs.v1 |
移除 | 4 | 0 | 0 |
vendor.biwin.ufs31.v1 |
移除 | 3 | 0 | 0 |
vendor.biwin.ufs31.automotive.v1 |
移除 | 0 | 0 | 0 |
vendor.biwin.emcp3.v1 |
移除 | 4 | 4 | 4 |
vendor.biwin.emcp.v1 |
移除 | 4 | 4 | 4 |
vendor.biwin.umcp.v1 |
移除 | 5 | 5 | 5 |
vendor.biwin.umcp5x.v1 |
移除 | 3 | 0 | 0 |
vendor.biwin.epop3.v1 |
移除 | 3 | 3 | 3 |
vendor.biwin.epop4x.v1 |
移除 | 4 | 4 | 4 |
vendor.biwin.epop5x.v1 |
移除 | 3 | 3 | 3 |
vendor.biwin.dram.lpddr4x.v1 |
移除 | 12 | 12 | 12 |
vendor.biwin.dram.lpddr5x.v1 |
移除 | 11 | 11 | 11 |
vendor.ymtc.process-alias.v1 |
保留 | 0 | 0 | 0 |
vendor.ymtc.nand-label.v2 |
移除 | 49 | 0 | 0 |
vendor.ymtc.unimos-label.v1 |
移除 | 1 | 0 | 0 |
vendor.ymtc.emmc-label.v1 |
移除 | 15 | 0 | 0 |
vendor.ymtc.ufs-label.v1 |
移除 | 19 | 0 | 0 |
vendor.phison.token.v1 |
保留 | 366 | 0 | 0 |
vendor.spectek.aio.emcp.v1 |
消费 | 1 | 0 | 0 |
vendor.spectek.flash-controller.v1 |
保留 | 1 | 1 | 0 |
vendor.spectek.nand-mcp.v1 |
消费 | 1 | 1 | 0 |
vendor.spectek.mobile-dram.component.v1 |
消费 | 194 | 3 | 0 |
vendor.spectek.dram.component.v1 |
消费 | 509 | 66 | 0 |
vendor.spectek.old-numbering.v1 |
保留 | 9 | 1 | 0 |
vendor.spectek.parent-density-token.v1 |
消费 | 1404 | 9 | 0 |
vendor.spectek.token.v1 |
消费 | 728 | 3 | 0 |
vendor.micron.prefix.mt |
保留 | 402 | 314 | 0 |
vendor.samsung.prefix.k |
保留 | 2 | 0 | 0 |
vendor.skhynix.prefix.hy |
保留 | 5 | 0 | 0 |
vendor.skhynix.prefix.h |
保留 | 4 | 0 | 0 |
vendor.kioxia.prefix.tc58 |
保留 | 0 | 0 | 0 |
vendor.kioxia.prefix.th58 |
保留 | 0 | 0 | 0 |
vendor.sandisk.prefix.sd |
保留 | 0 | 0 | 0 |
vendor.sandisk.prefix.s34 |
保留 | 6 | 0 | 0 |
vendor.sandisk.prefix.s35 |
保留 | 0 | 0 | 0 |
vendor.intel.prefix.js |
保留 | 0 | 0 | 0 |
vendor.intel.prefix.29f |
保留 | 0 | 0 | 0 |
vendor.ymtc.prefix.xt |
保留 | 0 | 0 | 0 |
实施完成日期:2026-09-18。
- 将匹配串与展示串分离,新增规则步骤
markPartNumberSeparator,在 30 条已有规则的解析边界声明分隔符。已输入的分隔符保留;省略分隔符且规则已确认边界时恢复规范写法;不完整输入不强行补齐后缀。 - 解码、投影、explain、目录候选、搜索结果以及 FID 关联 PN 和后续解码操作使用相同格式。修正 FDB 查询优先级:完整 PN 的 token 等价记录优先于较短主体记录,避免恢复连字符后误关联其他规格。
- 重跑全部 25,659 个资源组合:原来的 573 个分隔符丢失与展示不一致均降为 0。与基线相比,规则选择、解码状态、直接规则字段及公开规格块没有变化;原输入的公开 PN 更新 576 个,紧凑输入的公开 PN 更新 591 个。上文 6 个既有 MTFC 识别差异仍存在。
- 新增 8 项回归测试,覆盖已有产品线、资源样本、错误或缺失分隔符、未知尾部、多边界、条件标记、投影、搜索去重、FDB 优先级和 FID 关联。核心规则测试 250 项、集成测试 45 项、结果契约测试 1 项通过;PN 覆盖检查通过。
- fdbgen 37 项、fd-server 20 项、构建产物测试 17 项、5 个契约样例及源码/产物 DRAM 搜索专项通过;全仓类型检查、全部包构建和 DecodePack 静态检查通过。
- 同步升级至 pnpm 12.4.2 与最新直接依赖并刷新兼容范围内的间接依赖;
pnpm outdated --recursive --include-workspace-root --json返回空对象,离线冻结安装通过。初次组合检查受沙箱端口限制中断,允许本地监听后已分别完成相关测试;未将该次组合命令记录为成功。