Commit Graph
179 Commits
Author SHA1 Message Date
Enot (ded) Skelly 99d7eb0bab feat: add node stale/delete config
closes: #93
2026-07-24 13:09:51 -07:00
Enot (ded) Skelly 3f2506fc8b feat: add geojson for iatas
closes #66
2026-07-24 12:59:48 -07:00
MrAlders0n cbde3d02da perf(stats): matview-back top talkers and advertisers 2026-07-24 12:07:05 -07:00
MrAlders0n b93ce7aba6 serve top observers from a matview instead of scanning per request 2026-07-24 12:07:05 -07:00
MrAlders0n d8ff7d0542 track payload_type on observations and serve the breakdown from a matview 2026-07-24 12:07:05 -07:00
MrAlders0n a84112f7fb fix(traces): review fixes for trace_iatas
Refresh last_heard on duplicate observations too, capped at hourly, so
steady traffic can't age a trace out of the filter (dedup key has no
heard_at). Drop the unused last_heard index column so upserts stay HOT,
and share one retention cutoff across the cleanup deletes.
2026-07-24 12:07:05 -07:00
MrAlders0n 457747b353 perf(traces): track trace activity per IATA in its own table
The trace list joined every trace packet to ~50M observations to apply
the IATA filter; the parallel hash join overran docker's 64MB /dev/shm
and the filtered list errored. Keep a small trace_iatas table at ingest
(like channel_iatas) and group packets by tag instead. Filtered stats
are now per tag rather than per matching packet.
2026-07-24 12:07:05 -07:00
MrAlders0n ba0e85c44e fix(channels): review fixes for channel_iatas
Refresh last_heard on duplicate observations too, capped at hourly, so
steady traffic can't age a channel out of the filter while its packets
stay retained (dedup key has no heard_at). Guard the seed join against
the docker /dev/shm cap like the trace one, and drop the unused
last_heard index column so the upserts stay HOT.
2026-07-24 12:07:05 -07:00
MrAlders0n dff9c6cf00 perf(channels): track channel activity per IATA in its own table
The IATA filter ran a correlated EXISTS over packets/observations with
ILIKE, which skipped the iata index and took ~7s live. Keep a small
channel_iatas table at ingest (like node_iatas) and filter against it.
Also honor the iatas= param so multi-site regions stop getting the
global list. Filter now ages out with packet retention rather than
matching any retained packet.
2026-07-24 12:07:05 -07:00
Enot (ded) Skelly b33ebc007b feat: add plural value filter params
closes #76
2026-07-23 14:26:16 -07:00
Enot (ded) Skelly 8e2798612b feat: add clock drift tracking
closes #71
2026-07-23 13:34:41 -07:00
Enot (ded) Skelly b38663d3a1 feat: add stats for top advertiser and talkers
closes #75
closes #74
2026-07-23 10:41:16 -07:00
Enot (ded) Skelly 0ca28cc6a8 feat: node prefix search
pubkeyPrefix takes any even length prefix string case-insensitive
and returns all matches
2026-07-23 10:14:47 -07:00
Enot (ded) Skelly d8c622316d fix: radio frequency precision
closes #77
2026-07-23 09:58:43 -07:00
Enot (ded) Skelly d7fe41c4a2 fix: missing db test stub 2026-07-23 09:54:36 -07:00
Enot (ded) Skelly f07edf9fb6 feat: include source and destination in path data where available
realted to #85
2026-07-23 09:44:27 -07:00
Enot (ded) Skelly 7a58a07bbd fix: trace packet paths
closes #86
2026-07-23 09:20:00 -07:00
Enot (ded) Skelly ac67308f21 fix: dont log empty status from observers
closes #79
2026-07-23 08:43:26 -07:00
MrAlders0n 30772da2c5 perf(packets): drive IATA-filtered list from the observation index
Quiet sites probed hundreds of thousands of packets to fill a page.
Walk idx_observations_iata_heard per requested site and dedup instead.
Filtered lists now order by site-local recency; the cursor follows.
2026-07-20 09:07:05 -07:00
MrAlders0n 41a3aa4711 feat(config): presence flush interval and packet ttl settings 2026-07-20 08:55:18 -07:00
MrAlders0n 2f12480ec4 feat(presence): coalesce presence writes in memory
batches observer/packet last-seen bumps and flushes on an interval instead of one tx per observation
2026-07-20 08:55:18 -07:00
Enot (ded) Skelly 0ca3c95c9e fix(hub): bug in subscribe logic and a little race condition 2026-07-02 14:19:03 -07:00
Enot (ded) Skelly 975f2f3656 feat(ws): make resolved paths a config toggle in session 2026-07-02 13:54:41 -07:00
Enot (ded) Skelly ca65ed1d9d fix(ingest): add more possible heard at timestamp formats 2026-07-02 13:09:26 -07:00
Enot (ded) Skelly a14a0ac658 feat(paths): included resolved path in ws observation events
changes to shared helper for resolve paths
2026-07-02 09:39:10 -07:00
Enot (ded) Skelly 4e2ee62bad feat(nodes): add ?neighbors to list nodes
inlcudes neighbor IDs in node details list
2026-07-02 09:12:23 -07:00
Enot (ded) Skelly ee2fac1b20 fix(ingest): verify adverts 2026-07-02 08:27:36 -07:00
Enot (ded) Skelly 420a43172b fix(ingest): dedupe unknown channel hashes 2026-07-02 08:08:54 -07:00
Enot (ded) Skelly 7aa5aa3d3a feat(neighbors): grab neighbors for nodes in traces w/ snr 2026-06-16 16:07:35 -07:00
Enot (ded) Skelly f6f94acad8 feat(neighbors): add zero hop advert neighbors for observers w/ snr 2026-06-16 14:47:30 -07:00
Enot (ded) Skelly fd24a71143 feat(neighbors): add observer neighbor snr on discovery response 2026-06-16 14:26:33 -07:00
Enot (ded) Skelly 7b39160ff5 feat(neighbors): add optional snr column 2026-06-16 12:54:31 -07:00
Enot (ded) Skelly af6fbf627b docs(ingest): document other parsed payload structs 2026-06-16 09:48:37 -07:00
Enot (ded) Skelly b1501dfc1f feat(ingest): parse discover request and response 2026-06-16 09:47:53 -07:00
Enot (ded) Skelly 2619d0b904 chore: bump meshcore-go v1.0.8 2026-06-16 09:20:52 -07:00
Enot (ded) Skelly 89fde4868f tests(handlers): few more things to cover 2026-06-15 15:08:38 -07:00
Enot (ded) Skelly e9d4a336ea tests(handlers): add some happy path tests everywhere 2026-06-15 15:02:17 -07:00
Enot (ded) Skelly fea747924d tests(ingest): add more pure coverage 2026-06-15 14:45:57 -07:00
Enot (ded) Skelly 3105eba8e0 chore(keystore): move entryExists into keystore and add tests 2026-06-15 14:38:48 -07:00
Enot (ded) Skelly ecde7957f7 feat(config): pull out resolution into package and add tests
also adds a string method for pretty config printing
2026-06-15 14:35:14 -07:00
Enot (ded) Skelly bb989afeec tests(hub): add hubs tests
as much as we can without mocking connections
2026-06-15 14:24:16 -07:00
Enot (ded) Skelly 7141c0a055 tests(ws): add limiter tests 2026-06-15 14:23:39 -07:00
Enot (ded) Skelly de997e405a tests(background): test bg scheduler 2026-06-15 14:23:20 -07:00
Enot (ded) Skelly ee3ac2d64d tests(keystore): expand tests 2026-06-15 14:15:17 -07:00
Enot (ded) Skelly b8472a5504 tests(scopestore): add tests 2026-06-15 14:13:49 -07:00
Enot (ded) Skelly 16b4394b30 chore(tests): add license header to recent test files 2026-06-15 14:13:34 -07:00
Enot (ded) Skelly fb1a474218 tests(config): add tests for config and seeding 2026-06-15 14:07:58 -07:00
Enot (ded) Skelly 14e3d23b7f tests(cache): add tests for redis cache 2026-06-15 14:07:31 -07:00
Enot (ded) Skelly 4ebe4c869b feat: add route and neighbor reconfirmation task
prunes stale and ambiguous routes and neighbors

keep that data clean
2026-06-12 10:54:06 -07:00
Enot (ded) Skelly 044aecbd3c feat: background task scheduler
move refresh views and delete tasks to scheduler
add new config for refresh and cleanup intervals

new deployments can set these in minutes to see data faster
2026-06-12 10:28:32 -07:00