From 7c16ad8627953824863c57913d44882556d3840a Mon Sep 17 00:00:00 2001 From: Senrokai Date: Fri, 21 Aug 2026 15:41:38 +0200 Subject: [PATCH] Answer the review: a null byte in the source, and a language that may not be there MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two findings, and the first is the kind a person does not catch. The article cache keyed on `${name}\0${qualifier}` — with the null byte written into the file rather than escaped into the string. Git calls a file with one of those binary and stops diffing it, and every editor between here and a reader does something different with it. The separator was the right idea, because a name can contain a space and `("Kepler-22 b", none)` and `("Kepler-22", "b")` are different questions; it just has to be spelled `\0`. And `navigator.language` is optional in the DOM's own typings and missing in some embedded engines, where splitting it would have thrown on the first press of About rather than falling back to English. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_016jxMkwA2rbicdGxHosecYi --- src/app/core/data/article.service.ts | Bin 5252 -> 5528 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/app/core/data/article.service.ts b/src/app/core/data/article.service.ts index a6bbbcc226e41ac5446c36840760d7f890f357db..9ec7f45f65567a4306976f0123c15d07b78574d9 100644 GIT binary patch delta 314 zcmYk2F;2rk5Je><3*nxE?&BsgI1Wk~38kS!h=LLd&w7W=O7^btu8C4X!41+NPJxtL zaf*yn(T)Dh{P$Os2sgpL(%tTL(U9jxPlGvU9{d&1M3jijJwANG**F} z2C2XKG!exfi5JgwRpVODP-)sHN>_97)LDaUpnA)9jwRhWpuK0hJZP2E=}FnqMW2 w&Z}eQ|8v=_K&CS3Z2Zt@_z}6WfuZ<#Y#3>81BdYkVs2_J!{&9| GuQ&k-Iuh3a