Commit graph

1684 commits

Author SHA1 Message Date
Doxa Maps
4de20daed6 P assembly: the last census lines, stated neutrally
The census on the assembled branches still found eleven comments that attributed a choice to a dated
request, quoted it, or spoke in the first person: pplr-data-maps (geocoder, pin card, pin indicator, tree,
families, religion, semantic trees), research-dashboard's ramp note, upg-100-list's funnel note, and two
dated QA tags each in countries-map and research-map. Comments only; behaviour unchanged.
2026-10-01 00:57:41 +00:00
Doxa Maps
e7a1c940ef P: merge 202a0244e 2026-10-01 00:56:03 +00:00
Doxa Maps
95a84b7775 P: merge 087e852c4 2026-10-01 00:56:03 +00:00
Doxa Maps
241e37b3c6 P: merge fd325336c 2026-10-01 00:56:03 +00:00
Doxa Maps
0f7d69918c P: merge bba382d9a 2026-10-01 00:56:02 +00:00
Doxa Maps
ab4461d46b P: merge e0ca45d6b 2026-10-01 00:56:01 +00:00
Doxa Maps
5a4611d291 P: merge af5ed4c27 2026-10-01 00:56:01 +00:00
Doxa Maps
6a8f6f6804 P: merge c1a2f3698 2026-10-01 00:56:01 +00:00
Doxa Maps
ea6ba0e126 P: merge 3aa3d8dde 2026-10-01 00:56:00 +00:00
Doxa Maps
a204752597 P: merge 2c397d25e 2026-10-01 00:55:59 +00:00
Doxa Maps
202a0244e2 Privacy: neutral comments in Country Posters (no quotes, date tags or agent names)
Comments only; behaviour unchanged. Each rewritten line keeps its technical fact and drops the attribution:
- design-note and brief quotations restated as plain design statements (country-poster-wall.vue, index.js,
  countries-map.vue);
- "(qa: <date> …)" tags and "user feedback / user reported" attributions removed (countries-map.vue);
- fleet agent names replaced by what was measured (countries-map.vue, country-posters-mfe.vue);
- series.json's India-state note: the approval date is gone; the wording stays the editable default.
2026-10-01 00:51:05 +00:00
Doxa Maps
087e852c4e Prayer Progress: the basemap-label comment states its reason without a pointer
Comments only. The pointer named a document that is not in the repository; the
reason is already stated in the sentence before it.
2026-10-01 00:49:02 +00:00
Doxa Maps
d8107decba Prayer Progress: comments state the reason, not who asked or when
Comments only. Eleven comments in doxa-simple-map.vue carried an agent name, a
"user request" / "user feedback" attribution, or a dated QA tag; each now keeps
its reasoning and drops the attribution and the date.

The built bundle changes only in the component's scope id (Vue derives it from the
source in production builds); every other token is identical, so behaviour is
unchanged. Source only: the assembler rebuilds.
2026-10-01 00:44:38 +00:00
Doxa Maps
2c397d25ef Source comments state design history and measurements as facts, without quoting or naming anyone
Comments in library/ and internal/ that quoted a person, attributed a decision to one, used first person,
named fleet agents or carried private host names now state the same technical fact in neutral words:
poster-render (including the comments it writes into generated posters), packet-render, the poster and
research scripts, PosterWall, DataTable, the legends, the layouts and the gates. The network-policy note
states the policy itself. Behaviour is unchanged: a few printed gate messages and reason labels drop an
agent name, the poster-render integrity pin follows its comment-only edit, and series.json changes only in
its _meta and _why notes. The historical poster design snapshots (library/scripts/posters/snapshots/),
which nothing reads, are removed.
2026-10-01 00:37:17 +00:00
Doxa Maps
3aa3d8dde6 doxa-research-map: drop qa date tags from comments
Remove the private-process (qa: date) provenance tags from four
comments, keeping each technical fact. Comments only; behaviour unchanged.
2026-10-01 00:35:26 +00:00
Doxa Maps
2d172a7735 cities-internet + research maps: finish neutral comments
Scrub remaining internal role names, quoted directives, person-tied
dates and first-person phrasing from comments in connectivity-list.vue,
build-adm1-internet.mjs, research-map.vue and research-map-plus-grid.vue,
keeping each technical fact. Comments only; behaviour unchanged.
2026-10-01 00:33:19 +00:00
Doxa Maps
fd325336cc Regions dashboard: comments describe measurements without naming who took them 2026-10-01 00:24:01 +00:00
Doxa Maps
e0ca45d6b0 my-upg-100-list: neutral wording in comments and provenance notes
Rewrites comments and the underscore-prefixed notes in data/adm0/PROVENANCE.json
so they keep the technical fact without quoting anyone, naming process roles or
speaking in the first person. Comments and doc keys only: with comments (and
_-keys) stripped, every changed file is byte-identical to its parent.
2026-10-01 00:23:55 +00:00
Doxa Maps
bba382d9af Comments only: neutral wording in research-dashboard, pplr-data-maps and the Research Gallery
Quoted remarks, attributions and person-tied dates in comments become plain statements of the same
technical fact, and the names of internal tools and roles become neutral descriptions of the check that
was run. No code, markup or style changes: the rebuilt bundles are byte-identical apart from Vue's
scoped-style ids, which hash each component's source, comments included.
2026-10-01 00:23:12 +00:00
Doxa Maps
06a48a9b42 plugin-designs: neutral comments in shared/ownerless maps
Rewrite code comments across doxa-research-map, upg-neighbor,
research-map-plus-grid, rudder-voice, people-groups-grid, big-picture,
prayer-walk-planner and all-people-groups to drop internal role names
from measurement and provenance notes, keeping each technical fact.
Comments only; behaviour unchanged.
2026-10-01 00:22:13 +00:00
Doxa Maps
af5ed4c275 Gospel Resources and Gospel x Internet: comments state the technical facts in neutral terms, without attributions or agent names 2026-10-01 00:17:53 +00:00
Doxa Maps
c1a2f36983 Wall of People Groups: comments state what was measured without naming who measured it
Five comment lines in the Wall's sources named a fleet agent as the measurer. They now keep the
measurement and drop the name. Comments only; no behaviour changes.
2026-10-01 00:17:18 +00:00
Doxa Maps
35c68048e8 cities-internet, key-cities: neutral source comments
Rewrite code comments to drop quoted directives, person-tied dates,
internal process and role names, and QA run references, keeping each
technical fact intact. Comments only; behaviour unchanged.
2026-10-01 00:08:29 +00:00
Doxa Maps
1e300309c8 Country Posters: one poster for each of India's states and union territories
The unfiltered wall gains an "India — states and union territories" section: 34 cards, one per state or union
territory with people groups listed (from the shared india-states table, fetched and sha-checked only when the
section is shown), each with its poster, prayer packet and cards. Nagaland and Mizoram get a card saying no
unreached people groups are listed there, so no division silently disappears. A host's filtered wall
(countries/region) is unchanged and never loads the table.

src/indiaStateSheet.js draws a state's sheet through ONE path: its records by slug, its outline from the
ADM1 boundaries the renderer already loads (matched on shapeName; the shared collection is copied, never
mutated), India's hue, and the indiaState series ("India State Maps", map N of 34). Show on map for a state
frames India, since the countries map draws countries.

check:country-sheet-one-path grows the state arms: inside this plugin only the helper calls generateSheet,
the wall must use makeIndiaStateSheet, and over the served table + ADM1 file: 36 divisions, the 34 with groups
numbered 1..34 each with an outline, the rest named, the ADM1 collection unmutated. Self-test 10/10.
Rendered headlessly through poster-render for Gujarat (90 pins), Lakshadweep (1), Andaman and Nicobar (9):
the state's name as title, "India State Maps", its series position, no country-series text, no "Province".
2026-09-30 23:33:34 +00:00
Doxa Maps
3f7d489409 Merge remote-tracking branch 'origin/development' into poster-design-plugin/land 2026-09-30 23:12:35 +00:00
Doxa Maps
111c17d499 Poster Design: draw the sample country sheet through makeCountrySheet
The Styles tab called generateCountrySheet directly and built the country
without its region, so the sample would have printed in the old flat teal
while the Country Posters wall prints it region-hued. It now draws through
the one shared path (library/packet/countrySheet.js), which carries the
region and computes the series the way the wall does; the inline series
arithmetic is gone. check:country-sheet-one-path passes.
2026-09-30 22:54:56 +00:00
Doxa Maps
28cb482c79 Merge remote-tracking branch 'origin/development' into wall-of-people-groups-plugin/work 2026-09-30 22:49:32 +00:00
Doxa Maps
0e069e5aaf Posterverse: Poster Design's ids are confirmed, and composes declares it
poster-design/poster-design-mfe is the id poster-design-plugin ships, so its row
is no longer provisional, and posterverse.meta.json composes it. This commit
must land in the SAME push as the poster-design bundle: without the bundle the
ref is unresolved (check:capability-derived) and check:posterverse-shelf fails
arm D; with the bundle and without this commit, arm D fails the other way.
2026-09-30 22:42:05 +00:00
Doxa Maps
c394533fc8 Research Gallery: Poster Design joins Prayer Mobilization
Prayer Mobilization now reads Prayer Progress, UPG 100 List Posters, Country Posters, then Poster Design.
The row mounts the Styles + Sizes composite (bundle poster-design, profile poster-design-mfe), uses the same
tab id as the Posterverse shell, and carries the same label and subtitle in all 11 languages. As a curated
row it never appears on the Experimental shelf.
2026-09-30 22:42:05 +00:00
Doxa Maps
855e89db65 Poster Design: a new plugin with Styles and Sizes tabs
Every poster template the library prints, in one place, so the designs
can be compared side by side and handed to an agent by name.

- poster-design-mfe: the two-tab element (capability 4), the same shape
  as country-posters-mfe: the shared ViewSelect over Styles and Sizes,
  each tab its own element, one ShareButton for the composite.
- poster-styles: the library's PosterWall, one card per configuration
  (src/templates.js: country map sheets at each format, the packet page,
  the packet variants, every card stock, the Bless wall panels, the map
  print). Through PosterWall's host seams the header sticker reads "Show
  full details" and opens a dialog with the configuration name, size,
  file size, settings, sample and renderer, and each thumbnail is drawn
  from the library with sample data (Nepal) when it comes into view.
  Templates the gallery cannot draw yet say which part is missing. The
  dialog fits a phone (border-box), and in Arabic its file size and the
  configuration name stay whole (LRI…PDI isolates).
- poster-sizes: waits for the shared size table rather than keeping a
  second list of sizes.

check:poster-design-catalogue (gates:pre) keeps the catalogue true: its
sheet formats match poster-render FORMATS, names are unique, the card
entries are card-render STOCK, its keys exist, the sample can be drawn.
2026-09-30 22:42:05 +00:00
Doxa Maps
68ba3b3402 Posterverse: poster plugins only
UPG Neighbor and All People Groups leave the Experimental folder: they are
research maps, and Posterverse holds the plugins whose purpose is posters.
Experimental is now Wall of People Groups (and Bible Posters once it exists).
Their labels, composes refs and heavy-tag entry go with them; the shelf gate's
allow-list and its self-test follow. The Research Gallery is unchanged.
2026-09-30 22:35:34 +00:00
Doxa Maps
7f2dec8600 Wall of People Groups: the Bless poster takes the house poster style, full width, with nothing clipped
The poster now reads like the UPG 100 List posters (poster-render's approved template):
- warm paper, hairline rules instead of black boxes and sidebars, Georgia for the title and the scripture;
- the sans for names and labels, tracked capitals for the small labels, and the purple ink for every
  scripture reference;
- a quiet boxed centrepiece in the journey.
The screen canvas draws the same paper and ink, so the wall still shows what prints.

Layout:
- The header, the chart, the grid and the footer share ONE full content width and ONE inner padding, so
  text edges and rules line up. The subtitle, the blessing's intro lines and the closing line no longer
  wrap inside an 80% column.
- The grid's spare height is shared equally above and below it (it pooled as one gap above the footer),
  and a gap now separates the chart from the first row.

Fixed, measured on the print in en and ar at every size (0 clipped text blocks, was 12-15):
- the Old/New Testament rail labels overran their rows;
- the longest verse cell overran its row (the chart's verse size now fits its longest cell);
- the title's descenders were clipped;
- two real names were cut by the line clamp (0 of the live 2,107 now): a name's lines are counted by
  whole words, and a long name may take four lines at the floor size.
2026-09-30 22:32:56 +00:00
Doxa Maps
1d2b29d6b5 Merge origin/development into studio/land-pd-seam 2026-09-30 22:23:58 +00:00
Doxa Maps
323283a43c Merge origin/development (32715a5cc) into upg100/india-states; package.json keeps both sides' gates; rebuild my-upg-100-list from the merged source, and regenerate the tree and SRI 2026-09-30 22:17:44 +00:00
Doxa Maps
3f23274a30 Merge origin/development (f8de00edf) into upg100/india-states; package.json keeps both sides' gates; rebuild my-upg-100-list from the merged source, and regenerate the tree and SRI 2026-09-30 22:11:30 +00:00
Doxa Maps
332aa002f8 Wall of People Groups: the Bless poster takes its sheets, glue bands and marks from PanelSheets, byte for byte
blessPoster.js now plans its 5 x 8 ft sheets, finished size, screen layout, glue band, trim line and sheet
tags through library panelSheets.js instead of its own copy. The print HTML, the screen layout and the plan
are unchanged: hashed for 3 presets and the default in all 11 locales (44 cases), before and after, all
identical; a 0.001 in change to the glue label moves all 44.

check:panel-sheets (gates:pre, headless) pins both geometries (60x96 stacked, 66x66 side by side, one
sheet; glue and bleed):
- the sheets tile the finished poster;
- glue slices tile it, and bleed slices repeat exactly the join;
- a bleed join prints a guide, not a solid band, and a screen preview always shows the red band;
- the Bless 5x8ft takes its bands and marks from the module.
It is two-sided: 4 planted defects are caught, and the Bless arm fails on the old private copy.
2026-09-30 22:03:40 +00:00
Doxa Maps
b0d0fcaf91 seriesFor: state that every no-sheet country shares one series, and gate it
A second country without a sheet size would silently join India's oversized
series and print India as "map 1 of 2". The comment now says so, and
check:country-sheet-one-path fails when more than one country has no sheet,
naming them, so that change is a decision rather than drift. Its self-test
plants a second one (China) and requires the arm to fail.
2026-09-30 21:57:25 +00:00
Doxa Maps
ffbb07e4a4 Country Posters wall draws its sheets through makeCountrySheet
The wall had its own inline wrapper around generateCountrySheet, a second
copy of @map/packet/countrySheet.js, which the Regions tab uses. Two copies
of one wrapper drifted twice (a teal Regions print, then India's series). The
wall now calls makeCountrySheet with the same country list, still handing it
the data's own English record rather than the localized card.

Behaviour: identical sheets for every country with records; a country whose
records come back empty now yields no sheet (the wall falls through to its
stored preview), as the Regions tab already did.

check:country-sheet-one-path (in gates:pre, with a self-test) parses every
plugin source: a direct generateCountrySheet call fails, every
makeCountrySheet call must pass the series list, both known callers must be
found, and seriesFor gives named answers over the real data (India 1 of 1,
each 3x3 country N of 173, an absent code no series). It fails on
development c4655072a for all three defects.
2026-09-30 21:57:25 +00:00
Doxa Maps
47a856c144 Merge origin/development (939db5b6c: P0 landed, posterverse, csv-guard) into upg100/india-states; package.json keeps both sides' gates; rebuild my-upg-100-list from the merged source, and regenerate the tree and SRI 2026-09-30 21:49:47 +00:00
Doxa Maps
f8de00edf7 Merge remote-tracking branch 'origin/development' into wall-of-people-groups-plugin/work
# Conflicts:
#	package.json
2026-09-30 21:47:28 +00:00
Doxa Maps
939db5b6c7 Merge origin/development (e9805a5c8: csv-guard, posterverse) into upg100/batch-select; package.json keeps both sides' gates; rebuild my-upg-100-list from the merged source, and regenerate the tree and SRI 2026-09-30 21:42:50 +00:00
Doxa Maps
ba8dfad628 UPG-100 batch selection: an India state or union territory now finds its people groups, from the served states table (fetched only once a state is selected, warmed on selection); China's provinces stay named as missing until they have a table. The gate asserts the wiring 2026-09-30 21:33:43 +00:00
Doxa Maps
39ded339fa Merge upg100/batch-select (P0 batch selection, 2bf2607fc) into upg100/india-states: P0b's India detection builds on P0's selectionPeople. package.json keeps both new gates 2026-09-30 21:33:24 +00:00
Doxa Maps
5a6b226a19 Posterverse: a capability-5 app shell for every poster plugin
<posterverse-app> is a vertical-tab rail of whole poster plugins, each mounted
as its real element from the manifest: UPG 100 List Posters (upg-100-mfe),
Country Posters (country-posters-mfe), Poster Design, and an Experimental
folder of Wall of People Groups, All People Groups, UPG Neighbor and Bible
Posters. It reuses VerticalTabsLayout, loadScriptOnce/whenTagDefined and the
Research Gallery's profile-config contract (urlSync:false, mapTitle, token
ladder, treeBase, assetsBase).

The whole rail is an allow-list (src/tabs.js), so a gated plugin such as
key-cities can never appear. Rows whose bundle is not in the tree are pruned;
Poster Design and Bible Posters carry provisional ids until their bundles land.
meta.json declares nested-mfe-spa and composes the five rows that exist, so
the Plugin Studio lists it under capability 5.

check:posterverse-shelf (in gates:pre) asserts the allow-list, the key-cities
exclusion, composite-not-leaf resolution, composes/rail agreement and
11-locale string parity; --self-test plants one defect per arm.
2026-09-30 21:32:51 +00:00
Doxa Maps
db1e6c978f Wall of People Groups: the wall pans and zooms with the pointer, 1:1
d3-zoom on a canvas reports its transform in the canvas's own CSS px, but the renderer applied it inside
the "meet" fit (a leftover from the SVG, whose viewBox made it world units). Every pan therefore moved
the wall by only the fit scale: a 200 px mouse drag panned 34 px at 1440, a 120 x 200 px finger drag
14 x 23 px on a phone, and a wheel zoom drifted about 90 px off the pointer. The transform now applies
after the fit, in Bless and Social mode alike.

Also: a trackpad pinch (ctrl-wheel) zooms the wall instead of falling through to a browser page zoom,
with a capped step; and a fling can no longer leave an empty table (the wall always covers the centre
of the view). check:wall-pan (gates:pre) runs the real WallCanvas methods with d3's transform
arithmetic and catches the old formulas.
2026-09-30 21:29:56 +00:00
Doxa Maps
307feab55c UPG-100 batch selection Copy: line 1 is a machine contract, so it carries the names apply-grouping resolves in every UI language (a country as its ISO3, a state as its shape name); the reader's names stay on line 2, in the HUD and the CSV. The gate runs apply-grouping's own dry run on an Arabic selection, with a negative control 2026-09-30 21:19:02 +00:00
Doxa Maps
79b949cb24 WIP P0b: India's states and union territories table (derived from admin-membership, served as an asset, sha384-pinned in the same emitter run), its loader, the tree allowlist row, and check:india-states (not yet registered) 2026-09-30 21:17:28 +00:00
Doxa Maps
ee955bac5a UPG-100 batch selection CSV: also neutralise a leading TAB or CR (OWASP's full list of formula triggers), asserted by the gate 2026-09-30 21:04:51 +00:00
Doxa Maps
03af1d87b5 Merge origin/development (8d968ed0d, slot 2) into upg100/batch-select; rebuild my-upg-100-list from the merged source, and regenerate the tree and SRI 2026-09-30 20:55:38 +00:00
Doxa Maps
0f824f24cf UPG-100 batch selection: release Copy / Export CSV's last-text hooks with the map's other window hooks on unmount 2026-09-30 20:54:55 +00:00