fix(shipwrecks): tidy after merging main: the retired-token test reuses the retired token, natural Hebrew, voice comment beside its entry

- layerStateTokenLedger.test: the retired-token reuse case now offers the
  retired token (02) to the newcomer, not News's 00.
- he.json: the catalog's singular imperative, {count} first in the plural,
  Wikidata read as one source, and smoother legend and info text.
- layerManifest: News after Shipwrecks, so the prompt-budget comment stays
  next to the entries it explains.
- CURRENT-STATE: Prettier-formatted (table column, blank line before a heading).
This commit is contained in:
Sameh Khamis committed 2026-11-10 14:07:07 -08:00
1 parent 8ff22f1a12
commit 2992232fcc
4 files changed
+12 -11

No files matched your search

+2 -1
View File
@@ -209,6 +209,7 @@ finds, protected status and source.
Clicking the card opens the Wikipedia article (else the Wikidata item), the
wreck's own web page when EMODnet lists one, else EMODnet's portal. Voice does
not toggle this layer yet (prompt budget, as for the airspace layer).
## Wildlife Sightings — iNaturalist and Acartia
**Wildlife Sightings** (`wildlife-sightings`, share-link token `9`) is off by
@@ -4847,7 +4848,7 @@ its criteria cannot be silently ignored.
| Ski Pistes ⛷ (`ski-pistes`) | OpenSnowMap piste raster tiles (keyless; CC BY-SA tiles, OSM data ODbL; no bulk download) | `src/data/osmOverlays.js` | — (browser-direct tiles) | on view (Cesium tile requests; no polling) |
| Fire Perimeters 🔥 | NIFC WFIGS current interagency perimeters (keyless, paged past the 2000-record cap); InciWeb catalog + incident page origin and update time checks for verified incident-page links | `src/layers/perimeters/` via `src/app/layers/perimeters.js` | `/api/fire-perimeters` + `/api/fire-perimeters/inciweb/*` | 5 min (server caches: catalog 1 h; publication 30 min) |
| Prohibited & Restricted Airspace 🚫 | FAA Special Use Airspace prohibited (P) and restricted (R) zones (keyless FeatureServer, simplified geometry) | `src/layers/droneAirspace/` via `src/app/layers/droneAirspace.js` | `/api/drone-airspace` | 1 h (server cache 1 h; stale-on-error) |
| Shipwrecks ⚓ (`shipwrecks`) | EMODnet Human Activities heritage shipwrecks (European waters, keyless WFS, CC BY 4.0) and Wikidata (notable wrecks worldwide, keyless, CC0) | `src/layers/shipwrecks/` via `src/app/layers/shipwrecks.js` | `/api/shipwrecks` | 6 h page check; server refresh once a day (stale-on-error up to 7 days) |
| Shipwrecks ⚓ (`shipwrecks`) | EMODnet Human Activities heritage shipwrecks (European waters, keyless WFS, CC BY 4.0) and Wikidata (notable wrecks worldwide, keyless, CC0) | `src/layers/shipwrecks/` via `src/app/layers/shipwrecks.js` | `/api/shipwrecks` | 6 h page check; server refresh once a day (stale-on-error up to 7 days) |
| News ◆ (`news`) | The last 24 h of reports in two sections, Conflicts and Local, with hotspots, outlines and disputed areas: from a news server (`GEV_NEWS_ORIGIN`), else Core's own reading of GDELT 2.0 events (no key), Liveuamap (`LIVEUAMAP_API_KEY`) and World News API (`WORLDNEWSAPI_KEY`) | `src/layers/news/` via `src/app/layers/news.js`; panel `src/ui/newsPanel.js`, `src/ui/news/`; server `server/providers/news.js`, `server/providers/news/` | `/api/news/hotspots`, `/api/news/feed`, `/api/news/outline` (forwarded to `GEV_NEWS_ORIGIN` when set, else answered by Core) | 2 min map refresh; Local re-read when the camera settles 0.8 s in a new half-degree cell below 3,000 km |
| Wildlife Sightings 🦉 | iNaturalist wildlife observed within 48 h (whales 7 d), per view; Acartia Salish Sea marine mammal coverage (keyless) | `src/layers/wildlifeSightings/` via `src/app/layers/wildlifeSightings.js` | `/api/inaturalist/observations`, `/api/inaturalist/grid`, `/api/acartia/sightings` | camera moveEnd (600 ms debounce; enable settles 300 ms) + 5 min (observations 5 / 10 min; tiles 15 min; stale ≤ 1 h / 24 h) |
+1 -1
View File
@@ -435,7 +435,7 @@ test('checker reads a complete future base ledger and rejects retired-token reus
() =>
validateLayerStateAllocations(published, {
...LAYER_STATE_TOKEN_RESERVATIONS,
newcomer: '00',
newcomer: '02',
}),
/changed or removed/,
);
+8 -8
View File
@@ -3517,23 +3517,23 @@
"Cargo or finds: {value}": "מטען או ממצאים: {value}",
"Protected wreck": "ספינה טרופה מוגנת",
"Source: {value}": "מקור: {value}",
"Click the card to open EMODnet ↗": "לחצו על הכרטיס כדי לפתוח את EMODnet ↗",
"Click the card to open the article ↗": "לחצו על הכרטיס כדי לפתוח את הערך ↗",
"Click the card to open the source ↗": "לחצו על הכרטיס כדי לפתוח את המקור ↗",
"Click the card to open EMODnet ↗": "לחץ על הכרטיס כדי לפתוח את EMODnet ↗",
"Click the card to open the article ↗": "לחץ על הכרטיס כדי לפתוח את הערך ↗",
"Click the card to open the source ↗": "לחץ על הכרטיס כדי לפתוח את המקור ↗",
"All years": "כל השנים",
"Period": "תקופה",
"From": "מ־",
"First year of the shipwreck period": "השנה הראשונה בתקופת הטביעות",
"To": "עד",
"Last year of the shipwreck period": "השנה האחרונה בתקופת הטביעות",
"Wikidata unavailable; showing EMODnet only": "ויקינתונים לא זמין; מוצג EMODnet בלבד",
"EMODnet unavailable; showing Wikidata only": "EMODnet לא זמין; מוצגים ויקינתונים בלבד",
"Wikidata unavailable; showing EMODnet only": "ויקינתונים אינו זמין; מוצג EMODnet בלבד",
"EMODnet unavailable; showing Wikidata only": "EMODnet אינו זמין; מוצג ויקינתונים בלבד",
"Shipwrecks unavailable": "ספינות טרופות לא זמינות",
"{count} wrecks": {
"one": "ספינה טרופה אחת ({count})",
"one": "{count} ספינה טרופה",
"two": "{count} ספינות טרופות",
"other": "{count} ספינות טרופות"
},
"EMODnet (European waters) · Wikidata (worldwide)": "EMODnet (מים אירופיים) · ויקינתונים (כל העולם)",
"European heritage wrecks come from EMODnet Human Activities; notable wrecks worldwide come from Wikidata. Colour shows when the ship sank; marker size grows with deaths. Click a marker for its card.": "ספינות טרופות מורשת אירופיות מגיעות מ־EMODnet Human Activities; ספינות טרופות בולטות מכל העולם מגיעות מוויקינתונים. הצבע מראה מתי הספינה טבעה; גודל הסמן גדל עם מספר ההרוגים. לחצו על סמן כדי לפתוח את הכרטיס שלו."
"EMODnet (European waters) · Wikidata (worldwide)": "EMODnet (מימי אירופה) · ויקינתונים (כל העולם)",
"European heritage wrecks come from EMODnet Human Activities; notable wrecks worldwide come from Wikidata. Colour shows when the ship sank; marker size grows with deaths. Click a marker for its card.": "ספינות טרופות אירופיות בעלות ערך מורשת מגיעות מ־EMODnet Human Activities; ספינות טרופות בולטות מכל העולם מגיעות מוויקינתונים. הצבע מראה מתי הספינה טבעה; הסמן גדל ככל שמספר ההרוגים עולה. לחץ על סמן כדי לפתוח את הכרטיס שלו."
}
+1 -1
View File
@@ -457,9 +457,9 @@ export const VOICE_OFF_LAYERS = Object.freeze({
// query for this layer wait until there is room.
'drone-airspace':
'informational airspace layer; no room in the prompt budget',
news: 'browsed in the News panel; voice tools are a later step',
// Same budget: a historical wreck archive waits for room too.
shipwrecks: 'historical shipwreck archive; no room in the prompt budget',
news: 'browsed in the News panel; voice tools are a later step',
'wildlife-sightings':
'community observation layer; no room in the prompt budget',
});