Fix: Selektives Loeschen griff auf Geraet nicht — Keep-Set jetzt selbsttragend aus der Meta

Renes Befund: 'Alles loeschen' wischte weiter alles. Ursachen: (a) Bestands-
Gebiete hatten keine standort-Region (ensureHomeArea legt nur bei FEHLENDER
Kachel los), (b) Korridor-Keys waren nur aus API-Tracks ableitbar -> leeres
Keep-Set = Komplett-Wipe.
- downloadCorridor speichert vereinfachten Track (<=60 Pkt) in der Region-Meta;
  clear() baut Korridor-Keep daraus — ohne API/Login/GPS
- Standort-ADOPTION: clear() mit center legt fehlende standort-Region
  synthetisch an (Bestandsdaten vor Runde 6)
- map.js: center-Fallback auf by_last_position wenn GPS noch keinen Fix hat
- Test r7 erweitert (clear ohne Optionen haelt Korridor aus Meta), alle gruen
Bump v1236
This commit is contained in:
rene 2026-06-06 13:44:01 +02:00
parent 29cd489287
commit ca97613938
8 changed files with 56 additions and 24 deletions

View file

@ -54,11 +54,19 @@ const MO = global.window.MapOffline;
const regs = stores.meta.get('regions') || [];
if (!regs.length || regs.some(r => r.type === 'gebiet')) throw new Error('Regions-Meta falsch gefiltert');
// 2. Komplett-Wipe ohne Keep-Kandidaten: alles weg (auch p/ + f/), Zonen bleiben
// 2. clear() OHNE keepTracks: Korridor-Keep kommt aus der Region-Meta (r.track)
const afterSel = stores.tiles.size;
await MO.clear();
console.log('clear ohne Optionen: tiles', afterSel, '→', stores.tiles.size, '(Korridor aus Meta gehalten)');
if (stores.tiles.size === 0) throw new Error('Korridor-Keep aus Region-Meta fehlt');
const gj2 = await MO.coverage();
if (!gj2.features.length) throw new Error('Korridor-Coverage leer');
// 3. Komplett-Wipe: Regionen-Meta manuell leeren → kein Keep-Kandidat → alles weg
await MO.markDeadZone(48.2, 12.1);
stores.meta.delete('regions');
await MO.clear();
console.log('Komplett-Wipe: tiles =', stores.tiles.size, '— Zonen:', (stores.meta.get('deadzones') || []).length);
// Korridor-Region hat keinen Track in der Meta → kein Keep-Set → echter Wipe
if (stores.tiles.size !== 0) throw new Error('Komplett-Wipe unvollständig');
if ((stores.meta.get('deadzones') || []).length !== 1) throw new Error('Zonen weg');