tilfluktsrom/pwa
Ole-Morten Duesund c3ab73c915 Gjør romnr til autoritativ tilfluktsrom-ID (Room-PK og IndexedDB-key)
Produktbeslutning (Forgejo #15): romnr — DSBs romnummer — er den
autoritative IDen. lokalId regenereres av Geonorge ved hver eksport og
beholdes bare som informasjonsfelt; det skal aldri sammenlignes eller
nøkles på. Utredningen mot Geonorge/DSB droppes.

Dette retter også en reell feil på Android: etter «Oppdater data» holdt
selectedShelter det gamle objektet med utdatert lokalId, så
rebuildShelterList() la til en duplikatrad med «utenfor nærområdet»-
badge for et rom som var blant de nærmeste, og markørhøylysingen mistet
målet (markørkartet var nøklet på nye lokalId-er).

Android:
- Shelter: @PrimaryKey romnr; lokalId vanlig kolonne
- ShelterDatabase: versjon 2 + fallbackToDestructiveMigration() — tabellen
  er ren cache som reseedes fra asset når den er tom
- Parsere (GeoJSON + bundled): krever romnr > 0, lokalId valgfri
- MainActivity: markørkart Map<Int, Marker>, høylysing og
  isSelectedAmongNearest/indexOfFirst på romnr
- ShelterListAdapter: DiffUtil areItemsTheSame på romnr

PWA:
- shelter-db.ts: DB_VERSION 2, keyPath 'romnr', upgrade sletter og
  gjenoppretter store ved oldVersion < 2
- map-view.ts: _shelterRomnr i stedet for _shelterLokalId
- types.ts: dokumentert identitet; fetch-shelters.ts hopper over
  features uten romnr (speiler Android-parseren)

ARCHITECTURE.md: nytt avsnitt «Shelter identity — romnr is authoritative»,
felt-tabell, valideringsregel og IndexedDB-skjema oppdatert.

Verifisert: emulator med v1.10.2-DB → migrering til v2 + reseed (556 rom);
velg rad 2 → Oppdater → ingen duplikatrad, valg og høylysing beholdt.
Playwright: seedet v1-IndexedDB → app oppgraderer til v2 (keyPath romnr,
556 poster, get(1681) treffer), dyplenke og markør OK.

Forgejo: #15

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FrDGDmN2WAXvNPS85rWJGK
2026-08-17 13:30:25 +02:00
..
public PWA: absolutte stier så dyplenker virker ved kald førstelast 2026-08-17 12:50:56 +02:00
scripts Gjør romnr til autoritativ tilfluktsrom-ID (Room-PK og IndexedDB-key) 2026-08-17 13:30:25 +02:00
src Gjør romnr til autoritativ tilfluktsrom-ID (Room-PK og IndexedDB-key) 2026-08-17 13:30:25 +02:00
tests Add progressive web app companion for cross-platform access 2026-03-08 17:41:38 +01:00
.gitignore Legg shelters.json til .gitignore 2026-03-23 15:41:19 +01:00
bun.lock Add progressive web app companion for cross-platform access 2026-03-08 17:41:38 +01:00
index.html PWA: absolutte stier så dyplenker virker ved kald førstelast 2026-08-17 12:50:56 +02:00
package.json Bundle shelter data in APK and add shared versioning 2026-03-08 18:33:38 +01:00
tsconfig.json Add progressive web app companion for cross-platform access 2026-03-08 17:41:38 +01:00
vite.config.ts Bytt djuplenkjer frå tilfluktsrom:// til HTTPS App Links 2026-03-23 16:37:13 +01:00