From 8038b46aec1cf7358353cc14314c37ae983aa830 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Thu, 8 Oct 2026 13:57:31 +0200 Subject: [PATCH] retire-longinusx: a record names the retiring ones only by a whole string, not by a substring The first dry run was refused by NameFile USA, whose name list holds longer strings containing the words. A reference is a string equal to the id or the name. Co-Authored-By: Claude Sonnet 5.5 --- tools/AetherDb/Program.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/AetherDb/Program.cs b/tools/AetherDb/Program.cs index 4c2c40d7a..07e931f3e 100644 --- a/tools/AetherDb/Program.cs +++ b/tools/AetherDb/Program.cs @@ -1116,8 +1116,9 @@ public static class Program return 1; } + // A needle is the whole serialized string: a name inside a longer string (a name list entry) is not a reference. var needles = doomed.Select(d => d.Key.Value).Concat(new[] { "LonginusX", "Traction" }) - .Select(System.Text.Encoding.UTF8.GetBytes).ToArray(); + .Select(text => MessagePack.MessagePackSerializer.Serialize(text)).ToArray(); var doomedKeys = new HashSet(doomed.Select(d => d.Key.Value)); var named = 0; foreach (var other in stored.Where(d => !doomedKeys.Contains(d.Key.Value)))