fix: identity-check name resolutions across the pasted closure; exclude the catalog from i18n pairing
Review findings on the config catalog: The transitive-paste closure deduplicated by bare name, so two DIFFERENT package-local declarations sharing a name would silently collapse to the first one pasted — and a reference satisfied by the wrong declaration is a wrong catalog, not just a thin one. Every resolution is now identity-checked by source pointer: reaching the same declaration again is benign, while a name that resolves to two distinct declarations, to conflicting imports, or to a declaration in one file and an import in another is a violation — a verbatim fence has a single flat namespace, so the fix is a rename at the source. A spec case pins the two-declarations collision. docs/config-catalog.md also joins the translation-pairing exclusions: it is a generated English-only doc, and without the entry the gate would accept a hand-added .zh.md twin it must reject.
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
"excluded": [
|
||||
"docs/AGENTS.md",
|
||||
"docs/module-graph.md",
|
||||
"docs/config-catalog.md",
|
||||
"docs/cordis-catalog/",
|
||||
"docs/tool-catalog/",
|
||||
"docs/persistence-catalog/",
|
||||
|
||||
Reference in New Issue
Block a user