meshai/work/dashboard-frontend/node_modules/function-bind/CHANGELOG.md
malice 2c46c9104d
feat(region-routing): unified per-family routing cards + region-scoped family→channel routing (#87)
* feat(region-routing): P1 tagging + region_routes primitive + read/write API + preview launcher

- config.py: add Coverage.region_tagging (bool=False); add RegionRouteMatrix
  dataclass (enabled, cells) above NotificationsConfig; add region_routes field
  to NotificationsConfig; add explicit hydration branch for region_routes in
  _dict_to_dataclass mirroring destinations pattern.

- coverage_area.py: add MonitoringArea.name (str|None=None, frozen); update
  areas_from_config to preserve name; refactor inline geom extraction from
  classify_event_areas into shared _event_geom_json helper; add
  matching_area_names(geom_json, areas)->list[str] (additive, all named
  matches, config-order, deduped; gate unchanged); add event_region_names
  convenience wrapper.

- coverage_filter.py: add region_tagging ctor kwarg; stamp event.region/
  regions before the gate when region_tagging=True and areas non-empty and
  not event.regions (never clobbers satpass preset).

- pipeline/__init__.py: wire region_tagging into CoverageFilter construction.

- notification_routes.py: add GET /notifications/regions (named coverage area
  names, config-order, deduped); GET /notifications/region-routing (matrix as
  JSON); POST /notifications/region-routing (explicit RMW — only region_routes
  changes, toggles/rules/destinations survive).

- scripts/preview_dashboard.py: mesh-free launcher — dashboard API only, no
  mesh connector, no broadcast loop; vite runs separately.

All 87 coverage tests pass; 300 total pass; 6 pre-existing failures unchanged
(adapter config count mismatch + MeshCore EventType.NEW_CONTACT).

* feat(region-routing): manual region x family matrix editor page

Adds RegionRoutingMatrix.tsx — a plain editor over the region_routes
config primitive. Rows = families (via useFamilies()), cols = regions
(from GET /api/notifications/regions). Each cell exposes MT channel
(ChannelPicker single + includeDisabled), MC channel name (text input),
min_severity select (routine/priority/critical/immediate), and an enabled
checkbox. Only cells where MT or MC is set are included in the sparse
POST payload. Master enable toggle maps to top-level enabled. MT budget
guard warns when more than 7 distinct MT indices are in use. Sticky
family column; horizontal scroll for wide region sets.

Registers route /region-routing in App.tsx and adds "Region Routing"
nav entry (Map icon) under the Meshtastic section in Layout.tsx,
immediately after Routing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(region-routing): regions endpoint reads saved (disk) coverage so routing columns are dynamic without a bot restart; preview reloads config after writes

* feat(routing): unify MT/MC routing into per-family cards; region routing as an in-card expand; remove rules/destinations UI + standalone page

* refactor(routing): move Meshtastic Routing from /notifications to /meshtastic/routing (mirror /meshcore/routing); redirect legacy path

* feat(region-routing): dispatcher honors region_routes matrix (authoritative-on-match, per-region cooldown, per-channel dedup); non-matrix path unchanged

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(region-routing): matrix dedup key must match boot-restore 2-tuple form (prevents restart re-broadcast flood); regression test

---------

Co-authored-by: Matt Johnson <mj@k7zvx.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-07 16:52:03 -06:00

14 KiB
Raw Blame History

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

v1.1.2 - 2023-10-12

Merged

  • Point to the correct file #16

Commits

  • [Tests] migrate tests to Github Actions 4f8b57c
  • [Tests] remove jscs 90eb2ed
  • [meta] update .gitignore 53fcdc3
  • [Tests] up to node v11.10, v10.15, v9.11, v8.15, v6.16, v4.9; use nvm install-latest-npm; run audit script in tests 1fe8f6e
  • [meta] add auto-changelog 1921fcb
  • [Robustness] remove runtime dependency on all builtins except .apply f743e61
  • Docs: enable badges; update wording 503cb12
  • [readme] update badges 290c5db
  • [Tests] switch to nyc for coverage ea360ba
  • [Dev Deps] update eslint, @ljharb/eslint-config, tape cae5e9e
  • [meta] add funding field; create FUNDING.yml c9f4274
  • [Tests] fix eslint errors from #15 f69aaa2
  • [actions] fix permissions 99a0cd9
  • [meta] use npmignore to autogenerate an npmignore file f03b524
  • [Dev Deps] update @ljharb/eslintconfig, eslinttape 7af9300
  • [Dev Deps] update eslint, @ljharb/eslint-config, covert, tape 64a9127
  • [Tests] use aud instead of npm audit e75069c
  • [Dev Deps] update @ljharb/eslint-config, aud, tape d03555c
  • [meta] add safe-publish-latest 9c8f809
  • [Dev Deps] update @ljharb/eslint-config, tape baf6893
  • [meta] create SECURITY.md 4db1779
  • [Tests] add npm run audit c8b38ec
  • Revert "Point to the correct file" 05cdf0f

v1.1.1 - 2017-08-28

Commits

  • [Tests] up to node v8; newer npm breaks on older node; fix scripts 817f7d2
  • [Dev Deps] update eslint, jscs, tape, @ljharb/eslint-config 854288b
  • [Dev Deps] update tape, jscs, eslint, @ljharb/eslint-config 83e639f
  • Only apps should have lockfiles 5ed97f5
  • Use a SPDX-compliant “license” field. 5feefea

v1.1.0 - 2016-02-14

Commits

  • Update eslint, tape; use my personal shared eslint config 9c9062a
  • Add npm run eslint dd96c56
  • [New] return the native bind when available. 82186e0
  • [Dev Deps] update tape, jscs, eslint, @ljharb/eslint-config a3dd767
  • Update eslint 3dae2f7
  • Update tape, covert, jscs a181eee
  • [Tests] up to node v5.6, v4.3 964929a
  • Test up to io.js v2.1 2be7310
  • Update tape, jscs, eslint, @ljharb/eslint-config 45f3d68
  • [Dev Deps] update tape, jscs 6e1340d
  • [Tests] up to io.js v3.3, node v4.1 d9bad2b
  • Update eslint 935590c
  • [Dev Deps] update jscs, eslint, @ljharb/eslint-config 8c9a1ef
  • Test on io.js v2.2 9a3a38c
  • Run travis-ci tests on iojs and node v0.12; speed up builds; allow 0.8 failures. 69afc26
  • [Dev Deps] Update tape, eslint 36c1be0
  • Update tape, jscs 98d8303
  • Update jscs 9633a4e
  • Update tape, jscs c80ef0f
  • Test up to io.js v3.0 7e2c853
  • Test on io.js v2.4 5a199a2
  • Test on io.js v2.3 a511b88
  • Fixing a typo from 822b4e1938db02dc9584aa434fd3a45cb20caf43 732d6b6
  • Update jscs da52a48
  • Lock covert to v1.0.0. d6150fd

v1.0.2 - 2014-10-04

v1.0.1 - 2014-10-03

Merged

  • make CI build faster #3

Commits

  • Using my standard jscs.json d8ee94c
  • Adding npm run lint 7571ab7
  • Using consistent indentation e91a1b1
  • Updating jscs 7e17892
  • Using consistent quotes c50b57f
  • Adding keywords cb94631
  • Directly export a function expression instead of using a declaration, and relying on hoisting. 5a33c5f
  • Naming npm URL and badge in README; use SVG 2aef8fc
  • Naming deps URLs in README 04228d7
  • Naming travis-ci URLs in README; using SVG 62c810c
  • Make sure functions are invoked correctly (also passing coverage tests) 2b289b4
  • Removing the strict mode pragmas; they make tests fail. 1aa701d
  • Adding myself as a contributor 85fd57b
  • Adding strict mode pragmas 915b08e
  • Adding devDeps URLs to README 4ccc731
  • Fixing the description. a7a472c
  • Using a function expression instead of a function declaration. b5d3e4e
  • Updating tape f086be6
  • Updating jscs 5f9bdb3
  • Updating jscs 9b409ba
  • Run coverage as part of tests. 8e1b6d4
  • Run linter as part of tests c1ca83f
  • Updating covert 701e837

v1.0.0 - 2014-08-09

Commits

  • Make sure old and unstable nodes don't fail Travis 27adca3
  • Fixing an issue when the bound function is called as a constructor in ES3. e20122d
  • Adding npm run coverage a2e29c4
  • Updating tape b741168
  • Upgrading tape 63631a0
  • Updating tape 363cb46

v0.2.0 - 2014-03-23

Commits

  • Updating test coverage to match es5-shim. aa94d44
  • initial 942ee07
  • Setting the bound function's length properly. 079f46a
  • Ensuring that some older browsers will throw when given a regex. 36ac55b
  • Removing npm scripts that don't have dependencies 9d2be60
  • Updating tape 297a4ac
  • Skipping length tests for now. d9891ea
  • don't take my tea dccd930