|
Some checks are pending
build-gate / build (push) Waiting to run
Driver: 'if I search the name of the country and add n to it, like Austrian or Canadian, I would like for there to be a selection of that country -- the table under the map shows the result for that country.' Three changes, one ladder: 1. resolveFuzzyValues(): WHOLE-VALUE Levenshtein against the DISTINCT values of every search key -- 'Sudann' is a misspelling of the VALUE 'Sudan', so the rows returned are exactly Sudan's, identical to picking it as a Place. The windowed matcher stays only as the final rescue tier. 2. Best match wins: only the minimal-distance value(s) resolve. The under-the-cap union admitted 47 rows for 'Canadian'. 3. Both fuzzy tiers cap at 2 edits absolute (the did-you-mean bound); threshold*len alone reached 3 errors at 8+ chars, which is where the cross-facet noise lived. Measured (dashboard scope / grid count agree): Sudann -> 105/105 Sudan only; Indonesa -> 36/36 Indonesia; Banladesh -> 3/3 Bangladesh; Bhutann -> 13/13 Bhutan; exact terms unchanged (tier 1). NOTE: Canada/Austria themselves have NO rows in this dataset (it holds only the 175 countries with unreached people groups), so 'Canadian'/'Austrian' cannot select them -- a handful of genuine 2-edit neighbours return instead. Also ships @map/composables/retryableAsyncComponent.js wired at every defineAsyncComponent site (ProfileLoader chokepoint + 8 lazy components): a transient ERR_NETWORK_CHANGED no longer permanently kills a lazy plugin (3 retries, growing backoff). Live fault-injection proof pending; the wrapper is the documented Vue onError contract. |
||
|---|---|---|
| .. | ||
| charts | ||
| hints | ||
| legends | ||
| map-controls | ||
| poster | ||
| qa | ||
| search | ||
| tables | ||
| PeopleGroupDetail.vue | ||
| README.md | ||
| ResearchMapFilterPanel.vue | ||
| ResearchMapSideMenu.vue | ||
| SideMenuDrawer.vue | ||
| ViewSelect.vue | ||
| WARNING.md | ||
library/components/ — shared Vue components
The map UI, built from parameterized pieces every app-profile reuses. Fix one here and every map benefits — never edit a shared component to customize one map.
library/components/
┌───────────────────────────────────────────┐
│ legends/ map-controls/ poster/ │
│ charts/ tables/ │
│ PeopleGroupDetail.vue SideMenuDrawer.vue │
│ ResearchMapFilterPanel.vue …SideMenu.vue │
└───────────────────────────────────────────┘
reused by every app-profile via @map/components/…
legends/,map-controls/,poster/each have their own README.- Every component uses
<script setup>, callsuseShadowStyles(), and reaches stores viainject('mapStore' | 'uiStore' | 'dataStore')— never a direct store import.
Full catalog + conventions:
../../documentation/architecture/components.md ·
per-file roles: ../../documentation/reference.md.