Commit Graph

393 Commits

Author SHA1 Message Date
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
Louis King e4a1b005dc Fix clipboard copy error with null target
Capture e.currentTarget synchronously before async operations
to prevent it from becoming null in async promise handlers.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-14 01:44:28 +00:00
JingleManSweep 27adc6e2de Merge pull request #117 from ipnet-mesh/feat/node-list-tag-improvements
Improve node list tag display with name, description, members, and emoji extraction
2026-02-14 01:37:11 +00:00
Louis King 835fb1c094 Respect FEATURE_MEMBERS flag in advertisements page
- Only fetch members data when feature is enabled
- Hide member filter when feature is disabled

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-14 01:32:18 +00:00
Louis King d7a351a803 Respect FEATURE_MEMBERS flag in nodes list
- Only fetch members data when feature is enabled
- Hide member filter when feature is disabled
- Hide member column when feature is disabled
- Adjust table colspan dynamically based on feature

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-14 01:30:38 +00:00
JingleManSweep 317627833c Merge pull request #116 from ipnet-mesh/feat/node-list-tag-improvements
Improve node display with descriptions, members, and emoji extraction
2026-02-14 01:24:05 +00:00
Louis King f4514d1150 Improve node display with descriptions, members, and emoji extraction
Enhances the web dashboard's node presentation to match official MeshCore
app behavior and provide better user experience:

- Extract emoji from node names (e.g., "🏠 Home Gateway" uses 🏠 icon)
- Display description tags under node names across all list pages
- Add Member column to show network member associations
- Add copyable public key columns on Nodes and Advertisements pages
- Create reusable renderNodeDisplay() component for consistency
- Improve node detail page layout with larger emoji and inline description
- Document standard node tags (name, description, member_id, etc.)
- Fix documentation: correct Python version requirement and tag examples

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-14 01:20:52 +00:00
JingleManSweep 7be5f6afdf Merge pull request #115 from ipnet-mesh/chore/http-caching
Add HTTP caching for web dashboard resources
v0.7.0
2026-02-14 00:05:44 +00:00
Louis King 54695ab9e2 Add beautifulsoup4 to dev dependencies
Required for HTML parsing in web caching tests.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-14 00:03:28 +00:00
Louis King 189eb3a139 Add HTTP caching for web dashboard resources
Implement cache-control middleware to optimize browser caching and reduce
bandwidth usage. Static files are cached for 1 year when accessed with
version parameters, while dynamic content is never cached.

Changes:
- Add CacheControlMiddleware with path-based caching logic
- Register middleware in web app after ProxyHeadersMiddleware
- Add version query parameters to CSS, JS, and app.js references
- Create comprehensive test suite (20 tests) for all cache behaviors

Cache strategy:
- Static files with ?v=X.Y.Z: 1 year (immutable)
- Static files without version: 1 hour (fallback)
- SPA shell HTML: no-cache (dynamic config)
- Health endpoints: no-cache, no-store (always fresh)
- Map data: 5 minutes (location updates)
- Custom pages: 1 hour (stable markdown)
- API proxy: pass-through (backend controls)

All 458 tests passing, 95% middleware coverage.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-14 00:01:08 +00:00
JingleManSweep 96ca6190db Merge pull request #113 from ipnet-mesh/claude/add-i18n-support-1duUx
Fix translation key in node detail page: nodes.tags → entities.tags
2026-02-13 23:10:35 +00:00
Louis King baf08a9545 Shorten translation call-to-action with GitHub alert
Replaced verbose translation section with concise GitHub alert notification.

- Uses [!IMPORTANT] alert style for better visibility
- Reduced from 16 lines to 4 lines
- Keeps essential information and link to Translation Guide
- More scannable and professional appearance

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-13 23:07:53 +00:00
JingleManSweep 1d3e649ce0 Merge branch 'main' into claude/add-i18n-support-1duUx 2026-02-13 23:03:43 +00:00
Louis King 45abc66816 Remove Claude Code review GitHub action
Removed the code-review.yml workflow that automatically runs Claude Code review on pull requests.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-13 23:03:22 +00:00
Louis King 9c8eb27455 Fix translation key in node detail page: nodes.tags → entities.tags
The Tags panel title was showing 'nodes.tags' as literal text instead of the translation.

Fixed: node-detail.js line 174 now uses entities.tags

Comprehensive review completed:
- Verified all 115 unique translation keys across all pages
- All keys properly resolve to valid translations in en.json
- All i18n tests passing

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-13 23:01:49 +00:00
JingleManSweep e6c6d4aecc Merge pull request #112 from ipnet-mesh/claude/add-i18n-support-1duUx
Add i18n support for web dashboard
2026-02-13 22:38:49 +00:00
Louis King 19bb06953e Fix remaining translation key: common.all_nodes
Replaced non-existent common.all_nodes key with common.all_entity pattern.

- advertisements.js: Use common.all_entity with entities.nodes
- map.js: Use common.all_entity with entities.nodes

All translation keys now properly resolve across the entire dashboard.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-13 22:36:17 +00:00