Диагностика офлайн-копии

Скопируйте этот текст и пришлите его при сообщении об ошибке.

MapEmbed debug

Стенд проверяет provider/source и renderer отдельно. Контракт auto | maplibre | embed существует, а новый production-v2 renderer возвращает исторический OpenFreeMap Bright/Fiord online и держит first-party local style как fallback. Registry cutover и global auto → MapLibre включаются только после проверки этого fixture.

Registry-backed Google My Maps → staged auto

MID зарегистрирован в offlineMapRegistry, но текущий renderer="auto" пока сохраняет исходный Google iframe онлайн. Registry-backed /map-renderer/ остаётся cold-offline fallback до cutover.

Auto пока: Google онлайн · first-party MapLibre офлайн Открыть отдельно
network
unknown
forced
auto
renderer
auto → embed
iframeCreated
false
iframeLoaded
false
offlineSource
registry
regions
belgrade
SerbiaMap
true
defaultMap
true
activeSource
none
render
checking

Production v2 → explicit MapLibre

Этот fixture направляет renderer="maplibre" прямо на /map-renderer-v2/. При сети должна загрузиться Bright/Fiord; при external style error, timeout или потере сети тот же renderer обязан перейти на local first-party style, заново прочитав regional Cache Storage. Тематические layers и interactions после style.load должны сохраниться.

MapLibre v2: OpenFreeMap online · first-party local fallback Открыть отдельно
network
unknown
forced
auto
renderer
maplibre → maplibre
iframeCreated
false
iframeLoaded
false
offlineSource
explicit
regions
belgrade
SerbiaMap
true
defaultMap
true
activeSource
none
render
checking

Текущий registry renderer → explicit MapLibre LKG

Контрольный экземпляр использует текущий registry /map-renderer/. Он нужен как LKG для сравнения UX, clustering, labels, popup, controls и fullscreen до переключения registry на v2.

Текущий first-party renderer без online OpenFreeMap Открыть отдельно
network
unknown
forced
auto
renderer
maplibre → maplibre
iframeCreated
false
iframeLoaded
false
offlineSource
registry
regions
belgrade
SerbiaMap
true
defaultMap
true
activeSource
none
render
checking

Тот же source → explicit provider embed

renderer="embed" явно фиксирует внешний Google iframe онлайн. Даже после будущего включения auto-MapLibre этот режим должен сохранять provider-specific UX. Registry-backed first-party renderer остаётся cold-offline fallback, а уже загруженный внешний iframe не уничтожается при потере сети.

Explicit embed онлайн · first-party MapLibre как cold-offline fallback Открыть отдельно
network
unknown
forced
auto
renderer
embed → embed
iframeCreated
false
iframeLoaded
false
offlineSource
registry
regions
belgrade
SerbiaMap
true
defaultMap
true
activeSource
none
render
checking

Исторический MapLibre pilot

Старый proof оставлен для визуального сравнения Bright/Fiord, local Belgrade Lite, theme switching и controls. Он не является production renderer и не определяет новый API.

Исторический pilot: OpenFreeMap онлайн · Belgrade Lite офлайн Открыть отдельно
network
unknown
forced
auto
renderer
auto → embed
iframeCreated
false
iframeLoaded
false
offlineSource
explicit
regions
belgrade
SerbiaMap
true
defaultMap
true
activeSource
none
render
checking

PlanPlus → manual companion с одной точкой

Здесь auto сохраняет реальный внешний PlanPlus онлайн. Explicit offlineSrc остаётся только companion. После #137 такой source можно сделать auto-MapLibre только через проверенный point/geometry contract или детерминированный extractor.

PlanPlus онлайн · локальная карта с одной точкой офлайн Открыть отдельно
network
unknown
forced
auto
renderer
auto → embed
iframeCreated
false
iframeLoaded
false
offlineSource
explicit
regions
belgrade
SerbiaMap
true
defaultMap
true
activeSource
none
render
checking

Как проверять lifecycle

  1. V2 online: data-basemap внутри renderer должен перейти local → online-loading → online.
  2. Переключение темы RSLive должно менять Bright ↔ Fiord без потери thematic points/clusters/popup.
  3. При ошибке OpenFreeMap или потере сети v2 должен перейти на local style без смены renderer iframe.
  4. Offline loaded относится только к provider embed: уже загруженный внешний iframe сохраняется.
  5. Offline map принудительно показывает same-origin first-party fallback, если он есть.
  6. Для настоящего cold-offline отключите сеть и перезагрузите preview после подготовки нужных map packs.