From 17c4100d3076542f369382627d05c15578de0017 Mon Sep 17 00:00:00 2001 From: Doxa Maps Date: Mon, 28 Sep 2026 13:38:32 +0000 Subject: [PATCH] Update from source 43130aa40 --- documentation/CONTRIBUTING.md | 6 ++ internal/check-hardcoded-english.mjs | 19 +++++- .../gospel-resources/resources-map.vue | 6 +- .../src/views/pplr-language-families.vue | 13 ++-- .../src/views/pplr-rop-tree.vue | 13 ++-- .../src/views/pplr-rosetta-cards.vue | 6 +- public/dx-maps/doxa-maps-spa/manifest.json | 16 ++--- .../gospel-resources/charts/index.html | 2 +- .../gospel-resources/data-tables/index.html | 2 +- .../gospel-dashboard/index.html | 2 +- .../gospel-resources/gospel-resources.js | 26 +++---- .../resources-list/index.html | 2 +- .../gospel-resources/resources-map/index.html | 2 +- public/dx-maps/manifest.json | 16 ++--- .../dx-maps/pplr-data-maps/pplr-data-maps.js | 68 +++++++++---------- .../pplr-data-maps/pplr-data-maps/index.html | 2 +- 16 files changed, 114 insertions(+), 87 deletions(-) diff --git a/documentation/CONTRIBUTING.md b/documentation/CONTRIBUTING.md index f42d5198..7818461d 100644 --- a/documentation/CONTRIBUTING.md +++ b/documentation/CONTRIBUTING.md @@ -53,6 +53,12 @@ it (script tag or the generated per-map page). Same-origin vs external-CDN modes - Never bake tokens or data into a bundle — everything arrives at runtime via `profile-config`. - Before a PR: `bun run build && bun run verify` must pass (adds drop-portability + parse gates). - Colors are values, not logic: [documentation/contributing/COLORS.md](./contributing/COLORS.md). +- A landing that changes source AND its build output arrives as **two commits in one push**: the source + change first, then a `rebuild ` commit carrying only `public/`. Reviewers read the first; the + second is machine output. Don't split them across two pushes: the landing check rebuilds every affected + bundle on the commit about to reach main and refuses one whose `public/` bundle no longer matches its + source. Exempt: a `public/`-only rebuild after someone else's source landed, and a comment-only source + change (comments are stripped from the build, so there is no `public/` half). ## One-line recap diff --git a/internal/check-hardcoded-english.mjs b/internal/check-hardcoded-english.mjs index bd1018e8..86c16eae 100644 --- a/internal/check-hardcoded-english.mjs +++ b/internal/check-hardcoded-english.mjs @@ -541,6 +541,15 @@ const leaks = findings.filter((f) => !f.deliberate) // check "fixed". gospel's corollary is that the reader cannot check what the writer did not say, so // the tool says it: any number quoted from this output carries the tree it was measured on, and a // dirty tree is marked because then the sha alone does not describe what ran. +// +// ★ AND IT PROVED ITSELF WITHIN THE HOUR, in the case that justifies it better than the one it was +// built for. gospel and I compared counts and disagreed — 185/169/155 against 178/168/147 — and +// spent the exchange assuming one set was stale. Neither was: SAME SCRIPT SHA, DIFFERENT SOURCE +// TREES, twelve scanned SFCs apart. Both numbers were honest measurements of different bytes. +// "7 production plugin(s), 19 SFC(s) scanned" describes the SHAPE of a scan and says nothing about +// WHICH BYTES, so two correct runs are indistinguishable in a report. The stamp is therefore not +// only for the writer who forgets to name a sha — it is what lets a READER tell two runs apart at +// all. When counts disagree, compare the tree line before anything else. console.log(`\n ${dirs.length} production plugin(s), ${files} SFC(s) scanned · tree ${treeStamp()}`) for (const f of leaks) console.log(` ${f.kind.padEnd(16)} ${f.file.replace(/^.*plugin-designs\//, '')} ${JSON.stringify(f.text).slice(0, 90)}`) if (deliberate.length) { @@ -551,8 +560,14 @@ if (deliberate.length) { for (const f of deliberate.slice(0, 8)) console.log(` · ${f.file.replace(/^.*plugin-designs\//, '')} ${JSON.stringify(f.text).slice(0, 80)}`) if (deliberate.length > 8) console.log(` · …and ${deliberate.length - 8} more`) } +// ★ THE STAMP GOES ON THE LINE PEOPLE QUOTE, not only on the header. gospel's qualification is that +// they investigated our mismatch because the ARITHMETIC WOULD NOT CLOSE — an eight-hit gap was too +// large to rationalise — and that a gap of one or two would have been shrugged off as drift. So the +// residual failure is a discrepancy SMALL ENOUGH TO EXPLAIN AWAY, and provenance in a header the +// quoter skips does nothing for it. The verdict line is the one that gets pasted into a report, so +// the tree travels with the number rather than three lines above it. console.log(leaks.length - ? `\nHARDCODED-ENGLISH: ${leaks.length} user-visible English string(s) not going through t()` - : '\nHARDCODED-ENGLISH: PASS — no user-visible hardcoded English in any production plugin') + ? `\nHARDCODED-ENGLISH: ${leaks.length} user-visible English string(s) not going through t() [tree ${treeStamp()}]` + : `\nHARDCODED-ENGLISH: PASS — no user-visible hardcoded English in any production plugin [tree ${treeStamp()}]`) process.exit(leaks.length ? 1 : 0) } diff --git a/plugin-designs/gospel-resources/resources-map.vue b/plugin-designs/gospel-resources/resources-map.vue index 60c73d1a..5442613e 100644 --- a/plugin-designs/gospel-resources/resources-map.vue +++ b/plugin-designs/gospel-resources/resources-map.vue @@ -2304,7 +2304,7 @@ useShadowStyles( : pinFilter === 'some' ? 'groups with some resource' : pinFilter === 'hnr' ? 'groups that can hear the gospel but have no text Scripture in the pools checked' : 'groups with Scripture and film' }}. - + @@ -2499,7 +2499,7 @@ useShadowStyles( either. @@ -2914,7 +2914,7 @@ useShadowStyles( Mandarin are not mutually intelligible, they share a written standard — and it changes no tier. The group still has nothing in its own variety. -->

- Nothing in {{ selectedGroup.language || 'this variety' }} itself — but ISO 639-3 + {{ t('gospel.related.nothingInItself', { language: selectedGroup.language || 'this variety' }) }} — but ISO 639-3 files it under the macrolanguage {{ selectedGroup.related.m }} together with {{ selectedGroup.related.l }}, which does have resources here.

diff --git a/plugin-designs/pplr-data-maps/src/views/pplr-language-families.vue b/plugin-designs/pplr-data-maps/src/views/pplr-language-families.vue index fa1bd8bb..e1041da7 100644 --- a/plugin-designs/pplr-data-maps/src/views/pplr-language-families.vue +++ b/plugin-designs/pplr-data-maps/src/views/pplr-language-families.vue @@ -1,6 +1,7 @@