Releases
v2.31.0
Compare
Sorry, something went wrong.
No results found
🚀 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
You can’t perform that action at this time.