409 Commits

Author SHA1 Message Date
JingleManSweep
92ff1ab306 Merge pull request #146 from ipnet-mesh/chore/codecov-tests
Add Test upload
2026-03-18 12:05:17 +00:00
JingleManSweep
0e2a24caa6 Upgrade Codecov action and specify report type
Updated Codecov action to version 5 and added report type.
2026-03-18 12:03:05 +00:00
JingleManSweep
ff36a991af Update ci.yml 2026-03-18 11:57:23 +00:00
JingleManSweep
fa1a2ecc17 Add Codecov badge to README
Added Codecov badge to README for coverage tracking.
2026-03-18 11:55:06 +00:00
JingleManSweep
9099ffb0cb Merge pull request #145 from ipnet-mesh/fix/codecov-default
Add push trigger for CI on main branch
2026-03-18 11:42:37 +00:00
JingleManSweep
f8219b4626 Add push trigger for CI on main branch 2026-03-18 11:39:42 +00:00
JingleManSweep
27b78d6904 Merge pull request #144 from ipnet-mesh/chore/add-codecov
Add CODECOV_TOKEN to CI workflow
2026-03-18 11:32:45 +00:00
JingleManSweep
d4c3e127a2 Add CODECOV_TOKEN to CI workflow 2026-03-18 11:23:32 +00:00
JingleManSweep
92e9ccdbfa Merge pull request #143 from ipnet-mesh/feature/multibyte-support
feat: support multibyte path hashes for MeshCore firmware v1.14+
v0.8.2
2026-03-17 23:02:51 +00:00
Louis King
29b5820ed1 feat: support multibyte path hashes for MeshCore firmware v1.14+
Update path hash handling to accept variable-length hex-encoded hashes
(e.g. "4a" for single-byte, "b3fa" for multibyte) instead of requiring
exactly 2-character hashes. Bump meshcore dependency to >=2.3.0.

- Update normalizer to accept even-length hex strings >= 2 chars
- Update schemas and model docstrings for variable-length hashes
- Add tests for multibyte and mixed-length path hash round-trips
- Fix web test flakiness from local .env datetime locale leaking
2026-03-17 22:59:29 +00:00
JingleManSweep
889aa32e3a Merge pull request #142 from ipnet-mesh/fix/security-fixes
fix: harden security across auth, XSS, and proxy trust
v0.8.1
2026-03-09 22:57:33 +00:00
Louis King
3c3873951d chore: add agentmap and security fixes planning files 2026-03-09 22:54:53 +00:00
Louis King
4b58160f31 fix: harden security across auth, XSS, and proxy trust
- Use hmac.compare_digest for constant-time API key comparison in auth
  and metrics endpoints to prevent timing attacks
- Escape user-controlled data in admin JS templates (members, node-tags)
  to prevent XSS via innerHTML
- Escape </script> sequences in embedded JSON config to prevent XSS
  breakout from <script> blocks
- Add configurable WEB_TRUSTED_PROXY_HOSTS setting instead of trusting
  all proxy headers unconditionally
- Warn on startup when admin is enabled with default trust-all proxy
- Remove legacy HTML dashboard endpoint (unused, superseded by SPA)
- Add comprehensive auth and dashboard test coverage
2026-03-09 22:53:53 +00:00
JingleManSweep
a32255e110 fix: support monochrome custom logos via logo-invert.svg filename convention (#141)
Custom logos were hardcoded as full-color, making white/monochrome logos
invisible in light mode. Adds logo-invert.svg as a higher-priority
candidate that enables the brightness filter in light mode.
v0.8.0
2026-03-09 17:30:40 +00:00
JingleManSweep
59a1898824 Merge pull request #139 from ipnet-mesh/renovate/docker-metadata-action-6.x
Update docker/metadata-action action to v6
2026-03-06 21:21:14 +00:00
renovate[bot]
9256f8375d Update docker/metadata-action action to v6 2026-03-06 19:03:36 +00:00
JingleManSweep
e9b25c1ca7 Merge pull request #140 from ipnet-mesh/renovate/docker-build-push-action-7.x
Update docker/build-push-action action to v7
2026-03-06 19:03:03 +00:00
renovate[bot]
749bed6d5b Update docker/build-push-action action to v7 2026-03-06 18:04:06 +00:00
JingleManSweep
97539cb960 Merge pull request #128 from yellowcooln/main
LetsMesh Compatibility Mode: Decoder-Backed Messaging, Admin Proxy Auth, and Branding/Timezone Improvements
2026-03-06 18:03:32 +00:00
yellowcooln
c418959e5d Use patch-package file for meshcore-decoder Docker compatibility patch 2026-03-06 12:35:47 -05:00
JingleManSweep
14fac89f49 Merge branch 'main' into main 2026-03-05 12:00:36 +00:00
JingleManSweep
8201be5a39 Merge pull request #137 from ipnet-mesh/renovate/docker-setup-buildx-action-4.x
Update docker/setup-buildx-action action to v4
2026-03-05 11:47:19 +00:00
renovate[bot]
17fa2f1005 Update docker/setup-buildx-action action to v4 2026-03-05 11:44:58 +00:00
JingleManSweep
535186efb1 Merge pull request #138 from ipnet-mesh/renovate/docker-setup-qemu-action-4.x
Update docker/setup-qemu-action action to v4
2026-03-05 11:44:36 +00:00
JingleManSweep
fa1db5e709 Merge branch 'main' into renovate/docker-setup-qemu-action-4.x 2026-03-05 11:42:14 +00:00
JingleManSweep
840b8636a2 Merge pull request #136 from ipnet-mesh/renovate/docker-login-action-4.x
Update docker/login-action action to v4
2026-03-05 11:42:00 +00:00
renovate[bot]
cb305083e7 Update docker/setup-qemu-action action to v4 2026-03-05 11:38:49 +00:00
renovate[bot]
d475a12292 Update docker/login-action action to v4 2026-03-05 11:38:41 +00:00
JingleManSweep
53f0ce7225 Merge pull request #135 from ipnet-mesh/chore/fix-actions
Updates
2026-03-05 11:36:55 +00:00
Louis King
90268e9b98 Updates 2026-03-05 11:34:18 +00:00
yellowcooln
18edcfe9bf Extract LetsMesh normalization from subscriber into dedicated module 2026-03-04 20:21:49 -05:00
yellowcooln
2a380f88b4 Fix review items 001/003/005 for decoder, channel labels, and node filters 2026-03-04 20:07:37 -05:00
yellowcooln
c22274c4e5 Add LetsMesh structured event parity mappings 2026-03-03 16:18:54 -05:00
Yellowcooln
54449aa5fb Delete agent.md 2026-03-03 16:18:54 -05:00
yellowcooln
15556c3eb9 Document NPM admin proxy configuration and auth troubleshooting 2026-03-03 16:18:54 -05:00
yellowcooln
6a66eab663 Refine LetsMesh status ingest and custom logo behavior 2026-03-03 16:18:54 -05:00
yellowcooln
2f40b4a730 Add LetsMesh compatibility ingest, decoder integration, and admin auth updates 2026-03-03 16:18:54 -05:00
JingleManSweep
3eff7f03db Merge pull request #130 from shiqual/main
Add Dutch localization file nl.json
v0.7.5
2026-03-02 23:38:37 +00:00
JingleManSweep
905ea0190b Merge branch 'main' into main 2026-03-02 23:35:45 +00:00
JingleManSweep
86cc7edca3 Merge pull request #129 from ipnet-mesh/renovate/major-github-artifact-actions
Update actions/upload-artifact action to v7
2026-03-02 23:30:39 +00:00
shiqual
eb3f8508b7 Add Dutch localization file nl.json
Dutch translation
2026-03-02 00:13:46 +01:00
renovate[bot]
74a34fdcba Update actions/upload-artifact action to v7 2026-02-26 20:53:07 +00:00
JingleManSweep
175fc8c524 Merge pull request #127 from ipnet-mesh/chore/fix-metrics-labels
Add role label to node last seen metric and filter alerts by role
v0.7.4
2026-02-19 00:05:08 +00:00
Louis King
2a153a5239 Add role label to node last seen metric and filter alerts by role
Joins NodeTag (key='role') to the node last seen Prometheus metric so
alert rules can target infrastructure nodes only (role="infra").

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 00:01:20 +00:00
JingleManSweep
de85e0cd7a Merge pull request #126 from ipnet-mesh/feat/prometheus
Add Prometheus metrics endpoint, Alertmanager, and 1h stats window
v0.7.3
2026-02-18 23:09:22 +00:00
Louis King
5a20da3afa Add Prometheus metrics endpoint, Alertmanager, and 1h stats window
Add /metrics endpoint with Prometheus gauges for nodes, messages,
advertisements, telemetry, trace paths, events, and members. Include
per-node last_seen timestamps for alerting. Add Alertmanager service
to Docker Compose metrics profile with default blackhole receiver.
Add NodeNotSeen alert rule (48h threshold). Add 1h time window to
all windowed metrics alongside existing 24h/7d/30d windows.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 23:06:07 +00:00
JingleManSweep
dcd33711db Merge pull request #125 from ipnet-mesh/feat/auto-update-lists
Add configurable auto-refresh for list pages
v0.7.2
2026-02-18 16:07:25 +00:00
Louis King
a8cb20fea5 Add configurable auto-refresh for list pages
Nodes, advertisements, and messages pages now auto-refresh on a
configurable interval (WEB_AUTO_REFRESH_SECONDS, default 30s). A
pause/play toggle in the page header lets users control it. Setting
the interval to 0 disables auto-refresh entirely.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 14:37:33 +00:00
JingleManSweep
3ac5667d7a Merge pull request #118 from ipnet-mesh/feat/node-list-tag-improvements
Fix clipboard copy error with null target
v0.7.1
2026-02-14 01:49:09 +00:00
JingleManSweep
c8c53b25bd Merge branch 'main' into feat/node-list-tag-improvements 2026-02-14 01:46:45 +00:00