project-nomad/admin
Chris Sherwood 9b84d3aa54
fix(maps): dedupe map sources by region so duplicate files don't blank the map
The map style names each source by its date-stripped region (both
"washington.pmtiles" and "washington_2025-12.pmtiles" -> "washington").
When an old and new copy of the same region are both on disk, the style
emitted two sources with the same key and duplicate layer ids, which
MapLibre rejects outright -- blanking the ENTIRE map, not just that region.

Old copies linger when a newer curated version installs (#634), so a user
who updates maps can silently lose all map rendering until the stale file
is removed by hand.

generateSourcesArray() now keeps only the newest file per region: a dated
build beats an undated legacy file, and between two dated builds the later
YYYY-MM wins. The skipped duplicate is logged. The style stays valid even
when stale files are present.

Complements #981, which removes superseded curated files on install. This
is the runtime safety net that also recovers installs already in the broken
state (which a cleanup-on-install alone can't reach).

Refs #634
2026-06-23 04:46:58 +00:00
..
app fix(maps): dedupe map sources by region so duplicate files don't blank the map 2026-06-23 04:46:58 +00:00
bin feat: curated content system overhaul 2026-02-11 15:44:46 -08:00
commands feat(supply-depot): opt-in automatic updates for installed apps 2026-06-23 04:46:52 +00:00
config feat(config): respect REDIS_DB env var for queue and transmit 2026-06-23 04:46:51 +00:00
constants feat(supply-depot): opt-in automatic updates for installed apps 2026-06-23 04:46:52 +00:00
database feat(supply-depot): add custom launch URLs for apps 2026-06-23 04:46:56 +00:00
docs feat(supply-depot): per-app onboarding docs, install fixes, and in-app Docs links 2026-06-23 04:46:47 +00:00
inertia fix(system): disable Update button while a service update is in flight (#931) 2026-06-23 04:46:56 +00:00
providers fix(kiwix): self-heal a missing or corrupt library XML on startup 2026-06-23 04:46:56 +00:00
public feat: switch all PNG images to WEBP (#575) 2026-04-03 14:26:50 -07:00
resources feat(Maps): regional map downloads via go-pmtiles extract (#780) 2026-05-20 10:16:00 -07:00
scripts fix(supply-depot): correct Meshtastic Web internal port (80->8080); add catalog port audit script 2026-06-23 04:46:46 +00:00
start feat(supply-depot): add custom launch URLs for apps 2026-06-23 04:46:56 +00:00
tests fix(security): harden assertNotPrivateUrl with ipaddr.js + host normalization 2026-06-23 04:46:55 +00:00
types feat(supply-depot): add custom launch URLs for apps 2026-06-23 04:46:56 +00:00
util feat: display model download progress 2026-02-06 16:22:23 -08:00
views feat: initial commit 2025-06-29 15:51:08 -07:00
.editorconfig feat: initial commit 2025-06-29 15:51:08 -07:00
.env.example feat(config): respect REDIS_DB env var for queue and transmit 2026-06-23 04:46:51 +00:00
ace.js feat: initial commit 2025-06-29 15:51:08 -07:00
adonisrc.ts feat(GPU): auto-remediate nomad_ollama passthrough loss on admin boot (#755) 2026-05-20 10:16:00 -07:00
eslint.config.js feat: openwebui+ollama and zim management 2025-07-09 09:08:21 -07:00
package-lock.json chore: align package license with Apache-2.0 and fix README docs links/typos 2026-06-23 04:46:50 +00:00
package.json chore: align package license with Apache-2.0 and fix README docs links/typos 2026-06-23 04:46:50 +00:00
tailwind.config.ts feat: initial commit 2025-06-29 15:51:08 -07:00
tsconfig.json feat: initial commit 2025-06-29 15:51:08 -07:00
vite.config.ts fix(Maps): ensure proper parsing of hostnames (#640) 2026-04-03 14:26:50 -07:00