chore: delete 106 unreachable *_system.gd and their parity tests

These files were loaded only by their own test_*_parity.gd and never by
the runtime (transitively checked, incl. client_phase_integration_system).
Removes 76 manifest implementation/evidence references across 18
contracts; contract docs get a note that conclusions based on them are
void. Live systems kept: chest, consumable, item_attr, metin_socket,
whisper_chat.

Full headless suite: no new failures (7 failing + 5 headless-hanging
render tests are identical before the deletion).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-22 17:51:52 +09:00
co-authored by Claude Opus 5
parent 5afd5a4f0d
commit a989b8f19b
447 changed files with 151 additions and 36567 deletions
+69 -129
View File
@@ -1414,7 +1414,6 @@
"project/ui/ground_items.gd",
"project/entity_rules.gd",
"project/game_scene.gd",
"project/metin_spawn_event_system.gd",
"project/mob_drop_scatter.gd"
],
"symbols": [
@@ -1466,7 +1465,6 @@
"project/mob_death_drop_test.gd",
"project/test_mob_drop_scatter_parity.gd",
"project/mob_winding_test.gd",
"project/test_metin_spawn_event_parity.gd",
"build/extension/net_entity_test",
"build/extension/net_classic_session_test",
"build/extension/net_classic_wire_test"
@@ -1478,13 +1476,14 @@
"补齐不可见 race、未知 race/vnum、模型工厂未就绪、真实 drop model/effect/sound 和建筑碰撞的失败矩阵",
"验证 ground add/owner/del 与 CG_ITEM_PICKUP→GC_DEL/ITEM_GET/ITEM_UPDATE 的 live 包序、失败、乱序和重连清理",
"验证 GC_SHOP_SIGN 空/非空、未知 VID、重复包、私人商店 UI 和换图/断线清理",
"把本地掉落散落、活动石头和 owner 保护与 40250 client presentation 分层,不把 custom authority 当 parity"
"把本地掉落散落、活动石头和 owner 保护与 40250 client presentation 分层,不把 custom authority 当 parity",
"2026-09-22 删除了只被自身测试引用的 *_system.gd 及其 test_*_parity.gd;原来引用它们的实现/证据不再成立,需按 40250 源码单元重新移植"
],
"notes": "已完成 40250 actor/ground/shop-sign 调用链和当前端 parser/store/view 对照;合同保持 PARTIAL。net_world_vis_test 复现 4 项可见性生命周期失败,本轮仅登记审计结果,未修改实现。",
"fingerprints": {
"reference": "97dfe247272a6098ce623ceae986732205de3273cb1199377f969faeec8d0ba0",
"implementation": "3a7d87cad0ba405495ba51e13feab294af9ebddbde2fb18b5df9c606bbe3af08",
"tests": "0100c7c3894330afa222f7a7d6bc60ec38ca08fc981a6d30746deffa5e159298"
"implementation": "bdc38d8ef47e8a8f2676f6e9a080c7924a56b88ceb546affeb281dc57243a1d1",
"tests": "702ac283f682d937fa8a02c70ca929942b68cacffc7adc686a5779e45f10f178"
}
},
{
@@ -1936,8 +1935,7 @@
"project/damage_effect.gd",
"project/ui/player_view.gd",
"project/ui/equip_model.gd",
"project/ui/weapon_trace.gd",
"project/socket_glow_fx_system.gd"
"project/ui/weapon_trace.gd"
],
"symbols": []
},
@@ -1964,12 +1962,13 @@
"服务端伤害/死亡/重复命中与客户端命中窗的真实包级 fixture",
"换图、断线、缺失动作资源和攻击队列清理测试",
"WeaponTrace 已按 bound-box 最大长度、局部 Z 和 reach scale 接入 PlayerView;当前仍未证明 native bone matrix 的同一 composite/rotation 坐标语义、远端/怪物覆盖、真实刀光纹理视觉和服务端动作资源",
"socket_glow_fx_system.has_trail 目前只有配置字段,没有进入武器刀光渲染链"
"socket_glow_fx_system.has_trail 目前只有配置字段,没有进入武器刀光渲染链",
"2026-09-22 删除了只被自身测试引用的 *_system.gd 及其 test_*_parity.gd;原来引用它们的实现/证据不再成立,需按 40250 源码单元重新移植"
],
"notes": "已按 40250 isValidAttacking/HitDataContainer 删除缺失动作攻击数据、空命中窗和缺少 .msm 防御球时的本地合成命中;状态包、命中窗、去重、受击、弓箭 FLY、本地主角伤害飘字和 WeaponTrace 多部件生命周期有回归证据。WeaponTrace 目前通过 weapon_trace.gd 适配层接入,包含武器类型过滤、每个 Weapon/Shield 部件独立 trace、双轨迹时间队列、cubic spline triangle strip、alpha/texture 材质、攻击动作开关、纹理控制入口、bound-box 最大长度/局部 Z/reach scale 和换装清理;AFFECT_GEOMGYEONG 的 1.5/1.0 reach scale 已同时接入刀光与普通攻击扫掠。native 骨骼矩阵坐标语义、远端/怪物覆盖、真实视觉资源及服务端伤害闭环仍不等价。强化配置中的 has_trail 仍是独立未消费字段。",
"fingerprints": {
"reference": "abf0577e3430979fbf4e1ea85fa637b2f59e798bf57e257060528940045eef43",
"implementation": "b835d862fb211a964fb36df0d435247ad120636a81491e9e108b2c545710bba9",
"implementation": "6f93c4bcb3aee4af48beee7cff2eb4c5923a3b0bb32eae0f2b132f2873524e8f",
"tests": "228e1bb5ebb0ef52822956e3d33d9c51d55cc2090c323300b466f937249e5d3c"
}
},
@@ -2013,8 +2012,7 @@
"project/ui/mouse_controller.gd",
"project/player_controller.gd",
"project/net_play.gd",
"project/net_world.gd",
"project/alignment_pk_system.gd"
"project/net_world.gd"
],
"symbols": [
"EntityRules.is_attackable_instance",
@@ -2053,9 +2051,7 @@
"tests": [
"project/entity_rules_test.gd",
"project/target_board_test.gd",
"project/test_alignment_pk_parity.gd",
"project/test_click_target_effect_parity.gd",
"project/test_auto_combat_bot_parity.gd",
"project/playable_combat_test.gd",
"project/netplay_test.gd"
],
@@ -2066,13 +2062,14 @@
"隐身、复活隐身、视锥、门死亡、裁剪/淡出和迟到实体更新的目标生命周期矩阵",
"地图 ATTRIBUTE_BANPK 与实体 in_safe 的实时数据权威和移动/换图更新链",
"SetTarget 切换时间窗、OnTargeted/OnUntargeted、飞行目标和 CG_TARGET 顺序",
"真实服务端目标包、死亡/删除/乱序/断线重连和目标框清理"
"真实服务端目标包、死亡/删除/乱序/断线重连和目标框清理",
"2026-09-22 删除了只被自身测试引用的 *_system.gd 及其 test_*_parity.gd;原来引用它们的实现/证据不再成立,需按 40250 源码单元重新移植"
],
"notes": "已完成目标攻击资格、目标可选中、目标框和安全区的逐分支静态审计;目标入口已统一接入 CanChangeTarget/CanPickInstance、重复目标窗口和 CG_TARGET(0) 清理,合同保持 PARTIAL。",
"fingerprints": {
"reference": "d1c911b8bba1ccd48228a794568e3bc13ffa77ecd7d124d4e442ed9fecfdfb85",
"implementation": "9d68120ea53f8da8821803c91ea5065ce208cfd14e0d48b1e1239b39895f9e25",
"tests": "2cf38a10e34184c9477f0e7fc7316b6ba201c0adaa4db43a0ce8cb7d6936c1a4"
"implementation": "47ddc51bc30196640a8e27ac2286405bc6bd5fc2a25d80b636884382fc0d468a",
"tests": "3b20fa82a05fdf13597b631c6463f15d6a303dd7eddf43ed6f65d3e873bce756"
}
},
{
@@ -2218,7 +2215,6 @@
},
"implementation": {
"files": [
"project/combat_status_effect_system.gd",
"project/ui/hit_reaction.gd",
"project/ui/player_view.gd",
"project/ui/mob_view.gd",
@@ -2262,10 +2258,8 @@
"evidence": {
"contract": "audit/contracts/combat.affect-status.md",
"tests": [
"project/test_combat_status_effect_parity.gd",
"project/damage_effect_test.gd",
"project/combat_fx_test.gd",
"project/test_mob_combat_reaction_parity.gd",
"project/test_combat_death_pickup_entry_parity.gd",
"project/hit_view_test.gd",
"build/extension/net_entity_test",
@@ -2278,13 +2272,14 @@
"补齐 affect bit 到附着特效、图标、骨骼、stone smoke 和建筑 no-op 的逐位资源矩阵",
"统一远端 stunned/knockdown/skill-cancel 的动作和网络状态门控",
"修复 hit_view_test 前向 damage 资源/动作锁时序失败",
"补齐重复、乱序、duration、死亡、换图、重连和 VID 重用清理测试"
"补齐重复、乱序、duration、死亡、换图、重连和 VID 重用清理测试",
"2026-09-22 删除了只被自身测试引用的 *_system.gd 及其 test_*_parity.gd;原来引用它们的实现/证据不再成立,需按 40250 源码单元重新移植"
],
"notes": "已完成 40250 AffectFlagContainer、Actor affect/受击动作、damage/affect 协议和当前 native/GDScript 链的逐分支审计;确认本地状态结算器的数据权威错误,且 hit_view_test 有 1 项失败。合同保持 PARTIAL,本轮仅登记审计结果,未修改实现。",
"fingerprints": {
"reference": "92ddbb559ef4966bcecc9358beb85f7fd8edec830f833cde7067f0c35eaa2aee",
"implementation": "c783877a1a45419d9c8fd143e7dc3ce5cd37838e6c044941d36260d586249386",
"tests": "f0e1f4279d7fed8a897eccd9d0978781e4f19c27765d4571138bd0c0f6faefce"
"implementation": "0012356c81b291e8bff2f96561efad74ac45ba624c91986ce53309b25abf76cc",
"tests": "1c7ab5e0776d4e144a37d2d2e659c02eb259aa0b5caec4111b50b673ef39b112"
}
},
{
@@ -2375,7 +2370,6 @@
"project/netplay_test.gd",
"project/test_skill_inventory_parity.gd",
"project/test_taskbar_quickslot_parity.gd",
"project/test_status_skill_reset_parity.gd",
"project/mobile_gesture_test.gd",
"project/playable_combat_test.gd",
"project/guild_war_skill_test.gd",
@@ -2389,13 +2383,14 @@
"CanUseSkill 五类动作门已补齐;仍需把真实 shape/图形动作字段和拒绝副作用接入端到端回归",
"POINT_CASTING_SPEED 已暴露并按 40250 __RunCoolTime 修正;仍需真实点变更/冷却回包时序 fixture",
"补齐 skill/group/quickslot/cooldown-end 乱序、重复、断线、重连和换图测试",
"建立全部技能 ID/grade/.msk 公式/动作/目标追加和服务端 damage 顺序快照"
"建立全部技能 ID/grade/.msk 公式/动作/目标追加和服务端 damage 顺序快照",
"2026-09-22 删除了只被自身测试引用的 *_system.gd 及其 test_*_parity.gd;原来引用它们的实现/证据不再成立,需按 40250 源码单元重新移植"
],
"notes": "已完成 40250 技能数据、三层施放校验、CanUseSkill、casting-speed 冷却公式、快捷栏、普通/公会技能发送入口、skill/group/cooldown 协议和 FUNC_SKILL→CG_USE_SKILL 动作/意图包序的逐分支审计;CanUseSkill 五类动作门、POINT_CASTING_SPEED 桥接和公会技独立路径已实现,但真实拒绝/乱序/跨生命周期 fixture、完整动作资源包序和服务端 damage 顺序仍使合同保持 PARTIAL。",
"fingerprints": {
"reference": "c38e930585edcd35a8e0911f10f3fb6694a39bc7735a3bac0b3d4eea157c9bcb",
"implementation": "233c5cd7ee94ba2fa9ecb1a833a3ecad3e805ade4a87333243480199b18e7d4b",
"tests": "82695ce797fd9e07f6278d8beb3cab35441e8cd59be43e2be6920236d3736369"
"tests": "e3b00c87a54d1af4effeef310d90de4c72dacf7a7323bab005f6850ace556bb5"
}
},
{
@@ -2567,7 +2562,6 @@
"implementation": {
"files": [
"project/consumable_system.gd",
"project/item_split_system.gd",
"project/ui/quickbar.gd",
"project/ui/inventory_ui.gd",
"project/ui/shop_ui.gd",
@@ -2578,7 +2572,6 @@
"extension/src/net/entity_store.cpp",
"extension/tests/net_classic_session_test.cpp",
"project/test_consumables_parity.gd",
"project/test_item_split_parity.gd",
"project/test_taskbar_quickslot_parity.gd",
"project/test_skill_inventory_parity.gd",
"project/skill_test.gd",
@@ -2632,7 +2625,6 @@
"contract": "audit/contracts/item.consumable-action.md",
"tests": [
"project/test_consumables_parity.gd",
"project/test_item_split_parity.gd",
"project/test_taskbar_quickslot_parity.gd",
"project/complex_item_drop_test.gd",
"project/netplay_test.gd"
@@ -2645,13 +2637,14 @@
"堆叠拆分已统一为 CG_ITEM_MOVE 请求并等待服务器确认;快捷出售已统一为 CG_SHOP SELL/SELL2,价格、金币和物品变化仍待真实回包 fixture",
"消耗品 native action gate 与装备类型门已补齐;物品音效和 SendSequence 的资源/包序证据仍缺",
"断线、换图、重复回包、请求失败和延迟期间的状态清理/回滚",
"快捷栏乐观更新和页面取模差异已修复;quickbar 资源泄漏、完整生命周期清理和真实服务器确认 fixture 仍待补齐;complex_item_drop_test 的购买模式卖出目标判定已修复"
"快捷栏乐观更新和页面取模差异已修复;quickbar 资源泄漏、完整生命周期清理和真实服务器确认 fixture 仍待补齐;complex_item_drop_test 的购买模式卖出目标判定已修复",
"2026-09-22 删除了只被自身测试引用的 *_system.gd 及其 test_*_parity.gd;原来引用它们的实现/证据不再成立,需按 40250 源码单元重新移植"
],
"notes": "已将拆分、快捷出售和快捷栏增删交换统一到 request→server/GC 确认路径,并修复购买模式误发出售请求;快捷栏使用、消耗品真实反馈包序、音效/sequence 和断线清理仍使合同保持 PARTIAL。",
"fingerprints": {
"reference": "f364d4bbba79ef514f5f8aeccbf34a3d6adea8fcacf4cb82664476b6c29ebbfe",
"implementation": "468b4155a11204d546d49ca92afea109ced58669c2ac2286f92c742f538a49e7",
"tests": "5fe55c9e41140a0d3deb270df8cecb785d45d8eed3e6769d5a24b907d772e66c"
"implementation": "20983090cb18e010bcd3fd674166491d589f32335253d4b19241c556431cf3b2",
"tests": "360f28348ea118717464fd3ebe179791a95377b658f60364ff7286a041059d97"
}
},
{
@@ -2815,13 +2808,7 @@
"implementation": {
"files": [
"project/ui/refine_ui.gd",
"project/refine_effect_system.gd",
"project/item_attr_system.gd",
"project/item_enchant_system.gd",
"project/jewelry_socket_system.gd",
"project/costume_system.gd",
"project/costume_attr_transfer_system.gd",
"project/wardrobe_transmog_system.gd",
"project/ui/equip_model.gd",
"extension/src/net/m2_client.cpp",
"extension/src/net/m2_client.h",
@@ -2867,13 +2854,7 @@
"contract": "audit/contracts/item.refine-socket-costume.md",
"tests": [
"project/test_refine_parity.gd",
"project/test_refine_effect_parity.gd",
"project/test_item_attr_parity.gd",
"project/test_item_enchant_manager_parity.gd",
"project/test_jewelry_socket_parity.gd",
"project/test_costume_system_parity.gd",
"project/test_costume_attr_transfer_parity.gd",
"project/test_wardrobe_transmog_parity.gd",
"extension/tests/net_classic_session_test.cpp",
"extension/tests/net_entity_test.cpp",
"extension/tests/net_bounds_test.cpp"
@@ -2887,13 +2868,14 @@
"把时装穿戴、属性、过期和 bonus 接入服务端 item/affect/point 与 actor armor/weapon/hair 更新链",
"让强化等级/socket/type/subtype 驱动实际装备模型、强化特效 attach/clear,并覆盖资源缺失清理",
"补充拒绝、断线、重复/乱序回包、换图、过期和服务端回滚测试",
"将 wardrobe/transmog 自定义扩展与 40250 parity 分开标注,除非补齐对应服务端协议和角色部件同步"
"将 wardrobe/transmog 自定义扩展与 40250 parity 分开标注,除非补齐对应服务端协议和角色部件同步",
"2026-09-22 删除了只被自身测试引用的 *_system.gd 及其 test_*_parity.gd;原来引用它们的实现/证据不再成立,需按 40250 源码单元重新移植"
],
"notes": "本轮已修复 M2Client::refine 对 40250 取消 sentinel(255,255) 的错误拦截,并补充边界/EntityStore 回归;属性、socket、时装和幻化仍绕过服务器权威回包,合同保持 PARTIAL。",
"fingerprints": {
"reference": "6cc67309be64986008984215add763db78e2990b665274500cf4e76661b782e8",
"implementation": "176ad923087d84b8f11dee97d2bd198c495d91014d8b720d3bf58acd0bd26fb8",
"tests": "6bb13ce9e81271dfa30eaaab03c5cf5e801ef22965c32d4b4d38af95f6874bfb"
"implementation": "0dceaccac8bd37f946846dfd7bebf7cb38563896dc2d24ec7eed3560854e2b31",
"tests": "785b8529135d9169573531c379e0997d61a61acfffb40dbf1bc8f715ee3813de"
}
},
{
@@ -2935,8 +2917,6 @@
},
"implementation": {
"files": [
"project/npc_shop_system.gd",
"project/private_shop_system.gd",
"project/ui/shop_ui.gd",
"project/ui/private_shop_ui.gd",
"project/net_play.gd",
@@ -2983,11 +2963,9 @@
"evidence": {
"contract": "audit/contracts/npc.dialog-shop.md",
"tests": [
"project/test_npc_shop_parity.gd",
"project/test_npc_shop_flow.gd",
"project/test_npc_dialog_shop_ui_parity.gd",
"project/private_shop_ui_test.gd",
"project/test_private_shop_bundle_parity.gd",
"project/shop_rules_test.gd",
"project/p8_test.gd",
"project/complex_item_drop_test.gd",
@@ -3004,13 +2982,14 @@
"为买卖请求补齐动作门控、实际库存/anti flag/商店状态校验和服务器结果回写",
"移除 live 路径对硬编码 NPC 库存与本地金币/背包 helper 的权威依赖",
"补充 START/START_EX/UPDATE/ERROR/END、拒绝、售罄、断线、重连和乱序包的端到端测试",
"补充个人商店死亡/骑乘/战斗/bundle/重复源格校验和服务端拒绝清理测试"
"补充个人商店死亡/骑乘/战斗/bundle/重复源格校验和服务端拒绝清理测试",
"2026-09-22 删除了只被自身测试引用的 *_system.gd 及其 test_*_parity.gd;原来引用它们的实现/证据不再成立,需按 40250 源码单元重新移植"
],
"notes": "已完成 40250 与当前端的 NPC 点击、脚本对话、普通/多货架商店、买卖、个人商店招牌和摆摊提交逐分支/协议/状态审计。协议骨架和本地 UI 测试存在,但多货架更新、个人商店点击/状态、动作门控及本地直改旁路使合同保持 PARTIAL。",
"fingerprints": {
"reference": "2fa18ff8979d5c03e2daf44129702e3a1b26bb9e6f7b3b585f6fa55ac898e765",
"implementation": "5373e00e8785a5fa8a98f8c361fabc4b1cdc3625093811d9a74082957126db77",
"tests": "3829ff07408c019b3a4a65fa8d4f283fe723342bcc2d1ed51ec4993d7f9c1874"
"implementation": "4adc63160de3b1b21f51c11d6c512d7f550c976a50c49be46784c967eca574ca",
"tests": "c4a51e1a265294adaf10693271297d832ba2cc7ef6de6e6125bded961cea7594"
}
},
{
@@ -3109,7 +3088,6 @@
"project/guild_mark_tail_test.gd",
"project/test_whisper_chat_parity.gd",
"project/chat_mobile_ui_test.gd",
"project/test_chat_hyperlink_dice_parity.gd",
"build/extension/net_entity_test",
"build/extension/net_classic_session_test"
],
@@ -3122,13 +3100,14 @@
"复现入站表情解析、跨帝国文字转换、辱骂过滤和 40250 延迟聊天队列",
"统一公共聊天颜色和文本前缀处理,发送失败不能生成成功回显",
"让聊天/信息尾标使用同一权威实体生命周期,补齐真实字体度量、屏幕投影和死亡/换图清理",
"补充重复/乱序/断线/重连、未知类型、超长文本和 whisper 错误端到端测试"
"补充重复/乱序/断线/重连、未知类型、超长文本和 whisper 错误端到端测试",
"2026-09-22 删除了只被自身测试引用的 *_system.gd 及其 test_*_parity.gd;原来引用它们的实现/证据不再成立,需按 40250 源码单元重新移植"
],
"notes": "已完成 40250 与当前端的公共聊天、私聊、忽略、聊天气泡、名字/称号/等级/公会名尾标及文本布局逐分支/协议/状态审计。已修正 whisper mode 映射、截断 GC_WHISPER 拒绝逻辑,并将 live ChatUI 的普通/GM whisper 接入独立会话和 ignore 判断;基础网络与静态尾标测试存在,但窗口通知、公共提示/过滤/表情/颜色和 Godot 字体布局差异使合同保持 PARTIAL。",
"fingerprints": {
"reference": "2b70c64e18344d4f465354239899289d5df2f7b9c38e165c66d553f790e2859e",
"implementation": "cd02d44596b377534a4200e0ef7002b3c6de8e7c328fbdd96afc7e9ed8a6cb8f",
"tests": "47305f945c76eb3c208880fd4860775262489bc2dc5dd7d42eb3d136e28761ab"
"tests": "83f508464e76c7b6eee0796af45dedabeea3fbe2a2c235ad5efbad753c39842e"
}
},
{
@@ -3175,12 +3154,6 @@
},
"implementation": {
"files": [
"project/party_management_system.gd",
"project/guild_skill_system.gd",
"project/guild_war_system.gd",
"project/guild_war_observer_arena_system.gd",
"project/messenger_system.gd",
"project/guild_mark_uploader_system.gd",
"project/ui/party_ui.gd",
"project/ui/guild_ui.gd",
"project/ui/friend_ui.gd",
@@ -3241,16 +3214,9 @@
"evidence": {
"contract": "audit/contracts/social.party-guild-messenger.md",
"tests": [
"project/test_party_management_parity.gd",
"project/test_messenger_parity.gd",
"project/test_guild_mark_uploader_parity.gd",
"project/guild_mark_test.gd",
"project/guild_mark_tail_test.gd",
"project/test_guild_war_parity.gd",
"project/test_guild_war_observer_arena_parity.gd",
"project/test_guild_skill_parity.gd",
"project/guild_creation_ui_test.gd",
"project/test_privilege_empire_guild_parity.gd",
"project/p8_test.gd",
"extension/tests/net_entity_test.cpp",
"extension/tests/net_classic_session_test.cpp"
@@ -3264,13 +3230,14 @@
"补充公会权限拒绝、离会/踢人、公告/技能/金钱回包和邀请清理",
"补充公会战声明/开始/结束/list/point 的连续事件与服务端奖励验证",
"补充独立 mark client 的握手、index、CRC、压缩 block、损坏、断线、重试和角色刷新测试",
"上传会徽/战旗必须验证真实用户资源、权限和服务端完成回包,避免默认占位图成为成功状态"
"上传会徽/战旗必须验证真实用户资源、权限和服务端完成回包,避免默认占位图成为成功状态",
"2026-09-22 删除了只被自身测试引用的 *_system.gd 及其 test_*_parity.gd;原来引用它们的实现/证据不再成立,需按 40250 源码单元重新移植"
],
"notes": "已完成 40250 与当前端的组队、公会、好友/Messenger、会徽/战旗及相关 UI/native 回包链审计。live native 主路径较完整,但本地队伍/技能/公会战/Messenger/会徽 helper 仍存在直接状态旁路,真实权限拒绝、mark 独立连接和重连清理证据不足,合同保持 PARTIAL。",
"fingerprints": {
"reference": "c0ba3dce2da7c2bd6c1f934ebd66eedaf0d37bc0d3bf99b22e401b939a150bc4",
"implementation": "bf62ad6be63031d6630d7f4d1be497469f4a42ea8137be95b066864cd566f55c",
"tests": "89f4d155ee7d3b4f3457ef2114aed642ef6030a7a7c226d5731fcc20cd2ba2dd"
"implementation": "0be944c07b20317ca684d3219d86421e4e8a34e3610daf587ca0c1fb7671a660",
"tests": "0377c649a21cdd049d7a76e9b241ed11eba0e16ba057f7cec27f583702c2cf94"
}
},
{
@@ -3311,8 +3278,6 @@
},
"implementation": {
"files": [
"project/player_trade_exchange_system.gd",
"project/safebox_storage_keeper_system.gd",
"project/ui/exchange_ui.gd",
"project/ui/safebox_ui.gd",
"project/ui/mall_ui.gd",
@@ -3356,18 +3321,19 @@
"evidence": {
"contract": "audit/contracts/social.exchange-safebox.md",
"tests": [],
"last_test_result": "PARTIAL"
"last_test_result": "NOT_RUN"
},
"remaining": [
"补齐 GC_EXCHANGE/GC_SAFEBOX/GC_MALL 的拒绝、乱序、断线和回包回滚测试",
"将交易和仓库 UI 的 optimistic 状态改为由 native 回包重建并验证源位置",
"区分并隔离本地 helper,避免将交易结算、密码、库存和金条规则当作客户端 authority",
"补齐 exchange 动作门控、真实服务端物品/金币校验和商城 checkout 失败清理"
"补齐 exchange 动作门控、真实服务端物品/金币校验和商城 checkout 失败清理",
"2026-09-22 删除了只被自身测试引用的 *_system.gd 及其 test_*_parity.gd;原来引用它们的实现/证据不再成立,需按 40250 源码单元重新移植"
],
"notes": "已完成交易、仓库、安全箱、商城和金币确认的逐分支/协议/状态审计;native 主链存在但与 40250 仍是 PARTIAL,本轮未修改实现。",
"fingerprints": {
"reference": "8497886941be7e41b6b1960b22fc8e07b1c0fe65c4a032b13d662191b06a0404",
"implementation": "d2cad2b8bdf7fc421478157ea0085bef07a4979d3d3799ff81823e1dd16216ab",
"implementation": "23a59fe47d21a602f5baff19828f9db8f4bd89495bcd1a14922a7476ee5906a2",
"tests": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
},
@@ -3417,18 +3383,13 @@
"project/ui/char_status_ui.gd",
"project/ui/atlas_ui.gd",
"project/ui/minimap.gd",
"project/atlas_navigation_system.gd",
"project/game_scene.gd",
"extension/src/net/m2_client.cpp",
"extension/src/net/m2_client.h",
"extension/src/net/entity_store.cpp",
"extension/src/net/entity_store.h",
"extension/src/net/classic/classic_session.cpp",
"extension/src/net/classic/classic_session.h",
"project/biologist_quest_system.gd",
"project/dynamic_bounty_event_system.gd",
"project/event_manager_system.gd",
"project/metin_spawn_event_system.gd"
"extension/src/net/classic/classic_session.h"
],
"symbols": [
"EntityStore::apply",
@@ -3477,12 +3438,13 @@
"补齐真实 server 脚本序列与中断回归;script-button、DONE、ESC/CANCEL answer 语义已闭合",
"验证 RUN_CINEMA 的有效 .msc 资源序列、过场消费者和中断清理;验证地图信号在 Minimap/Atlas 的切图与多点生命周期",
"补齐对话确认超时、fade/camera/cinema 中断、断线和重连清理测试",
"隔离生物学家/悬赏/活动 helper,避免其本地规则冒充 40250 客户端实现"
"隔离生物学家/悬赏/活动 helper,避免其本地规则冒充 40250 客户端实现",
"2026-09-22 删除了只被自身测试引用的 *_system.gd 及其 test_*_parity.gd;原来引用它们的实现/证据不再成立,需按 40250 源码单元重新移植"
],
"notes": "已完成任务状态、事件脚本、对话、HUD、地图导航和过场链的逐分支/协议/时序审计;GC_QUEST_INFO END、script-button 任务索引 sentinel、DONE close-only/DoneEvent、ESC/CANCEL answer 分支和 RUN_CINEMA 缺失资源分支已按 40250 修复,其他明确差异继续保持 PARTIAL。",
"fingerprints": {
"reference": "e05974ea414ca0d1bdcec3298119380ec35bfd20637a9c8e48588246347fc364",
"implementation": "5aa1707764f5a74db510210bfd8803a9e90e0a4d989202795fe506d1f29a8395",
"implementation": "71343d79bbcf40cf9437adac21bc5d6cef35b568e390445f5824ad9bba35e28f",
"tests": "a65c31ca4ade9fe4359f1238ed7080a5a50c3a336b75a9d9ee2a1e2f7faeb02a"
}
},
@@ -3518,12 +3480,6 @@
"project/dungeon_state.gd",
"project/ui/dungeon_result_ui.gd",
"project/game_scene.gd",
"project/world_boss_system.gd",
"project/dungeon_ranking_system.gd",
"project/spider_dungeon_system.gd",
"project/spider_dungeon_key_system.gd",
"project/flame_dungeon_razador_system.gd",
"project/endless_spire_dungeon_system.gd",
"extension/src/net/entity_store.cpp",
"extension/src/net/entity_store.h",
"extension/src/net/m2_client.cpp",
@@ -3555,18 +3511,19 @@
"evidence": {
"contract": "audit/contracts/world.dungeon-activity.md",
"tests": [],
"last_test_result": "PARTIAL"
"last_test_result": "NOT_RUN"
},
"remaining": [
"接通 alarm_requested 到等价的 compass/mse 资源效果,并验证方向、初次提示和 20 秒重复提示",
"补齐 GC_DUNGEON/DUNGEON_RESULT 的 live 回包、重复/乱序、拒绝、断线、切图和重连测试",
"确认 server cm 到 Godot 世界坐标的轴向、地图基准和到达阈值实机一致",
"把 Boss、排行和具体副本 helper 与 40250 client parity 分开,禁止本地 authority 冒充客户端等价实现"
"把 Boss、排行和具体副本 helper 与 40250 client parity 分开,禁止本地 authority 冒充客户端等价实现",
"2026-09-22 删除了只被自身测试引用的 *_system.gd 及其 test_*_parity.gd;原来引用它们的实现/证据不再成立,需按 40250 源码单元重新移植"
],
"notes": "已完成 GC_DUNGEON 目标点、结果窗口、地图事件及本地 Boss/排行/副本 helper 的逐分支、协议、资源和时序审计;目标状态算法接近参考,但 compass 副作用未接通,本地 authority 不能视为 40250 客户端实现。",
"fingerprints": {
"reference": "66b5e63a273e45873bf4c4b90c8b658a9f073ba425de6f275d622b3c47fbac99",
"implementation": "c4885c44a33a107d3095a20b988f26a5a62d50814514e34ffb03c86bfa7a745d",
"implementation": "f962e7e5f470f447024073009b195aacf877cfbcbf624aeb88cf13f9e3646dc0",
"tests": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
},
@@ -3605,10 +3562,6 @@
},
"implementation": {
"files": [
"project/fishing_mining_system.gd",
"project/fishing_rod_reel_system.gd",
"project/fishing_cooking_camp_system.gd",
"project/mining_refinery_smelt_system.gd",
"project/net_play.gd",
"project/net_world.gd",
"extension/src/metin2_world.cpp",
@@ -3649,18 +3602,19 @@
"evidence": {
"contract": "audit/contracts/world.fishing-mining.md",
"tests": [],
"last_test_result": "PARTIAL"
"last_test_result": "NOT_RUN"
},
"remaining": [
"补齐 CanFishing/持竿/持镐动作门控、服务端拒绝和角色消失/重连测试",
"验证 GetFishingRot 的轴向、MapCoord heading 和全地图 water attribute/水高单位",
"让 GC_DIG_MOTION 按 count 复现多个 dig motion,并验证目标缺失、动作完成和中断清理",
"把钓鱼收益、烹饪、营火、采矿、熔炼和宝石脚本标记为 custom/server authority,禁止冒充 40250 client parity"
"把钓鱼收益、烹饪、营火、采矿、熔炼和宝石脚本标记为 custom/server authority,禁止冒充 40250 client parity",
"2026-09-22 删除了只被自身测试引用的 *_system.gd 及其 test_*_parity.gd;原来引用它们的实现/证据不再成立,需按 40250 源码单元重新移植"
],
"notes": "已完成钓鱼输入/水面扫描、GC_FISHING、GC_DIG_MOTION、地图水面和当前端生活技能 helper 的逐分支、协议、状态与资源审计;协议骨架和部分算法接近参考,但 live 动作/门控/清理证据不足,本地收益脚本不是 40250 客户端 authority。",
"fingerprints": {
"reference": "770f14f2d2bfdf025b471dbc90280f891671ea898faef52d4112684934f5bdb7",
"implementation": "6be8a56d9630a7c8aa785ff2981dd46ed5a0b08b3fa097a20f55a1a4d31d768f",
"implementation": "e9c3c25e1e61db656451f5a091ecf1365f54f01ee7a94b8098f5e625d67dded8",
"tests": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
},
@@ -3697,14 +3651,6 @@
},
"implementation": {
"files": [
"project/horse_system.gd",
"project/horse_combat_system.gd",
"project/horse_level_growth_system.gd",
"project/pet_companion_system.gd",
"project/classic_pet_system.gd",
"project/polymorph_system.gd",
"project/polymorph_marble_system.gd",
"project/mounted_combat_skill_system.gd",
"project/net_play.gd",
"project/net_world.gd",
"project/ui/equip_model.gd",
@@ -3740,18 +3686,19 @@
"evidence": {
"contract": "audit/contracts/world.mount-pet-polymorph.md",
"tests": [],
"last_test_result": "PARTIAL"
"last_test_result": "NOT_RUN"
},
"remaining": [
"补齐 mount_vnum/GC_MOUNT 到实际 horse actor/model attach/detach 的 live 链和位置清理",
"验证骑乘 motion root、300/1200 度旋转速度、马等级攻击门和 weapon mode 的 live 回包时序",
"把变身 affect/shape/装备遮挡接入 native entity 或明确标为缺失,不用本地 helper 代替",
"将宠物、马匹成长/耐力/马上技能和伤害脚本与 40250 client parity 分离,禁止 custom authority 冒充等价实现"
"将宠物、马匹成长/耐力/马上技能和伤害脚本与 40250 client parity 分离,禁止 custom authority 冒充等价实现",
"2026-09-22 删除了只被自身测试引用的 *_system.gd 及其 test_*_parity.gd;原来引用它们的实现/证据不再成立,需按 40250 源码单元重新移植"
],
"notes": "已完成 mount_vnum/GC_MOUNT、骑乘动作/攻击门、变身和当前端宠物/马匹 helper 的逐分支、协议、资源和时序审计;网络字段与部分门控存在,但实际坐骑模型挂接和变身 native 闭环缺失,本地宠物/成长/技能规则不是 40250 客户端 authority。",
"fingerprints": {
"reference": "5ef243a1ff134dfc8afff02136d104daf0a0ac12eca781a1c476b53f7da9ff19",
"implementation": "47780fc336fe531fea973aa9196d587b581aabb2a8dfe00bd10a6d275ce98b4a",
"implementation": "e69e964433af7177390e558ef32087425386bf6923a9408d457c48644c4fc6ad",
"tests": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
},
@@ -4064,7 +4011,6 @@
"formats/environment.cpp",
"formats/environment.h",
"project/game_scene.gd",
"project/weather_daynight_system.gd",
"project/fx/weather.gd"
],
"symbols": [
@@ -4099,7 +4045,6 @@
"project/environment_test.gd",
"project/skybox_test.gd",
"project/p9_test.gd",
"project/test_weather_daynight_parity.gd",
"extension/tests/net_entity_test.cpp",
"project/gamescene_test.gd",
"project/netbridge_test.gd"
@@ -4111,13 +4056,14 @@
"修正/验证 40250 线性 fog near/far/color 与 HTP/STP/terrain 的参数和时序",
"补齐 DayMode/PRESERVE_DayMode 正式环境切换;WeatherDayNightSystem 的自动地图预设继续隔离,不能替代服务器 xmas_snow 命令",
"对天空 transition、云 plane、SnowEnvironment 池和真实渲染顺序增加参数/screenshot oracle",
"增加重复加载、快速切图、暂停恢复、资源缺失和环境/粒子清理测试"
"增加重复加载、快速切图、暂停恢复、资源缺失和环境/粒子清理测试",
"2026-09-22 删除了只被自身测试引用的 *_system.gd 及其 test_*_parity.gd;原来引用它们的实现/证据不再成立,需按 40250 源码单元重新移植"
],
"notes": "已完成 .msenv、天空/云、双方向光、fog、天气粒子、服务器 xmas_snow 命令和正式场景过滤的逐分支审计;命令链与四张排除地图已有回归,但 SnowEnvironment 池、DayMode、filter/lens flare/wind、线性 fog 仍与 40250 不一致或缺失,故保持 PARTIAL。",
"fingerprints": {
"reference": "1cffc55eb356a522049e4f7bc36595ea968ad1e0ccd7780486064a3e250cc36b",
"implementation": "dfc0fe4b13645b06daeea26f517d813a8c8ebb4cfcb2db19ebe2ee7e8f573c7c",
"tests": "05fd8d3202d9774f7043311e8615e1210a09cc579f1346eb2fb9ebbfec339b5b"
"implementation": "81e6a81489baf9f90e830458212910db6feaa713508d173236d2d255446aae53",
"tests": "fa1ee00144332c33a93da2f94371a0b3602c46271356aa78b243d782aaa71c65"
}
},
{
@@ -4502,7 +4448,6 @@
"project/audio_miles_test.gd",
"project/ambience_test.gd",
"project/bgm_test.gd",
"project/test_bgm_jukebox_parity.gd",
"project/app_flow_lifecycle_test.gd",
"project/system_option_ui_test.gd",
"project/rendering_scenario_test.gd"
@@ -4513,13 +4458,14 @@
"验证真实 3D 播放实例不会绕过 master SFX,并补设备/实例路径的后台静音回归",
"验证 BGM 多实例淡入/限幅淡出/全量淡出/加载失败回滚状态机",
"验证 3D attenuation、实例池耗尽、远端动作音效和完整销毁顺序",
"验证流式地图快速切换、环境声来源删除和退出时无悬挂播放器"
"验证流式地图快速切换、环境声来源删除和退出时无悬挂播放器",
"2026-09-22 删除了只被自身测试引用的 *_system.gd 及其 test_*_parity.gd;原来引用它们的实现/证据不再成立,需按 40250 源码单元重新移植"
],
"notes": "已完成首轮逐分支审计;基础音量/监听器/环境声/动作音效路径存在,后台 BGM/SFX 同时静音恢复与退出 Audio 缓存清理已有回归,但 Miles 实例池和 BGM 逐帧状态机仍不等价。",
"fingerprints": {
"reference": "1a8a9232bcc63724814d15df99f211ddfe67a28fcb2052bb4c84ad79373bdfef",
"implementation": "f4c3fed1f7cbf08c1032c536927a689a9a1b71b1c431de2afb3c0041ee577315",
"tests": "a7ca9e4555b71f92776b56669a0b74e443dc2aaab78a2f208c86f9fc4bc75bfc"
"tests": "96a0171f670842fc52b665ae9fcae3cb30ef0046ef147836ca7f586e21646aab"
}
},
{
@@ -4618,13 +4564,7 @@
"symbols": []
},
"implementation": {
"files": [
"project/offline_bazaar_market_system.gd",
"project/mail_system.gd",
"project/dynamic_bounty_event_system.gd",
"project/dragon_soul_system.gd",
"project/solo_guild_domain_system.gd"
],
"files": [],
"symbols": []
},
"equivalence": {},
@@ -4635,11 +4575,11 @@
"last_test_result": "NOT_RUN"
},
"remaining": [],
"notes": "完整功能清单首批合同;尚未完成 40250 逐分支等价审计。",
"notes": "2026-09-22 所列当前端独有功能(*_system.gd,仅被自身测试引用)已全部删除;按 SKILL.md,没有 40250 对应的逻辑属于缺陷,不再在此登记新条目。",
"exclusion_reason": "在指定 40250 ClientVS22 source 中没有可达对应行为;记录该当前端扩展以防止漏审,但不计入 40250 等价率。",
"fingerprints": {
"reference": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"implementation": "fdaf946a6bffa5e914dfe7f40c2bbd42dc00e64d43e60231e9290021f14cbba2",
"implementation": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"tests": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
}