Skip to content

v2.31.0

Choose a tag to compare

@sbender9 sbender9 released this 14 Aug 07:04
5a3c945

🚀 Features

  • feat: Add --data <rawfilename> option for raw log playback
  • feat(streams): include providerId on N2KAnalyzerOut PGN payload
  • feat(plugins): allow plugins to declare route permission levels
  • feat: multi-GNSS antenna position configuration
  • Add settings switch to disable core notification management
  • feat: enforce meta.timeout staleness on vessels.self
  • feat: staleness detection off by default
  • feat: persist default History API provider, selectable in Admin UI
  • Cut subscription memory by building Bacon stages only for rows that need them
  • fix(admin-ui): close the mobile sidebar when a menu entry is picked
  • feat(admin-ui): user-selectable Webapps sort order (A-Z, drag & drop, last used)
  • v3.4.0 radar API
  • feat(server): optionally serve precompressed static assets
  • feat(admin-ui): iOS/Android app icons + favicons
  • feat: add acknowledgedAt timestamp to notification status.
  • feat: BLE Provider API with ESP32 gateway support and admin UI
  • feat(plugins): add registerWebSocket for plugin WebSocket endpoints

🐛 Fixes

  • fix(docker): resolve .local hostnames under network_mode: host
  • fix(ci): tolerate missing label in stale workflow removal
  • fix(config): serialize concurrent settings.json writes
  • fix(subscriptions): empty-path subscription replaying cached paths
  • fix: declare path-to-regexp as a direct dependency
  • fix(test): retry config-dir cleanup to fix flaky ENOTEMPTY teardown
  • fix(resources): skip corrupt file instead of failing listing
  • fix(mdns): log advertisement errors at debug level when no active network available
  • fix: prevent gpsd JSON protocol messages leaking into NMEA0183 output
  • fix(docker): allow canboatjs install script under npm 12
  • fix: allow canboatjs install script under npm 12
  • fix(appstore): prevent app store hang when npm search returns an empty page
  • fix: make vessel identity values (name, mmsi, ...) subscribable by their leaf paths
  • Announce each new path on the internal keys bus only once
  • fix(history): push provider state to the admin UI via serverevents
  • fix(admin-ui): keep the App Store category filter across plugin detail navigation
  • fix(admin-ui): URL-encode path segments in the Meta editor's save URL
  • fix(admin-ui): keep freshly added path overrides from vanishing on save
  • fix: restore req.url after static middleware fallthrough
  • fix: contain subscription callback errors that silenced other plugins' subscriptions
  • fix: allow canboatjs install script on server self-update
  • fix: Serve cached plugin detail instead of rebuilding it on every detail-page view
  • fix(admin-ui): show correct letter monograms for apps with no icon
  • fix: deliver a new path's first delta once, not twice
  • fix(deltacache): prune preferredSources and cachedContextPaths on context expiry
  • fix: Stop app store icon-probe passes stacking on every /appstore/available request
  • fix: Coalesce app store icon-probe cache writes instead of rewriting the whole map per icon
  • fix(radar-api): keep compound control fields on a control PUT
  • fix(radar-api): route the shortcut control endpoints through setControl
  • fix(radar-api): answer a control read as the spec documents it
  • fix(radar-api): answer every request in one shape
  • fix(admin-ui): re-enable eslint coverage for the admin UI
  • fix(eslint): stop reporting two redundant admin UI lint rules
  • fix(admin-ui): fix eslint errors in BLEManager missed by the coverage re-enable
  • fix(admin-ui): resolve remaining eslint warnings and show vessel names in context selectors
  • fix(backpressure): preserve source frame timestamps

🧪 Tests

  • test: fix type errors surfaced by mocha 11.8.0
  • test(deltaPriority): Make the delta priority timeline test deterministic instead of timing-dependent

📦 Uncategorized

  • chore: auto remove awaiting response label
  • perf(admin-ui): split bundles with lazy routes and vendor chunks
  • chore: ignore generated test sources-cache.json
  • chore(docker): add Ubuntu 26.04 base image variant
  • chore(docker): remove avahi/mDNS support from base images
  • ci: clear awaiting response label when the author re-requests a review
  • chore(docker): add Node 26 to Docker image builds
  • chore(docker): drop Alpine image variants
  • perf(admin-ui): generate compressed sidecars at build time
  • style(admin-ui): Webapps card styling
  • App Store: show the newly installed version instead of the previous one on the Installs & Removes screen
  • Fix the callback-isolation expectations left stale by the duplicate-delivery fix
  • Reset the npm module caches between test servers so stubbed registry suites are not poisoned
  • refactor(admin-ui): escape literal apostrophes in JSX text
  • refactor(admin-ui): drop unused store subscriptions and a superseded PrefsEditor prop
  • refactor(appstore): extract local asset URL helpers to TypeScript, and fix served-root, data: and traversal handling
  • perf(server): drop lodash from getCachedDeltas
  • docs(radar-api): specify how requests that change something are answered