mirror of
https://github.com/dpup/meshstream.git
synced 2026-03-28 17:42:37 +01:00
Replace the flat circular buffer with NodeAwareCache, a smarter eviction strategy for historical mesh packet data: - Packets younger than 1 hour are never evicted (recent traffic preserved) - Under pressure, evict from the lowest-priority type first (neighbor-info outlasts node-info; chat messages outlast everything) - Within a priority tier, evict from the most recently active source node — that node will resend soonest, so its old packet is cheapest to lose (Bélády approximation; protects flaky/distant node history) - Node retention window still applies: silent nodes' packets are excluded from GetAll and pruned proactively before priority eviction runs Also: - Add --cache-retention flag (default 3h) and raise --cache-size default to 5000 - Fix decoder error strings (replace verbose Go errors with short codes) - Add HTTP security headers middleware to server - Fix broker dispatchLoop deadlock on source channel close - Fix make gen-proto scanning web/node_modules for .proto files - Fix tools target always reinstalling protoc-gen-go (handles stale arch binary) - Move server port from 8080 to 5446; update Dockerfile, docker-compose, moat.yaml Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
27 lines
546 B
YAML
27 lines
546 B
YAML
name: meshstream
|
|
dependencies:
|
|
- go
|
|
- node@20
|
|
- pnpm
|
|
- make
|
|
- protoc
|
|
- git
|
|
- docker:dind
|
|
grants:
|
|
- github
|
|
env:
|
|
MESHSTREAM_MQTT_BROKER: mqtt.bayme.sh
|
|
MESHSTREAM_MQTT_USERNAME: meshdev
|
|
MESHSTREAM_MQTT_PASSWORD: large4cats
|
|
MESHSTREAM_MQTT_TOPIC_PREFIX: msh/US/bayarea
|
|
MESHSTREAM_SERVER_HOST: "0.0.0.0"
|
|
MESHSTREAM_SERVER_PORT: "5446"
|
|
MESHSTREAM_LOG_LEVEL: info
|
|
MESHSTREAM_VERBOSE_LOGGING: "false"
|
|
MESHSTREAM_CACHE_SIZE: "1000"
|
|
hooks:
|
|
pre_run: "cd /workspace/web && pnpm install"
|
|
ports:
|
|
web: 5446
|
|
runtime: docker
|