[Epic] Meshtastic incoming packet pathway: correctness review
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 15/100
調査の方向性
This is an epic, not a single fix. Start by reading Meshflow/packets/views.py (PacketIngestView), Meshflow/packets/serializers.py and the docs in docs/features/packet-ingestion/. Pick one unchecked review area, such as the portnum inventory, and produce its part of the gap analysis. Done means a child issue is linked here and the matching field docs are updated. Wait for the 2.8.x work in #437 to land before touching shared files.
索引モデルが issue の本文から書いたものです。
説明
Summary
Epic. Do a thorough end-to-end review of the Meshtastic incoming packet pathway (bot → POST /api/packets/{node_id}/ingest/ → serializers → MtRawPacket / PacketObservation → signals → downstream apps) to make sure every packet type and field we receive is handled deliberately — stored, normalised, or knowingly ignored — rather than silently dropped or mis-parsed.
The 2.8.x firmware work has been split out to #437. Each checkbox below is a candidate child ticket. Raise child issues as they are scoped and link them here.
Sequencing with #437
- Shared, do now under #437: the portnum/field inventory, test fixtures, and the protobuf/library bump. This epic reuses them rather than redoing them.
- Correctness bugs found during the 2.8 work are fixed there, in the code it is already touching.
- The rest of this review runs after the 2.8 must-haves land. It overlaps the remaining 2.8 work only where the two touch different files.
Review areas
Starting points: Meshflow/packets/views.py (PacketIngestView), Meshflow/packets/serializers.py, Meshflow/packets/services/, Meshflow/packets/receivers.py / signals.py, and the docs in docs/features/packet-ingestion/ (meshtastic.md, PACKET_FIELDS.md, DEDUPLICATION.md, signals.md).
- Portnum inventory: list every portnum the firmware can emit; for each one, record what the bot forwards, what the API does with it (serializer / model / signal), and what happens to anything unhandled (reject, store raw, or drop). Flag the gaps.
- Telemetry variants: check every
Telemetryoneof (device, environment, air quality, power, health, host, local stats, traffic management) and its fields against the current protobufs. Look for fields we drop or name wrongly. - Packet envelope fields:
hop_start,hop_limit,relay_node,next_hop,via_mqtt,rx_snr,rx_rssi,rx_time,channel,pki_encrypted,public_key,priority,transport_mechanismand so on. Note which we persist per packet and which per observation. - Encrypted / undecodable packets: what happens to them today, and is that what we want?
- Dedup: re-check the dedup key and window (
find_existing_packet,DEDUPLICATION.md) against relays, MQTT-bridged copies and multiple observers. - Error handling: validation failures, partial payloads and unknown enums. Make sure a single bad field doesn't cost us the whole packet without leaving a log.
- Bot side: check the meshflow-bot transform (
sanitise, channel inference,rawstripping) for anything lost before it reaches the API. If changes are needed there, raise a linked issue in meshflow-bot. - Tests: add fixture packets in
docs/packets/for each portnum and variant, and make sure every serializer has coverage. - Docs: update
meshtastic.md/PACKET_FIELDS.mdso they match reality.
Deliverables
- A written gap analysis added to
docs/features/packet-ingestion/. - A child issue for each concrete fix.
- Updated fixtures, tests and field docs.
Child tickets
None yet. Add them here as they are raised.
Related
- #437: Meshtastic 2.8.x firmware support
- #319: retire v1 ingest URLs
- #83: per-observation forwarded-by
- 主要言語
- Python
- スター
- 1
- フォーク
- 0
- 平均マージ
- 1日 20時間
- マージ済み PR(30日)
- 5
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
pskillen/meshflow-api のほかの issue
-
enhancement meshtastic-2.8
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
pskillen/meshflow-api#459 ·
-
enhancement meshtastic-2.8
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
pskillen/meshflow-api#465 ·
-
enhancement meshtastic-2.8
難易度 4/5 3〜5日 初心者へのやさしさ 22/100
pskillen/meshflow-api#464 ·
-
enhancement meshtastic-2.8
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
pskillen/meshflow-api#463 ·
-
enhancement meshtastic-2.8
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
pskillen/meshflow-api#462 ·
pskillen/meshflow-api の issue をすべて見る
似ている issue
-
cost:cheap practicality:seen-in-the-wild severity:medium
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
fairagro/m4.2_advanced_middleware_api#620 ·
メンテナーはふだん 1 日以内に返信
-
area:security effort:S priority:P2 provider:local-libvirt status:ready type:docs
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
randomparity/kdive#3495 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
microsoft/markitdown#2820 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 2 日以内に返信