mirror of
https://github.com/agessaman/meshcore-bot.git
synced 2026-11-04 03:52:34 +00:00
docs: changelog entries for the web viewer accessibility and offline pass
This commit is contained in:
1 parent
e0b7eca4fd
commit
4fb63d91bf
1 file changed
+9
@@ -32,6 +32,11 @@ semantic versioning.
|
||||
|
||||
### Changed
|
||||
|
||||
- The web viewer's map and graph libraries (Leaflet, MapLibre GL, maplibre-gl-leaflet, vis-network) and the login page's fonts are now served from the viewer itself instead of unpkg and Google Fonts, so the Mesh Graph and login work on a LAN with no internet. Chart.js and js-sha256 load only on the pages that use them, Moment.js is no longer loaded, and the Content-Security-Policy drops unpkg and Google Fonts. Bootstrap, Font Awesome, Socket.IO, Chart.js and js-sha256 still come from CDNs, and map tiles still need internet.
|
||||
- On phones and tablets, web viewer controls are sized for touch (44px buttons and fields, 36px small controls, 24px checkboxes and switches), card headers wrap their controls instead of squeezing the title, and the radio offline and zombie banners are shorter. Desktop layouts are unchanged.
|
||||
- Web viewer banners show when the radio went offline or zombie in your own time zone with its age (`Oct 15, 7:42 AM · 2 days ago`) instead of a raw UTC timestamp.
|
||||
- Realtime's dark-theme message bubbles are soft tints instead of solid navy, green and purple, and packet rows drop their colored side stripes (the type badge already shows the type).
|
||||
|
||||
- `MessageHandler` no longer keeps a pending-message list for RF correlation. Its entries were only marked as matched and pruned, never read, while every received packet scanned and pruned the list. The one effect it had stays: a channel message with no RF log row yet waits 100 ms and looks again. Two channel messages that reached that wait in the same millisecond with the same packet prefix could get each other's RF row, since the list keyed them alike; each now looks up its own. Removed with it: `store_message_for_correlation`, `correlate_message_with_rf_data`, `cleanup_old_messages`, `try_correlate_pending_messages`, the `pending_messages` attribute and `PendingMessageEntry`. `[Bot] message_correlation_timeout` still bounds how old an RF row can be and still match a channel message by its contents; its comment in the example configs said otherwise and now says that.
|
||||
- `wind_speed_unit = kn` (knots) now works for `wx`, `gwx` and WXSIM sources, as it already did for the weather service. The commands rejected it and fell back to mph, so one setting gave knots in the service's forecasts and mph in replies.
|
||||
- Weather replies in German, Spanish, French, Dutch, Polish and Portuguese no longer fall back to English for `gwx`'s weekday abbreviations, "feels like", the hourly and custom-source "not available" replies and the MQTT weather errors (both `wx` and `gwx`). Wind directions in `wx`, `gwx` and the weather service use local letters, `wx`'s multi-day weekday letters are translated like `gwx`'s, the "forecast not available" and formatting-error replies are translated, and the `wx`/`gwx` help describes cities, coordinates and the forecast options instead of ZIP codes only (`NO`/`SW` in German, `SO`/`NO` in Spanish and French, `ZW` in Dutch, `L` for east in Brazilian Portuguese); Polish keeps the international letters. Russian gains the two new "not available" replies.
|
||||
@@ -43,6 +48,10 @@ semantic versioning.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Web viewer keyboard and screen-reader access: contact columns sort from the keyboard and announce their sort order, plugin cards and Realtime packet details open with Enter or Space, and every button and form field on every page has an accessible name (about 300 Plugins settings fields were announced without one).
|
||||
- Web viewer text contrast: status colors used as text (amber, cyan, green, red), muted text, outline buttons, code, log levels and badges now pass WCAG AA in both themes. The worst cases were the dashboard's Gone Quiet count and Contacts' 7-day counts at 1.6:1 and 2.0:1.
|
||||
- Web viewer text no longer drops below 0.7rem (Realtime timestamps were 9.3px), monospace text uses one font stack, and `/config` no longer scrolls sideways on a phone.
|
||||
|
||||
- Place names in `wx`, `gwx` and other location replies are in the bot's `[Localization] language` (falling back to English) instead of each place's local language: `gwx Tokyo` named the place `千代田区, JP` rather than `Chiyoda, JP`, which also took more of the message. Nominatim was never told a language. `[Localization] place_name_language` changes it: `local` keeps each place's own name as before, and a language code picks another language. Reverse lookups are now cached per language, so addresses cached before in local languages are looked up again (unless `local` is set).
|
||||
- Reloading the config (from the web viewer, the `reload` command or the admin API) no longer fails when any value contains a bare `%`, such as `% RH` in an `[MqttWeather] json_template`, which `config.ini.example` documents as fine. The reload check expanded `%` interpolation on every value, although those values are read raw and startup accepts the same file, so every reload was rejected and changes saved from the web viewer only took effect after a restart. Such values are now named in a warning and the reload goes ahead.
|
||||
- `sports` reads `[Sports_Command] api_timeout`. The example config documented it, but the ESPN timeout was fixed at 10 seconds. The Plugins page's MQTT weather payload, staleness and length limits now match the ranges the service clamps them to, so the form no longer accepts a value the service quietly replaces.
|
||||
|
||||
Reference in new issue
Block a user