Files
gods-eye-view/changelog.d
Said Turksever db80d82b8d Add the Data Library: live regional datasets, tiles and packs
DATA LAYERS keeps its curated core layers; regional and niche sources
live in the Data Library, opened from Browse data library at the foot
of the panel. Each entry is a JSON manifest in src/library/entries/
pointing at a live upstream (query API, provider-hosted file or tile
endpoint), so nothing is bundled and a self-hosted instance hosts no
data. Sources without CORS go through one allowlisted /api/library
route. Kinds: dataset (GeoJSON, CSV, JSON records, ArcGIS, partitioned
GeoParquet), tiles (XYZ, WMS/ArcGIS bbox export, terrarium relief) and
pack. Selections persist and travel in share links as lib=, separate
from the core layer tokens. Library rows get Zoom and Remove icon
chips that work while the layer is off, rendered through RailChips.
Strings are translated in every locale.
2026-11-12 12:26:45 +00:00
..
2026-10-29 15:22:15 +04:00
2026-10-29 17:06:00 +04:00
2026-10-29 17:55:31 +04:00
2026-10-29 19:01:00 +04:00
2026-10-29 19:48:33 +04:00
2026-10-29 20:05:56 +04:00
2026-11-09 14:41:36 -06:00
2026-11-08 13:47:03 +01:00

Changelog fragments

One file per entry. A pull request adds a file here instead of editing CHANGELOG.md, and a release concatenates them into it.

changelog.d/<pull request number>-<slug>.md

723-atc-decision-layer.md, for example. The slug is lowercase, words separated by -. Two pull requests never pick the same filename, because the pull request number is already unique — which is the point: new CHANGELOG.md entries go at the top of the file, so two pull requests in flight write into the same few lines and git has nothing to merge on.

Write the file exactly as the entry should read in CHANGELOG.md: a - bullet, wrapped the way the surrounding entries are, crediting yourself and the pull request.

- Report which upstream declined a Street Traffic road load. The layer row now
  reads `Overpass rate-limited` instead of a general "Road data temporarily
  unavailable" (yourname, #665).

The text is spliced in unchanged apart from trailing whitespace, so what you write here is what ships. Fragments are deliberately outside scripts/format-scope.json, so npm run format never reflows one.

At release time:

npm run changelog:check   # list what would move, change nothing
npm run changelog         # move every fragment into CHANGELOG.md

The assembler refuses a batch rather than guessing: a filename that is not <pull request>-<slug>.md, or two fragments claiming one pull request number, stops the run before anything is written and names the files.

If npm run changelog fails part-way (a full disk, a killed process), run it again. The batch is staged in changelog.d/.assembling/ and only lands when the assembled file replaces CHANGELOG.md in a single rename, so the rerun either finishes that batch or puts its fragments back first. It never adds an entry twice or drops one. npm run changelog:check names a staged batch, if one is left over, instead of reporting past it.

A documentation claim that needs a regression test — the way src/annotations/drawTool.test.mjs asserts against CHANGELOG.md — should assert against docs/CURRENT-STATE.md or README.md instead. A pull request still edits those directly, so the text is in the file while the change is under review; a fragment does not reach CHANGELOG.md until release.