ITADN
NearlCrews/signalk-crows-nest

版本发布 4

v0.7.0 - bridge air-draft checkv0.7.0
? · 2026-05-31

A feature release. The new bridge air-draft check warns when a bridge would not clear the vessel: it compares each bridge's vertical clearance against the vessel air draft plus a configurable safety margin, raising a proximity alarm as the vessel nears a too-low bridge and a route-ahead warning when one lies on the active Course API route. ## Bridge air-draft check - New `bridge-air-draft` output raises a Signal K alarm on `notifications.navigation.crowsNest.bridgeClearance.<id>` near a too-low bridge, with the same raise-once, clear-once hysteresis as the proximity hazard alarm. - The route-corridor scan upgrades a too-low bridge on the active route to a clearance-specific `warn`, carrying the clearance, the air draft, and the margin in the message. - Vessel air draft is read from `design.airHeight` first, then a configurable fallback. With neither set, the check stays inert. - Bridge clearance comes from OpenSeaMap (OSM `seamark:bridge:clearance_height`, `maxheight`, and `clearance` tags, at list time) and ActiveCaptain (the detail `bridgeHeight`, unit-converted; an unrecognized unit is treated as unknown, never guessed). The dedupe pass keeps the more conservative clearance on a merged ActiveCaptain base POI. - New Alerts-section controls: the check toggle, the fallback air draft (`0` means use `design.airHeight` only), and the clearance margin (default 1 m). ## Code quality - Two `/cleanup` passes (a diff audit, then an eight-lane whole-codebase audit) applied roughly forty reuse and quality findings with no behavior change beyond the new feature: a shared `proximity-radius` module, a shared `clampNumber`, a hoisted `light-character` humanizer, a panel `ToggleFieldset` shell composed by three cards, and assorted dead-code, comment-accuracy, and reuse fixes. Lint, typecheck, 663 tests, and build all green; `npm audit --omit=dev` clean. Full changelog: https://github.com/NearlCrews/signalk-crows-nest/blob/main/CHANGELOG.md#v070

v0.6.1 - whole-codebase cleanup, accessibility, and registry compliancev0.6.1
? · 2026-05-30

A quality, accessibility, and compliance release driven by a four-lens review of the whole codebase. No runtime behavior changes: every POI source, note, and alarm works exactly as before, and all 587 tests pass. **Plugin-registry compliance** - Declare `signalk.recommends` (the "Works well with" list): `@signalk/freeboard-sk` and `signalk-nmea2000-emitter-cannon`. - Bound the ActiveCaptain `cachingDurationMinutes` schema field. - Cut from a commit carrying the Signal K plugin-ci workflow, so the registry's plugin-ci run lands on the published commit. **Admin panel accessibility** - Restore keyboard focus on card collapse (shared `useCollapseFocusRestore` hook), mark collapsed bodies `inert`, drop a malformed ARIA table, and remove redundant screen-reader live regions. **Code quality and reuse** - Shared `SECONDS_PER_*` constants, a generalized `splitOnFirstSeparator`, a single-pass OpenSeaMap `elementMarking`, hoisted hot-path work, and dead-code removal. See the [v0.6.1 changelog entry](https://github.com/NearlCrews/signalk-crows-nest/blob/main/CHANGELOG.md#v061).

v0.4.3 - rating-filter fix and Appstore classificationv0.4.3
? · 2026-05-24

A bug-fix release. **Rating-filter fix.** The ActiveCaptain summary API sometimes returns `reviewSummary: { averageRating: 0, numberOfReviews: 0 }` for a marina that has not been reviewed yet. The plugin took that placeholder as a real 0-star rating, with two visible symptoms: the minimum-rating filter dropped these never-reviewed marinas exactly like genuine 0-star marinas (so a user who picked `minimumRating: 2` hid both real low-quality marinas AND brand-new ones), and the popup rendered a meaningless "0/5 ⭐ from (0 reviews)" line. Both the client and the popup template now treat a zero-review reviewSummary as unrated. **SignalK Appstore classification.** Replaces the catch-all `signalk-category-utility` keyword with `signalk-category-chart-plotters` + `signalk-category-notifications` (the two categories the plugin actually belongs to). Adds discoverability keywords for npm search (`activecaptain`, `openseamap`, `uscg`, `noaa`, `freeboard`, `points-of-interest`, `notes`, `chart-overlay`, `proximity-alarm`, `route-corridor`, `marina`, `anchorage`, `hazard`). Adds the missing trailing period to the package.json `description`. **CI runner bump.** `actions/checkout` and `actions/setup-node` go from v4 to v6 across every workflow, ahead of GitHub's June 2026 Node.js 20 deprecation. See the [v0.4.3 changelog entry](https://github.com/NearlCrews/signalk-crows-nest/blob/v0.4.3/CHANGELOG.md#v043) for the full notes. Publishing to [npm](https://www.npmjs.com/package/signalk-crows-nest) is triggered by this release.

v0.4.2 - first published releasev0.4.2
? · 2026-05-24

First release published to npm. Bundles every feature the plugin has developed: - **Four POI data sources**, merged into one chart layer: Garmin ActiveCaptain (base), OpenSeaMap (OSM marine data via Overpass), the USCG Light List of US Aids to Navigation (US-only, opt-in), and NOAA ENC Direct (US authoritative wrecks, obstructions, and rocks, US-only, opt-in) - **Proximity hazard alarms** with hysteresis and a **route-corridor hazard scan** that warns about hazards, bridges, and locks on the active route ahead - **React configuration panel** with a per-source live-status bar, collapsible source cards (each with import-layers / refresh-and-freshness / filters / merge fieldsets), and a collapsible Alerts section that opens automatically when an alarm is configured - **Per-bbox debounce cache** on every at-runtime source (cache key includes `poiTypes` on ActiveCaptain so a chart-display request never starves the proximity-alarm scan) - **Sharded on-disk store + spatial tile index** for the 57.7 k-record USCG Light List, with atomic writes, antimeridian-crossing bbox handling, and a "dark zone" recovery on load - **Per-source merge radii** so a tight USCG-vs-AC merge can coexist with a looser OpenSeaMap-vs-AC merge in one run - **SignalK-conformant** per-output \`\$source\` brands (\`signalk-crows-nest.proximity\` vs \`.route\`) and 405-bearing errors on the intentionally read-only resource methods See the [v0.4.2 changelog entry](https://github.com/NearlCrews/signalk-crows-nest/blob/v0.4.2/CHANGELOG.md#v042) for the full development history. Publishing to [npm](https://www.npmjs.com/package/signalk-crows-nest) is triggered by this release.