Commit Graph
348 Commits
Author SHA1 Message Date
you ce190886ff fix: normalize packet hash case for deeplink lookups 2026-03-21 05:50:29 +00:00
you 9f53a059c7 fix: regional filters — proper indexed queries + frontend integration
Fixes Kpa-clawbot/meshcore-analyzer#111
2026-03-21 05:48:54 +00:00
you c6d72e828d fix: restore channel message decryption — correct hash matching in API
The /api/channels endpoint was returning simple numeric hash (e.g. '45') while
/api/channels/:hash/messages was using composite keys (e.g. 'ch_#LongFast',
'unk_45') internally. This mismatch meant no channel ever matched, so all
messages appeared encrypted.

Fix: return the composite key as the hash field from /api/channels so the
frontend passes the correct identifier. Also add encodeURIComponent() to
channel API calls in the frontend since composite keys can contain '#'.
2026-03-21 05:47:51 +00:00
you 2834cfccba fix: rewrite favorites filter — correct packet matching + feed list filtering 2026-03-21 05:43:52 +00:00
you d555ea26be feat: add regional filters to all tabs
Fixes Kpa-clawbot/meshcore-analyzer#111
2026-03-21 05:41:02 +00:00
you 133f267c4c fix: favorites filter only affects packet animations, not node markers 2026-03-21 05:37:22 +00:00
you bd5171cf95 fix: validate ADVERT data to prevent corrupted node entries
Fixes Kpa-clawbot/meshcore-analyzer#112
2026-03-21 05:34:57 +00:00
you dc6df38c9a fix: add favorites filter to live map
Fixes Kpa-clawbot/meshcore-analyzer#106
2026-03-21 05:34:51 +00:00
you 0ef1eb2595 Make map default center/zoom configurable via config.json
Adds mapDefaults config option with center and zoom properties.
New /api/config/map endpoint serves the defaults. live.js and map.js
fetch the config with fallback to hardcoded Bay Area defaults.

Fixes Kpa-clawbot/meshcore-analyzer#115
2026-03-21 05:29:05 +00:00
you 4bfe1ec363 Fix channel name resolution to use decryption key, not just hash
Channels sharing the same hash prefix but with different keys (e.g. #startrek
and #ai-bot both with hash 2d) now display the correct name by keying on the
actual channel name from decryption rather than just the hash byte.

Fixes Kpa-clawbot/meshcore-analyzer#108
2026-03-21 05:27:02 +00:00
you 290508d67c Display channel hash as hex in analytics pane
Fixes Kpa-clawbot/meshcore-analyzer#103
2026-03-21 05:25:54 +00:00
you 36ad6c8f75 fix: add hashChannels to config.example.json 2026-03-21 03:52:50 +00:00
you 071acd1561 fix: add paths section to mobile full-screen node view (loadFullNode) 2026-03-21 03:47:32 +00:00
you c72f014f99 feat: add paths-through section to live map node detail panel 2026-03-21 03:38:42 +00:00
you 558687051e feat: label deconfliction on route view markers 2026-03-21 03:33:17 +00:00
you 5f291bdaa7 fix: skip animations when tab is backgrounded, resume cleanly on return 2026-03-21 02:36:51 +00:00
you 31a8f707b6 fix: dedup observations - UNIQUE(hash,observer_id,path_json) + INSERT OR IGNORE
~26% of observations were duplicates from multi-broker MQTT ingestion.
Added UNIQUE index to prevent future dupes, INSERT OR IGNORE to skip
silently, and in-memory dedup check in packet-store.
2026-03-21 02:31:51 +00:00
you 78ea581fc5 feat: improved route view - hide default markers, show origin node 2026-03-21 02:23:53 +00:00
you 1b737519bc feat: paths through node section on repeater detail page 2026-03-21 02:22:59 +00:00
you 0848a6c634 fix: anchor hop disambiguation from sender origin, not just observer
resolve-hops now accepts originLat/originLon params. Forward pass
starts from sender position so first ambiguous hop resolves to the
nearest node to the sender, not the observer.
2026-03-21 02:19:20 +00:00
you 926a68959b fix: raise feed panel bottom to 68px to clear VCR bar, revert z-index 2026-03-21 02:02:55 +00:00
you 67a90a3a33 fix: feed detail card z-index above VCR bar (1100 > 1000) 2026-03-21 01:50:46 +00:00
you be1bcbf733 feat: replay sends all observations, uses realistic propagation on live map 2026-03-21 01:49:31 +00:00
you f6fb024a20 feat: realistic packet propagation mode on live map 2026-03-21 01:41:55 +00:00
you 4395ff348c feat: show packet propagation time in detail pane (spread across observers) 2026-03-21 01:32:00 +00:00
lincomatic 0c97e4e980 Fix require statement for db module 2026-03-21 01:29:01 +00:00
lincomatic 78cc5edbb4 add hashChannels
(cherry picked from commit e35794c4531f3c16ceeb246fbde6912c7d831671)
2026-03-21 01:29:01 +00:00
you c7e528331c remove self-referential hashtag channel key seeding from DB 2026-03-21 01:28:17 +00:00
Kpa-clawbot e9b2dc7c00 Merge pull request #109 from lincomatic/prgraceful
graceful shutdown
2026-03-21 01:25:17 +00:00
Kpa-clawbot 5a36b8bf2e Merge pull request #105 from lincomatic/https
add https support
2026-03-21 01:25:15 +00:00
you 6bff9ce5e7 fix: move hash prefix labels toggle to Display section 2026-03-21 01:17:57 +00:00
you 92c258dabc fix: callout lines more visible — red, thicker, with dot at true position 2026-03-21 00:37:24 +00:00
you 5eacce1b40 feat: show hash prefix in node popup (bold, with byte size) 2026-03-21 00:36:39 +00:00
you 5f3e5a6ad1 fix: deconfliction applies to ALL markers (not just labels), size-aware bounding boxes 2026-03-21 00:35:37 +00:00
you 975abade32 fix: rename toggle to 'Hash prefix labels' 2026-03-21 00:34:06 +00:00
you cf9d5e3325 fix: map labels show short hash ID (e.g. 5B, BEEF), better deconfliction with spiral offsets 2026-03-21 00:30:25 +00:00
you 003f5b1477 Fix hash size labels and add label overlap prevention
- Show '?' with grey background for nodes with null hash_size instead of '1B'
- Add collision detection to offset overlapping repeater labels
- Draw callout lines from offset labels back to true position
- Re-deconflict labels on zoom change
2026-03-21 00:25:55 +00:00
you 1adc3ca41d Add hash size labels for repeater markers on map
- Compute hash_size from ADVERT packets in /api/nodes response
- Show colored rectangle markers with hash size (e.g. '2B') for repeaters
- Add 'Hash size labels' toggle in map controls (default ON, saved to localStorage)
- Non-repeater markers unchanged
2026-03-21 00:19:15 +00:00
you ab22b98f48 fix: switch all user-facing URLs to hash-based for stability across restarts
After dedup migration, packet IDs from the legacy 'packets' table differ
from transmission IDs in the 'transmissions' table. URLs using numeric IDs
became invalid after restart when _loadNormalized() assigned different IDs.

Changes:
- All packet URLs now use 16-char hex hashes instead of numeric IDs
  (#/packets/HASH instead of #/packet/ID)
- selectPacket() accepts hash parameter, uses hash-based URLs
- Copy Link generates hash-based URLs
- Search results link to hash-based URLs
- /api/packets/:id endpoint accepts both numeric IDs and 16-char hashes
- insert() now calls insertTransmission() to get stable transmission IDs
- Added db.getTransmission() for direct transmission table lookup
- Removed redundant byTransmission map (identical to byHash)
- All byTransmission references replaced with byHash
2026-03-21 00:18:11 +00:00
you 607eef2d06 Make ADVERT node names clickable links to node detail page 2026-03-21 00:09:30 +00:00
you 8c2d5d770f fix: Advertised Hash Size field shows byte offset 1 (path byte), not payload offset 2026-03-21 00:03:55 +00:00
you 9d65f041d4 fix: check transmission ID before observation ID in packet lookup 2026-03-20 23:58:23 +00:00
you 8ebce8087b fix: packet detail lookup uses transmission ID index
After dedup, table rows have transmission IDs but getById() maps
observation IDs. Added byTxId index so /api/packets/:id resolves
both observation and transmission IDs correctly.
2026-03-20 23:55:38 +00:00
you e7f2613d1e packets: show Advertised Hash Size prominently in ADVERT field table 2026-03-20 23:43:40 +00:00
you 15e80e56f1 fix: packet links use hash instead of observation ID
After dedup migration, transmission IDs != old packet IDs.
Hash-based links (#/packets/HASH) are stable across the migration.
Affected: node detail, channel messages, live page packet cards.
2026-03-20 23:40:30 +00:00
you 84bf7fb545 packets: show hash_size in detail meta + fix blank hash_size in field table 2026-03-20 23:32:43 +00:00
you 9713e972f9 traces: clickable observer names, path graph, remove redundant observer table
- API returns observer_name + path_json per observation
- Timeline shows resolved names with links to #/observers/<id>
- Path Visualization replaced with SVG graph showing all observed paths
- Removed redundant Observer Details table (same data as timeline)
2026-03-20 23:19:37 +00:00
you 1a87e7410e v2.3.0: Packet Deduplication — normalized storage with transmissions + observations
CI: add setup-node to deploy workflow
v2.3.0
2026-03-20 23:02:58 +00:00
you 91a6a2c525 fix: migration handles concurrent dual-write with INSERT OR IGNORE 2026-03-20 22:52:12 +00:00
you e5a609bbfc Merge dedup-normalize: packet deduplication (M1-M5)
Normalized packet storage: transmissions + observations tables.
- M1: Schema migration script
- M2: Dual-write ingest
- M3: In-memory store restructured around transmissions
- M4: API responses include observation_count, totalTransmissions
- M5: Frontend badges, deeplinks, dedup-aware UI
2026-03-20 22:49:13 +00:00