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
3d4f1a266a
forgot swagger
2026-07-23 09:56:17 -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
8b5e1853b1
bump test
2026-07-23 08:53:20 -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
508337b8ca
perf(db): pass IATA filters as bpchar[] instead of CSV
...
text[] from string_to_array can't match the CHAR(3) indexes and hides
the values from the planner. Handlers already have a slice; stop
joining to CSV in the store layer and pass a typed array everywhere.
2026-07-20 09:07:05 -07:00
MrAlders0n
b8665ebd66
perf(db): index packets(last_heard_at)
...
The packet list sorts by last_heard_at, so every page was a seq scan
plus sort over all packets. Cheap to maintain now that presence writes
are coalesced.
2026-07-20 09:07:05 -07:00
MrAlders0n
0afba79b02
perf(paths): split path hash resolution by prefix width
...
the CASE predicate forced postgres to replan every call; per-width queries reuse a cached plan on the (iata, prefix_n) indexes
2026-07-20 09:01:51 -07:00
MrAlders0n
70c8a87323
build: bump Go to 1.26.5 for GO-2026-5856 crypto/tls fix
2026-07-20 08:55:18 -07:00
MrAlders0n
d113036414
feat(beacon): route ingest through the presence coalescer
2026-07-20 08:55:18 -07:00
MrAlders0n
41a3aa4711
feat(config): presence flush interval and packet ttl settings
2026-07-20 08:55:18 -07:00
MrAlders0n
5804524f0e
feat(db): add batched presence touch queries
...
single-statement flush targets for coalesced last_seen/last_heard_at bumps
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
4860921e90
chore: version bump v1.5.4
v1.5.4
2026-06-24 08:04:54 -07:00
Enot (ded) Skelly
25316a3474
fix(observations): drop heardAt from packet_observation unique constraint
...
this was causing duplicates and each obersver heard a given
packet hash or it didn't, there are not more observations of
the same hash from one observer
2026-06-24 08:04:04 -07:00
Enot (ded) Skelly
86b0549c75
chore: version bump v1.5.3
v1.5.3
2026-06-20 10:33:54 -07:00
Enot (ded) Skelly
3d43600632
fix: forgot swagger
v1.5.2
2026-06-20 10:28:51 -07:00
Enot (ded) Skelly
82ede1e124
chore: version bump v1.5.1
2026-06-20 10:26:13 -07:00
MrAlders0n
2618f7b233
fix: github workflow, post images publically
2026-06-20 13:18:39 -04:00
dependabot[bot]
08ccf220cf
chore(deps): bump github.com/go-chi/chi/v5 from 5.2.2 to 5.2.4
...
Bumps [github.com/go-chi/chi/v5](https://github.com/go-chi/chi ) from 5.2.2 to 5.2.4.
- [Release notes](https://github.com/go-chi/chi/releases )
- [Changelog](https://github.com/go-chi/chi/blob/master/CHANGELOG.md )
- [Commits](https://github.com/go-chi/chi/compare/v5.2.2...v5.2.4 )
---
updated-dependencies:
- dependency-name: github.com/go-chi/chi/v5
dependency-version: 5.2.4
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-06-20 10:14:08 -07:00
Enot (ded) Skelly
556ae066fb
docs(neighbors): forgot neighbors snr in swagger
2026-06-16 16:09:56 -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
ac54e41e49
fix(neighbors): deduplicate count in node summaries
...
only return the count of unique neighbors
2026-06-16 09:06:41 -07:00
Enot (ded) Skelly
b4152e0e5f
feat(ingest): use last seen in observer online check
...
now uses last seen (packet message) as well as last
status (status message) as indicators of observer
being online or not
2026-06-16 09:00:06 -07:00
Enot (ded) Skelly
f67fc3be0d
fix(ci/assets): needed write permission
v1.5.0
2026-06-15 15:18:52 -07:00
Enot (ded) Skelly
5fdd97f478
chore: version bump 1.4.1 to 1.5.0
...
lots of tests and some small refactors
2026-06-15 15:12:22 -07:00