dedup.py removes a copy only when another file has the same SHA-1 and
the same name, keeping the higher-priority path, so resolution by hash
still finds the content. Verified rather than assumed: all 17268
manifest entries ship the same bytes as before, no destination gained
or lost, only the source paths consolidate. Every deleted path's content
is still held elsewhere.
12.1 MB and 48 empty directories go with them. The index and the
published artefacts are regenerated on top.
Thirty profiles from the ES-DE batch, each source-verified by the
session that wrote it and passing the schema and semantic checks. Five
declare no files at all and say why in notes referenced to the code:
NGP.emu, openbor, Plastic, Swan.emu and XeniOS.
Twenty-eight files come with them, every one declared by the profile
that needs it and matching the hash it declares, with no duplicate of
anything already held: the NetherSX2 Turnip Classic assets, the Speccy
machine ROMs, the Virtual Boy homebrew the app bundles, Snes9x EX+'s
bundled game, and sixtyforce's Overrides.plist, which carries a size
and no hash because the binary never checks one.
supermodel gains the four data files it reads from its install tree,
hakux marks its controller map unsourceable now that the asset manager
is known to read inside the package, and nethersx2 sheds the two core
aliases that belong to the Turnip profiles.
bios/Other/NXEngine/Doukutsu.exe held a build whose sha1 contradicts the
one the profile declares, and it is what the RetroArch, Lakka and
RetroPie manifests ship at nxengine/Doukutsu.exe. The core opens this
binary at every launch to extract the ORG music, the PXT sounds, the
stage tile attributes, the credit bitmaps and the wavetable, so the
build matters.
The collection already held the right bytes: data/nxengine, refreshed
from the buildbot's own NXEngine asset, carries a copy matching both
declared values exactly. Same size, different build. The previous one
is kept in .variants/ under its hash; nothing declared it.