Split out of #75, which is otherwise closed. The sync completes and a character is in the module; this is the one item of its Done means that no machine can answer.
Why it stays a real check
Every duplicate resref resolves to exactly one blob in the merged manifest, and the client will happily sync a clean, internally consistent repository that contains the wrong texture. Nothing fails, nothing warns. The only symptom is a surface looking wrong in the world.
The rule under test is precedence, and it is inverted between us and upstream. #62 recorded it: module_haks is earliest-wins, upstream nwn_nwsync_write is last-added-wins, which is why the conformance comparisons feed specs reversed. assemble's positional order isMod_HakList order and sow_top is first. A wrong order still assembles, still verifies, still syncs.
Conformance cannot catch this either. It proves our bytes match upstream's for one hak; it says nothing about which hak should have won across eleven.
What to check
In-world, on the testing target, with a synced client:
The 13 cross-hak duplicate resrefs shared by sow_core_01 and sow_over_01 — bloodstain1.tga and friends. Earliest-hak-wins means sow_core_01 wins. Confirm the winning texture is the one that renders.
sow_top's 2DAs. sow_top is first in Mod_HakList, so its 2DA rows are the ones that must be in effect. Any row it overrides is visible in-game as a name, an icon or an appearance.
Enumerate the 13 first rather than trusting the count — crucible can list duplicate resrefs across the assembled spec set, and the list belongs in a comment here so the next person checks the same 13.
Done means
Each of the 13 identified, and each seen in-world as the earliest hak's version. sow_top's 2DA rows confirmed in effect against at least one override that is visible without a debug build.
If any of them is wrong, the bug is in precedence — assemble's spec order, or what sow-module CI passes it — not in internal/nwsync. The blob bytes are proven against upstream 2.1.2 (#59) and the whole zone verifies clean (#88).
Notes
Manual and stays manual: needs a published zone, a running server and a client. Content under test is module v0.2.1-rc1 against haks v0.2.1-rc1 and topdata v0.2.3-rc2.
Split out of #75, which is otherwise closed. The sync completes and a character is in the module; this is the one item of its **Done means** that no machine can answer.
## Why it stays a real check
Every duplicate resref resolves to exactly one blob in the merged manifest, and the client will happily sync a clean, internally consistent repository that contains the wrong texture. Nothing fails, nothing warns. The only symptom is a surface looking wrong in the world.
The rule under test is precedence, and it is inverted between us and upstream. #62 recorded it: `module_haks` is **earliest-wins**, upstream `nwn_nwsync_write` is **last-added-wins**, which is why the conformance comparisons feed specs reversed. `assemble`'s positional order **is** `Mod_HakList` order and `sow_top` is first. A wrong order still assembles, still verifies, still syncs.
Conformance cannot catch this either. It proves our bytes match upstream's for one hak; it says nothing about which hak should have won across eleven.
## What to check
In-world, on the testing target, with a synced client:
- The 13 cross-hak duplicate resrefs shared by `sow_core_01` and `sow_over_01` — `bloodstain1.tga` and friends. Earliest-hak-wins means `sow_core_01` wins. Confirm the winning texture is the one that renders.
- `sow_top`'s 2DAs. `sow_top` is first in `Mod_HakList`, so its 2DA rows are the ones that must be in effect. Any row it overrides is visible in-game as a name, an icon or an appearance.
Enumerate the 13 first rather than trusting the count — `crucible` can list duplicate resrefs across the assembled spec set, and the list belongs in a comment here so the next person checks the same 13.
## Done means
Each of the 13 identified, and each seen in-world as the earliest hak's version. `sow_top`'s 2DA rows confirmed in effect against at least one override that is visible without a debug build.
If any of them is wrong, the bug is in precedence — `assemble`'s spec order, or what sow-module CI passes it — not in `internal/nwsync`. The blob bytes are proven against upstream 2.1.2 (#59) and the whole zone verifies clean (#88).
## Notes
Manual and stays manual: needs a published zone, a running server and a client. Content under test is module `v0.2.1-rc1` against haks `v0.2.1-rc1` and topdata `v0.2.3-rc2`.
Refs #75, #62, #59.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Split out of #75, which is otherwise closed. The sync completes and a character is in the module; this is the one item of its Done means that no machine can answer.
Why it stays a real check
Every duplicate resref resolves to exactly one blob in the merged manifest, and the client will happily sync a clean, internally consistent repository that contains the wrong texture. Nothing fails, nothing warns. The only symptom is a surface looking wrong in the world.
The rule under test is precedence, and it is inverted between us and upstream. #62 recorded it:
module_haksis earliest-wins, upstreamnwn_nwsync_writeis last-added-wins, which is why the conformance comparisons feed specs reversed.assemble's positional order isMod_HakListorder andsow_topis first. A wrong order still assembles, still verifies, still syncs.Conformance cannot catch this either. It proves our bytes match upstream's for one hak; it says nothing about which hak should have won across eleven.
What to check
In-world, on the testing target, with a synced client:
sow_core_01andsow_over_01—bloodstain1.tgaand friends. Earliest-hak-wins meanssow_core_01wins. Confirm the winning texture is the one that renders.sow_top's 2DAs.sow_topis first inMod_HakList, so its 2DA rows are the ones that must be in effect. Any row it overrides is visible in-game as a name, an icon or an appearance.Enumerate the 13 first rather than trusting the count —
cruciblecan list duplicate resrefs across the assembled spec set, and the list belongs in a comment here so the next person checks the same 13.Done means
Each of the 13 identified, and each seen in-world as the earliest hak's version.
sow_top's 2DA rows confirmed in effect against at least one override that is visible without a debug build.If any of them is wrong, the bug is in precedence —
assemble's spec order, or what sow-module CI passes it — not ininternal/nwsync. The blob bytes are proven against upstream 2.1.2 (#59) and the whole zone verifies clean (#88).Notes
Manual and stays manual: needs a published zone, a running server and a client. Content under test is module
v0.2.1-rc1against haksv0.2.1-rc1and topdatav0.2.3-rc2.Refs #75, #62, #59.