Hold Cockpit regional news to the last 24 hours, and tell its states apart

Regional News showed "REGIONAL NEWS UNAVAILABLE" above populated rows and a
static "RECENT" footer over months-old articles. The status banner kept
`display: grid` when hidden, every non-empty answer carried the unavailable
text, and nothing limited or sorted articles by age.

- One window (regionalNewsWindow.js, 24 h): the local proxy asks Google News
  with `when:1d` and GDELT for 24 h, drops undated, older or future-dated
  articles, sorts newest first, and reports newsWindowHours/newsFetchedAt.
- The Cockpit labels four states: fresh (banner hidden, "LAST 24 H"),
  kept after a failed refresh ("CACHED · REFRESH FAILED"), no news in the
  window, and unavailable. The footer lives in the news state, so it
  survives page and tab changes, and the client drops out-of-window rows.
- `.cockpit-brief-status[hidden]` now hides the banner.
This commit is contained in:
Denis Groshev committed 2026-11-06 00:45:19 +01:00
1 parent 2470b39f88
commit dd83812a21
24 files changed
+637 -85

No files matched your search

+15 -1
View File
@@ -46,6 +46,7 @@
"src/ui/views/panels/CockpitSignalList.vue",
"src/ui/views/panels/CockpitUtilityControls.vue",
"src/ui/cockpitBriefPages.js",
"src/data/regionalNewsWindow.js",
"src/ui/cockpitContextState.js",
"src/ui/cockpitInstrumentState.js",
"src/ui/cockpitRollingValue.js",
@@ -467,6 +468,7 @@
"server/providers/regional/weather-effects.js",
"server/providers/regional/weather.js",
"src/data/regionalModel.js",
"src/data/regionalNewsWindow.js",
"src/geoDistance.js",
"src/nominatimGeocode.js",
"src/sources/httpBody.js",
@@ -566,6 +568,7 @@
"src/search/nominatim.js",
"src/nominatimGeocode.js",
"src/data/regionalModel.js",
"src/data/regionalNewsWindow.js",
"src/geoDistance.js",
"src/data/naturalEarthRegions.js",
"src/data/bundledJson.js",
@@ -863,6 +866,7 @@
"src/ui/cockpit.js",
"src/ui/cockpitBriefing.js",
"src/ui/cockpitBriefPages.js",
"src/data/regionalNewsWindow.js",
"src/ui/cockpitContextState.js",
"src/ui/cockpitInstrumentState.js",
"src/ui/cockpitRollingValue.js",
@@ -992,6 +996,7 @@
"src/ui/cockpit.js",
"src/ui/cockpitBriefing.js",
"src/ui/cockpitBriefPages.js",
"src/data/regionalNewsWindow.js",
"src/ui/cockpitContextState.js",
"src/ui/cockpitInstrumentState.js",
"src/ui/cockpitRollingValue.js",
@@ -2785,6 +2790,7 @@
"src/ui/cockpit.js",
"src/ui/cockpitBriefing.js",
"src/ui/cockpitBriefPages.js",
"src/data/regionalNewsWindow.js",
"src/ui/cockpitContextState.js",
"src/ui/cockpitInstrumentState.js",
"src/ui/cockpitRollingValue.js",
@@ -3712,6 +3718,7 @@
"src/search/nominatim.js",
"src/nominatimGeocode.js",
"src/data/regionalModel.js",
"src/data/regionalNewsWindow.js",
"src/sources/httpBody.js",
"src/i18n/marker.js",
"src/sources/nominatim.js",
@@ -3955,6 +3962,7 @@
"src/search/nominatim.js",
"src/nominatimGeocode.js",
"src/data/regionalModel.js",
"src/data/regionalNewsWindow.js",
"src/sources/httpBody.js",
"src/i18n/marker.js",
"src/sources/nominatim.js",
@@ -4250,7 +4258,11 @@
},
"regional-source": {
"exports": ["./sources/regional"],
"modules": ["src/data/regionalModel.js", "src/geoDistance.js"],
"modules": [
"src/data/regionalModel.js",
"src/data/regionalNewsWindow.js",
"src/geoDistance.js"
],
"external": []
},
"voice-action-schemas": {
@@ -4439,6 +4451,7 @@
"src/search/google.js",
"src/search/geospatial.js",
"src/data/regionalModel.js",
"src/data/regionalNewsWindow.js",
"src/geoDistance.js",
"src/sources/httpBody.js",
"src/i18n/marker.js",
@@ -4463,6 +4476,7 @@
"src/nominatimGeocode.js",
"src/search/geospatial.js",
"src/data/regionalModel.js",
"src/data/regionalNewsWindow.js",
"src/geoDistance.js",
"src/sources/httpBody.js",
"src/i18n/marker.js"