Commit graph

22 commits

Author SHA1 Message Date
e6558b64d3 DWD-Plan: Umsetzungsstand dokumentiert (Staging v1240, Cron + Geraetetest offen) 2026-06-06 18:13:30 +02:00
2cdb743ce7 Selektives Loeschen: auch Funkloch-Gebiete bleiben + Keep-Set haertung
Rene: Funkloecher + Routen waren nach 'Alles loeschen' weiter weg.
- Funkloch-Regionen jetzt im Keep-Set (geloescht wird NUR Manuelles);
  Zonen behalten ihren Fuellstatus (Komplett-Wipe setzt weiter zurueck)
- Korridor-Migration beim Loeschen: keepTracks=[{name,track}] schreibt
  Tracks in Alt-Eintraege ohne r.track (Bestand vor v1236) bzw. legt
  fehlende Korridor-Regionen an — kein Warten auf Self-Healing
- clear() liefert Summary; Toast zeigt 'behalten: Standort, X Routen,
  Y Funkloch-Gebiete' — Diagnose-Sichtbarkeit fuer Geraetetests
Bump v1237
2026-06-06 13:55:37 +02:00
29cd489287 Offline-Karten Runde 7: 'Alles loeschen' selektiv — Standort + Routen-Korridore bleiben
Idee Rene (spart Vorladezeit + Daten): statt loeschen-und-neu-laden bleiben
- Standort-Gebiete (Regionen type 'standort')
- Korridore der gespeicherten Routen (clear({keepTracks}) aus preview_track)
- 5-km-Umkreis der aktuellen Position + Basis-Zooms 0-9
- Marker/Warnungen (p/) + Glyphs (f/)
Geloescht: manuelle Gebiete/Ausschnitte + Funkloch-Kacheln (Zonen bleiben
gemerkt, Nahe laden automatisch neu). Ohne Keep-Kandidaten: Komplett-Wipe.
Batch-Delete in einer Transaktion. Tests r7 neu, r6 angepasst, Regression gruen.
Bump v1235
2026-06-06 13:35:18 +02:00
94a6ce49ba Offline-Karten Runde 6: Standort-Grundversorgung — aktuelles Gebiet bleibt immer geladen
Renes Modell Punkt 1 war zu eng interpretiert (nur Funkloecher): das Gebiet
um die aktuelle Position gehoert zur Grundversorgung.
- ensureHomeArea(lat,lon): Zentrums-Kachel-Check -> bei Luecke Budget-Download
  (type 'standort', Cap-gated)
- Start-Check: Standort raw pruefen (ohne GL-Stack) und bei Bedarf laden
- 'Alles loeschen': Standort-Gebiet wird SOFORT neu geladen (+ Toast) —
  vorher war die Offline-Funktionalitaet genau am wichtigsten Ort weg
- Pfote Segment 5: Standort-Kachel da UND Zonen im 50-km-Umkreis gefuellt
  (ferne Zonen zaehlen nicht mehr — sie laden erst vor Ort)
- Tests r6 + Regression r1/r3/r4/r5 gruen
Bump v1234
2026-06-06 13:23:33 +02:00
6c313aca05 Offline-Karten Runde 5: Geraetetest-Feedback (Indikator, Flugmodus-Signal, Ent-Funklochen, Warnungs-Aktualitaet, Routen-Start-Check)
- Indikator links unter die Zoom-Regler (rechts verdeckte Legenden-Chips)
- Flugmodus bei offener App -> Position raw als Funkloch-Zone (offline-Event)
- Ent-Funklochen: Zonen-Liste im Offline-Modal mit X (removeDeadZone)
- Warnungs-Aktualitaet: _mergeStore Bbox-Replace (aufgehobene Giftkoeder/
  gefundene Hunde verschwinden; Fetch-Kreis deckt Bbox via sqrt2 ab;
  fresh=null merged nie) + 24h-Refresh im 50km-Umkreis beim Start
- Routen offline nutzbar halten: ensureRouteCorridors beim Start-Check
  (Stichproben-Verify, Re-Download aus preview_track, Region-Dedupe)
- Stub-Tests ins Repo: tests/js/ (r1/r3/r4/r5, alle gruen)
Bump v1231
2026-06-06 13:00:20 +02:00
53bc27faa3 Offline-Karten Runde 4: Minimal-Speicher-Modell (Modell Rene)
Funkloch-Gedaechtnis = Quelle der Wahrheit, Kacheln = ableitbarer Cache:
- Ephemeres Vorausladen: Prefetch-Kacheln werden bei Aufzeichnungsende
  geloescht, wenn die Runde kein Funkloch hatte (nur neue Keys)
- Netz-Probe bei Aufzeichnung (~2min, 6s-Timeout): erkennt Funkloecher auch
  in bereits gespeicherten Gebieten (dort kein Remote-Miss als Signal)
- clear() behaelt Zonen (filled=false) -> naechster Online-Start laedt
  Funkloch-Gebiete automatisch neu, auch nach 'Alles loeschen'
- Start-Check mit Position: nur Zonen im 50-km-Umkreis, naechste zuerst,
  Coverage-Verify (faengt Eviction ab); Pfote Segment 5 = alle Zonen gefuellt
- Coverage-Layer zweifarbig: Funkloch orange, manuell blau + Modal-Legende
- Stub-Tests Runde 4 (Prune/Probe/clear/Naehe/Verify/Faerbung) bestanden
Bump v1230
2026-06-06 12:46:12 +02:00
763108fa7c Offline-Karten Runde 3: Puls-Icon, rollendes Vorausladen, Ausschnitt-Download, Speicher-Cap
- Offline-Indikator: pulsierendes 32px-Icon oben rechts (unter Kopfzeilen-Hoehe)
  statt Leiste ueber die volle Breite — verdeckte '<- Zurueck' in der
  Routennavigation (Geraetetest Rene)
- Rollendes Vorausladen: setGps laedt alle ~400m still fehlende z14+-2-Kacheln
  um die Position — deckt den Weg schon beim ERSTEN Funkloch-Besuch ab
- Bereichsauswahl light: 'Sichtbaren Ausschnitt speichern' im Offline-Modal
  (downloadBbox, Cap 40 MB, Zu-gross-Schutz)
- Speicher-Cap 250 MB als Soft-Guard fuer automatische Pfade + totalBytes-Zaehler
  + navigator.storage.persist() best-effort; echte LRU vertagt (Refcounting noetig)
- Auto-OSM-Raster-Prefetch entfernt (manueller Leaflet-Pfad bleibt)
- Logik-Tests (Node-Stubs) fuer Bbox/Cap/Throttle/persist bestanden
Bump v1229
2026-06-06 12:34:48 +02:00
c18e24524a Offline-Karten: Prod-Freigabe — Flag-Default AN auf allen deployten Hosts
Geraetetests Runde 1+2 bestanden (Basemap, Marker, Giftkoeder/Lost,
Funkloch-Lernen, Korridor, Coverage). Default analog by_map_gl:
banyaro.app/.de AN, localhost AUS, localStorage/?tilesoffline uebersteuert.
2026-06-06 12:21:11 +02:00
c0561c14b2 Offline-Plan: Geraetetest-Befunde Runde 2 dokumentiert (v1227) 2026-06-06 12:17:04 +02:00
42a04ec405 Offline-Karten Runde 2: adaptives Modell (Budget, Funkloch-Gedaechtnis, Korridor, Coverage)
Design Rene 2026-06-06:
- Budget-Download: z14-Ringe um den Standort bis 5 MB gespeicherte Bytes
  (Stadt klein, Land gross — passend zur Funknetzdichte); client-seitig,
  Server-Region-Extract entfaellt
- Funkloch-Gedaechtnis: Tile-Miss bei aktivem GPS-Recording -> Zone gemerkt
  (lokal, nie hochgeladen); Auto-Download offener Zonen sobald online
- Routen-Korridor: 'Offline'-Button im Routen-Detail, Kacheln +-1km um den
  Track + Marker (Cap 50 MB) — fuer mehrtaegige Unternehmungen
- Coverage-Layer: gespeicherte Bereiche als blauer Layer; Offline-Button
  oeffnet Verwaltungs-Modal (Stats, speichern, anzeigen, loeschen)
- Flag-Logik zentral in boot.js BY.offlineTiles() (war 3x dupliziert)
Bump v1226
2026-06-06 12:00:43 +02:00
6af08ab543 Offline-Plan: Geraetetest bestanden, Befunde (Marker offline, Banner) dokumentiert 2026-06-06 11:27:31 +02:00
c5bdad2d86 Offline-Plan: Follow-ups Runde 1 dokumentiert (Staging-AN v1222, Runde 2 offen) 2026-06-06 11:07:42 +02:00
72ee339860 Docs: DWD-Regen-Vorhersage-Pipeline gescoppt (Datenformat verifiziert)
DWD RV (composite/rv, kostenlos, alle 5 Min, 25 Frames 0-120min). Format
verifiziert: 194-Byte-ASCII-Header + 1200×1100 uint16 LE, Wert=&0x0FFF×0.01mm,
&0x2000=kein-Daten (PoC: Decode trivial, kein wradlib nötig). Pipeline:
fetch→decode→kolorieren→reprojizieren(DE1200→3857)→Kacheln→PMTiles/Cron 5min;
Frontend hängt Forecast-Frames rechts von 'jetzt' in die Timeline. Knackpunkt:
Georeferenzierung (PoC nötig).
2026-06-05 20:53:51 +02:00
aefdac87ad Wetter-Pill: Niederschlag = Höchstwert der nächsten 3 Std statt Tages-Max
weather.py get_weather_for_location: precip = max(h_precip[now_h:now_h+3])
(Fallback Tages-Max). map.js Pill zeigt '💧 X% (3h)'. Gilt auch fürs
Welten-Banner (geteiltes precip_prob-Feld) — behebt das 'ganzer Tag'-Problem
überall. Gespeicherte Tagebuch-Snapshots unberührt (historisch).
2026-06-05 20:01:32 +02:00
fd6be50762 Offline-Plan: Umsetzungsstand (Kern fertig + verifiziert, Follow-ups offen) 2026-06-05 19:54:29 +02:00
80b56c32ab Offline-Plan: Routen-Korridor an Routen-Feature anbinden (fehlende Verbindung)
Einstieg AUS der Route: Button 'Route offline speichern' im Routen-Detail
(_openDetail) + Navi-Ansicht, nutzt route.gps_track → Korridor = Tiles im Puffer
um den Track. Plus 'Aus meinen Routen wählen' im Offline-Dialog. War als Modus
genannt, aber ohne Einstiegspunkt/Routen-Quelle.
2026-06-05 18:03:53 +02:00
f38301a391 Offline-Plan: 'Offline-Inhalte laden' mit Bereichsauswahl für Mehrtages-Wanderungen
Zwei Modi: Aktuelle Gegend (budget-getrieben, Gassi) + Bereich auswählen (Mehrtagestour) —
Karten-Viewport/Rechteck/Routen-Korridor, Größen-Vorschau vor Download (PMTiles-Directory
aufsummieren), Liste gespeicherter Gebiete. Budget gilt im Bereichs-Modus nicht (bewusste Wahl).
2026-06-05 18:00:59 +02:00
27e7590eed Offline-Plan: Pfoten-Indikator (Welten-FAB) Segment 5 als Kopplung festgehalten
Segment 5 'Karten-Kacheln' misst aktuell OSM-Raster-Cache (offline-indicator.js,
CACHE_TILES) — GL nutzt das nicht → falsches 'Karte offline bereit'. Bei GL-Region-
Download umdefinieren (region.pmtiles + Glyphs prüfen, offline-fill-btn stößt Region-
Download an). An Offline-Strategie gekoppelt.
2026-06-05 17:55:33 +02:00
d1e44ebfb9 Offline-Plan: Referenz-Radius 10→5 km (gemessen 6,4 MB Stadt / 2,6 MB Land), Budget ~7 MB 2026-06-05 17:52:20 +02:00
daa44946f1 Docs/Karten-Plan: Wetter-Chip Niederschlag auf nächste 3h-Max umstellen
Karten-Chip zeigt aktuell Tages-Max (weather.py:98 daily.precipitation_probability_max[0]);
soll Höchstwert der nächsten 3 Std zeigen (stündliche Daten h_precip schon vorhanden:
max(h_precip[now_idx:now_idx+3])). Als abgegrenzte 'Weitere Karten-To-Dos'-Sektion festgehalten.
2026-06-05 17:48:59 +02:00
43b1e8026f Docs: Offline-Karten-Plan (GL/Vektor) — budget-getrieben + adaptives Funkloch-Lernen
Festgehalten als Feature-Plan: Region-Extract per pmtiles (budget-getrieben statt
Radius, ~16 MB Default, gemessen 15 MB für 10km München / ~18-22km Land), Client
IndexedDB-Blob + MapLibre lokal/remote, adaptives Lernen (rollendes Vorausladen
beim Aufzeichnen + Funkloch-Gedächtnis aus echten Fetch-Fehlern, alles lokal),
manuelles Vorab-Laden, Budget+LRU. Umsetzung nach Produktions-Rollout.
2026-06-05 17:16:16 +02:00
cde019cacf Docs: Übergabe Tile-Server (planetiler→PMTiles→MapLibre, Staging-Spike-Plan) 2026-06-04 19:57:59 +02:00