You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The embeddings-refresh ping records its once-a-minute throttle before it asks GitHub, not after the download. A look that timed out or failed with an unexpected error used to leave no trace, so every following anonymous POST …/dre-data/embeddings-refresh sent another outbound request.
British spelling in the last American strings. The announcement after a chart loads reads "Visualisation ready." (it said "Visualization"), the maintenance notice after a withdrawal "Published visualisations withdrawn.", and the snapshot store's errors say "visualisation storage". The module's interface copy is British English, as the shared wording glossary of the DRE theme requires.
Added
npm run i18n:check (part of npm run check) and npm run i18n:extract fail on an American spelling in any catalogue string (visualiz…, organiz…, color, center, behavior and similar), so it cannot return. The names "DRE Visualizations" and the repository's stay as they are.
A unit test holds stops 1–6 of the categorical palette to the vendored --brand-* tokens, as the data-colour contract requires; nothing checked it before.
Changed
Checks that run code are tests now. The tooltip-formatter sweep, the registry contracts and the graph contracts moved from scripts/check-*.mjs into tests/js/ (npm test), and so did the treemap formatter's hostile-label run from check-html-safety.mjs, which keeps the static sink inventory. npm run check:formatters, check:registry and check:graph are gone; npm run check runs the same checks through npm test.
Rendered assertions instead of substring checks.check-accessibility-contracts.mjs keeps only the source policies (one spinner partial, the touch-target and status styles, map popups). The async-surface markup is now checked on the real partial rendered through PHP (tests/AsyncSurfaceTest.php), the loading, ready, empty and error states on core/async.js itself (tests/js/async.test.mjs), and the chart headings and toolbars on every rendered golden block in the browser suite. The two checks that pinned the dashboard's second state implementation are gone.
The PHP harnesses share one assertion helper, tests/lib/assert.php, instead of a copy of its own in each.
One loading, empty and error panel. The dashboards drew their own empty and error notices and set their busy state by hand beside the shared ns.asyncState (core/async.js) every other block uses; they now go through it, so a dashboard's "Try again" works like every other surface's (it is disabled once pressed) and its empty notice is the shared one. ns.asyncState gains a partial outcome for a dashboard with a broken chart. The orchestrator's inline-dashboard path (.dashboard-container with a data-dashboard attribute), which nothing has rendered for several releases, is removed.
Eighteen innerHTML = '' clears in the controllers use ns.setChildren instead; the reviewed innerHTML sink count drops from 43 to 25.
The heatmap's axis and cell labels no longer drop to 8–10 px on narrow screens: they stay at the smallest type token (--text-2xs, 11 px, THEME.fontSizeMin).
Documentation follows the split of the precompute into generators (CONTRIBUTING.md recipes, README, two code comments), docs/SECURITY_AND_PRIVACY.md explains why the full-text word counts are served publicly and how they are refreshed, and an AGENTS.md (with CLAUDE.md) gives coding agents the commands, gotchas and release steps. Neither ships in the release archive.
Precompute internals (no change to the generated data). The vocabulary terms the precompute reads are named once, in Precompute\Terms (Terms::IS_PART_OF, Terms::CLASS_ORGANIZATION, …), with Terms::isOrganisation() and Terms::isAffiliation() for the "dcterms:isPartOf to a foaf:Organization" idiom that was spelled out at every use. Runner takes one GeneratorPaths (GeneratorPaths::forGeneration()) instead of eight path strings that it packed into one again; it has ten parameters instead of nineteen. The snapshot of the golden corpus is byte-identical before and after.
Releases bump the version by npm version, not by hand.npm version <patch|minor|major> -m "Release v%s" writes package.json and package-lock.json, and its version hook (scripts/sync-version.mjs, as in DRE-theme) writes config/module.ini, CITATION.cff and the dated CHANGELOG section from the [Unreleased] notes, then npm commits and tags. docs/RELEASING.md describes it.