Commit Graph

74 Commits

Author SHA1 Message Date
l5y 4182a9f83c Add auto-refresh toggle (#105) 2025-09-16 19:21:54 +02:00
l5y 9873f6105d Adjust Leaflet popup styling for dark mode (#104)
* Adjust Leaflet popup styling for dark mode

* some css fixing
2025-09-16 17:14:36 +00:00
l5y 8d3829cc4e feat: add site info overlay (#103) 2025-09-16 19:00:31 +02:00
l5y e424485761 Add long name tooltip to short name badge (#102) 2025-09-16 18:58:29 +02:00
l5y baf7f5d137 Ensure node numeric aliases are derived from canonical IDs (#101)
* Derive node numeric aliases when missing

* Preserve raw message senders when storing payloads

* Normalize packet message sender ids when available

* run rufo
2025-09-16 18:41:49 +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 1beb343501 Handle SQLite busy errors when upserting nodes (#100) 2025-09-16 15:24:01 +02:00
l5y 0c0f877b13 Configure Sinatra logging level from DEBUG flag (#97)
* Configure Sinatra logging level

* Fix logger level helper invocation

* Fix Sinatra logger helper definition syntax
2025-09-16 14:46:50 +02:00
l5y f7a1b5c5ad Add penetration tests for authentication and SQL injection (#95) 2025-09-16 13:13:57 +02:00
l5y 051d09dcaf Document Python and Ruby source modules (#94) 2025-09-16 13:13:12 +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 f4aa5d3873 Add coverage for debug logging on messages without sender (#86)
* Add debug logging spec for messages without sender

* Route debug logging through Kernel.warn

* Relax debug log matchers
2025-09-16 11:33:03 +02:00
l5y 4b9d581448 Add coverage for API authentication and payload edge cases (#83) 2025-09-16 10:18:10 +02:00
l5y 1d3b3f11e9 Add Codecov test analytics to Ruby workflow (#82) 2025-09-16 10:12:25 +02:00
l5y e97824fd0b Configure SimpleCov for Codecov coverage (#81) 2025-09-16 09:58:44 +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 2b6b44a31d Add integration specs for node and message APIs (#76) 2025-09-16 09:29:31 +02:00
l5y 0059a6aab3 docs: update for 0.2.0 release (#75)
* docs: update for 0.2.0 release

* docs: add scrot 0.2
2025-09-16 09:23:11 +02:00
l5y 7399c02be9 Add RSpec tests for app boot and database setup (#73) 2025-09-16 08:25:13 +02:00
l5y 02e985d2a8 Align refresh controls with status text (#72)
* Align refresh controls with status text

* Improve mobile alignment for refresh controls
2025-09-16 08:21:15 +02:00
l5y 7eb36a5a3d remove duplication 2025-09-15 21:35:59 +02:00
l5y 0768b4d91a Improve mobile layout (#68)
* Improve mobile layout

* styling tweaks
2025-09-15 21:32:56 +02:00
l5y be1306c9c0 Normalize message sender IDs using node numbers (#67) 2025-09-15 21:04:29 +02:00
l5y 7904717597 style: simplify node table (#65) 2025-09-15 18:16:36 +02:00
l5y e2c19e1611 Add debug logging for missing from_id (#64) 2025-09-15 18:15:46 +02:00
l5y 31727e35bb add placeholder for default frequency 2025-09-15 14:48:12 +02:00
l5y 580a588df7 Run schema initialization only when database or tables are missing (#61) 2025-09-15 14:05:01 +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 6d948603c9 Convert boolean flags to integers for SQLite (#59) 2025-09-15 13:37:30 +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 4dc1227be7 Add POST /api/messages and enforce API token (#56) 2025-09-15 13:13:47 +02:00
l5y da2e5fbde1 feat: parameterize community info (#55)
* feat: parameterize community info

* chore: restore test data and document env defaults

* also make default channel configurable
2025-09-15 12:15:51 +02:00
l5y 003db7c36a feat: add dark mode toggle (#54)
* feat: add dark mode toggle

* fix chat colors in dark mode
2025-09-15 11:53:49 +02:00
l5y 29dba74038 run linter 2025-09-15 08:04:07 +02:00
l5y aa6a53a1a4 remove monthly stats 2025-09-15 07:45:34 +02:00
l5y a3e625565e Show daily node count in title and header (#49) 2025-09-15 07:03:54 +02:00
l5y 96a7b936f1 Add daily date separators to chat log (#47)
* Add daily divider to chat log

* improve date and time stamps
2025-09-14 23:59:30 +02:00
l5y 737d2016e6 feat: make frontend responsive for mobile (#46) 2025-09-14 23:50:42 +02:00
l5y 547518a105 Harden mesh utilities (#45) 2025-09-14 22:02:06 +02:00
l5y 7773bfc331 minor style tweaks 2025-09-14 21:30:11 +02:00
l5y 9dbca51118 filter map nodes beyond Berlin radius (#43) 2025-09-14 21:24:25 +02:00
l5y 6c454e860e Show active node counts in refresh info (#44) 2025-09-14 21:23:36 +02:00
l5y 27d4ed39db Limit chat log and highlight short names by role (#42)
* Limit chat log size and style short names

* Escape short names in HTML rendering
2025-09-14 21:22:19 +02:00
l5y 7008804ae2 Cast SQLite timestamps to integers (#40) 2025-09-14 21:07:17 +02:00
l5y b9c5d88cb9 Escape chat message and node entries (#39) 2025-09-14 20:23:38 +02:00
l5y 66c0d74776 Sort chat entries by timestamp (#38)
* Sort chat entries by timestamp

* Add nodes only when rendered to avoid skipping on message fetch errors
2025-09-14 20:23:21 +02:00
l5y 3d8c1582bd feat: append messages to chat log (#36)
* feat: append messages to chat

* append some chat styling
2025-09-14 19:54:19 +02:00
l5y 6c6e040e21 Validate future times for nodes (#35) 2025-09-14 19:38:52 +02:00
l5y 334e21d674 Optimize web frontend and Ruby app (#32)
* Optimize web app and cleanup

* Refine node rendering and front-end timing
2025-09-14 19:31:28 +02:00
l5y a1cabec150 Add messages API endpoint with node details (#33)
* Add messages API endpoint with node details

* Preserve message SNR when joining nodes
2025-09-14 19:29:44 +02:00