mirror of
https://github.com/zvx-echo6/meshai.git
synced 2026-08-26 17:31:34 +00:00
* 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>
14 KiB
14 KiB
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
jscs90eb2ed - [meta] update
.gitignore53fcdc3 - [Tests] up to
nodev11.10,v10.15,v9.11,v8.15,v6.16,v4.9; usenvm install-latest-npm; run audit script in tests1fe8f6e - [meta] add
auto-changelog1921fcb - [Robustness] remove runtime dependency on all builtins except
.applyf743e61 - Docs: enable badges; update wording
503cb12 - [readme] update badges
290c5db - [Tests] switch to nyc for coverage
ea360ba - [Dev Deps] update
eslint,@ljharb/eslint-config,tapecae5e9e - [meta] add
fundingfield; create FUNDING.ymlc9f4274 - [Tests] fix eslint errors from #15
f69aaa2 - [actions] fix permissions
99a0cd9 - [meta] use
npmignoreto autogenerate an npmignore filef03b524 - [Dev Deps] update
@ljharb/eslint‑config,eslint,tape7af9300 - [Dev Deps] update
eslint,@ljharb/eslint-config,covert,tape64a9127 - [Tests] use
audinstead ofnpm audite75069c - [Dev Deps] update
@ljharb/eslint-config,aud,taped03555c - [meta] add
safe-publish-latest9c8f809 - [Dev Deps] update
@ljharb/eslint-config,tapebaf6893 - [meta] create SECURITY.md
4db1779 - [Tests] add
npm run auditc8b38ec - Revert "Point to the correct file"
05cdf0f
v1.1.1 - 2017-08-28
Commits
- [Tests] up to
nodev8; newer npm breaks on older node; fix scripts817f7d2 - [Dev Deps] update
eslint,jscs,tape,@ljharb/eslint-config854288b - [Dev Deps] update
tape,jscs,eslint,@ljharb/eslint-config83e639f - 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 sharedeslintconfig9c9062a - Add
npm run eslintdd96c56 - [New] return the native
bindwhen available.82186e0 - [Dev Deps] update
tape,jscs,eslint,@ljharb/eslint-configa3dd767 - Update
eslint3dae2f7 - Update
tape,covert,jscsa181eee - [Tests] up to
nodev5.6,v4.3964929a - Test up to
io.jsv2.12be7310 - Update
tape,jscs,eslint,@ljharb/eslint-config45f3d68 - [Dev Deps] update
tape,jscs6e1340d - [Tests] up to
io.jsv3.3,nodev4.1d9bad2b - Update
eslint935590c - [Dev Deps] update
jscs,eslint,@ljharb/eslint-config8c9a1ef - Test on
io.jsv2.29a3a38c - Run
travis-citests oniojsandnodev0.12; speed up builds; allow 0.8 failures.69afc26 - [Dev Deps] Update
tape,eslint36c1be0 - Update
tape,jscs98d8303 - Update
jscs9633a4e - Update
tape,jscsc80ef0f - Test up to
io.jsv3.07e2c853 - Test on
io.jsv2.45a199a2 - Test on
io.jsv2.3a511b88 - Fixing a typo from 822b4e1938db02dc9584aa434fd3a45cb20caf43
732d6b6 - Update
jscsda52a48 - 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 lint7571ab7 - 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 coveragea2e29c4 - 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