Commit Graph

35 Commits

Author SHA1 Message Date
l5y cffdb7dca6 Prioritize node posts in queued API updates (#107)
* Prioritize node posts in queued API updates

* run black
2025-09-16 19:30:38 +02:00
l5y 3edf60c625 chore: clean up repository (#96)
* chore: clean up repository

* Fix message spec node lookup for numeric IDs (#98)

* Fix message spec node lookup for numeric IDs

* run rufo

* Fix message node fallback lookup (#99)
2025-09-16 15:25:12 +02:00
l5y 051d09dcaf Document Python and Ruby source modules (#94) 2025-09-16 13:13:12 +02:00
l5y 1c13b99f3b Skip null fields when choosing packet identifiers (#88) 2025-09-16 11:56:02 +02:00
l5y 54a1eb5b42 create python yml ga (#90)
* Create python.yml

* ci: add black

* run an actual formatter

* also add rufo

* fix pytest

* run black
2025-09-16 11:50:33 +02:00
l5y 542f4dd0e2 Handle concurrent node snapshot updates (#85) 2025-09-16 11:10:11 +02:00
l5y 4a72cdda75 Fix extraction of packet sender ids (#84) 2025-09-16 10:35:11 +02:00
l5y 203bd623bd Add Apache license headers to source files (#77)
* Add Apache license headers to source files

* fix formatting
2025-09-16 09:39:28 +02:00
l5y e2c19e1611 Add debug logging for missing from_id (#64) 2025-09-15 18:15:46 +02:00
l5y b230e79ab0 Handle nested dataclasses in node snapshots (#63) 2025-09-15 14:59:23 +02:00
l5y 22127bbfb4 ignore log files 2025-09-15 14:44:32 +02:00
l5y 413278544a Log node object on snapshot update failure (#62) 2025-09-15 14:34:56 +02:00
l5y b39b83fb51 Send mesh data to Potatomesh API (#60)
* feat: post mesh data to API

* Serialize node objects before posting

* don't put raw json in api/db
2025-09-15 14:00:48 +02:00
l5y 648bcc9b92 Use packet id as message primary key (#58)
* Use packet id as message primary key

* fix query

* fix query
2025-09-15 13:34:59 +02:00
l5y 3c24b71f16 ignore copies 2025-09-15 11:42:27 +02:00
l5y 29dba74038 run linter 2025-09-15 08:04:07 +02:00
l5y 547518a105 Harden mesh utilities (#45) 2025-09-14 22:02:06 +02:00
l5y 6c6e040e21 Validate future times for nodes (#35) 2025-09-14 19:38:52 +02:00
l5y 6094609a86 Ensure last_heard never precedes position time (#31) 2025-09-14 17:53:37 +02:00
l5y 2ca87eb847 refactor: replace deprecated utcfromtimestamp (#30) 2025-09-14 17:52:54 +02:00
l5y 63e8891d97 Add optional debug logging for node and message operations (#29) 2025-09-14 13:43:37 +02:00
l5y c52b917f84 switch to pubsub for message parsing 2025-09-14 13:35:58 +02:00
l5y 72a0150006 data: enable serial collection of messages on channel 0 (#25)
* data: enable serial collection of messages on channel 0

* remove tests
2025-09-14 11:37:56 +02:00
l5y a22b103a28 add backups to gitignore 2025-09-14 11:18:02 +02:00
l5y b4600a26af run db migratoin 2025-09-14 09:17:01 +02:00
l5y a09197b398 update map info 2025-09-14 09:16:14 +02:00
l5y 62b096c601 Add first_heard timestamp (#23) 2025-09-14 09:12:57 +02:00
l5y 94171b779c Remove raw node json column (#12) 2025-09-13 14:21:31 +02:00
l5y aeaa2eb1a7 Add authenticated POST endpoint for node updates (#11) 2025-09-13 14:13:52 +02:00
l5y fda224547c data: fix database update issue 2025-09-13 12:09:16 +02:00
l5y f1f0075b65 ci: update workflow for python 2025-09-13 11:34:18 +02:00
l5y 79de69e501 feat: load nodes from json for tests (#8)
* test: verify web query uses populated db

* test: add test script
2025-09-13 11:12:00 +02:00
l5y bac9fb9309 test: cover Position serialization in node snapshot (#6) 2025-09-13 11:01:47 +02:00
l5y e67a96d3d1 data: fix typo in nodes schema to fix #1 2025-09-13 09:14:14 +02:00
l5y aaf77988e9 data: add mesh node data ingestor python daemon 2025-09-13 08:39:00 +02:00