Repository navigation
v0.2.25
🚀 重點新增(相較 v0.2.22)
- 遙測/訊息儲存升級:改用 SQLite 正規化 schema,啟動時非阻塞載入快照,支援串流查詢、CSV 匯出與快速時段切換,舊 JSONL/快照會自動匯入並標示進度。
- 節點資料庫與 CLI 強化:新增
--clear-nodedb、--summary-log等旗標,僅 snapshot 能建立節點、invalid relay / hop limit 封包不再污染 DB,UI 會在缺資料時回落 Mesh ID。 - APRS / TenManMap 管線:自動化 feed filter、dedup window、拒絕原因/呼號顯示、
/debugsnapshot 與 TenMan inbound 篩選;log 可視需求靜音或開啟詳細輸出。 - Docker 自動更新與多架構:全新
docker-entrypoint.sh會在背景每AUTO_UPDATE_POLL_SECONDS(預設 300 秒)輪詢main/dev,偵測到新 commit 後自動git pull + npm ci並重啟應用,且 GHCR 映像現已提供linux/amd64、linux/arm64、linux/arm/v7(例如 NanoPi NEO 也能直接docker pull ghcr.io/toodi0418/cmclient:latest)。 - systemd 自啟範例:新增
systemd/callmesh-client.service.example,調整WorkingDirectory後即可讓主機開機時自動執行docker compose up -d。
🛠 修正與調整
- Web Dashboard 與 GUI 的 summary/telemetry 呈現完全同步,補齊來源/目的 Mesh ID、hop invalid 判定與節點名稱 fallback。
- Node/relay 事件新增多層防護(placeholder Mesh ID、limit-only hop、TenMan inbound 一律忽略),並於
/debug揭露資料來源。 - APRS 呼號遺失、pending 狀態與拒絕後呼號重設等問題修正,CLI summary log 時戳統一採收包時間,避免桶計算漂移。
- Telemetry CSV/查詢改採串流輸出,長區間不再卡 UI;TenManMap 互動新增節流、reply id、relay 說明等強化。
⚠️ 升級注意事項
- 需要 Node 22(
package.json已鎖定,CI 與pkg亦切換)。 - 首次啟動會將
telemetry-records.jsonl與舊訊息表寫入 SQLite,請保留CALLMESH_ARTIFACTS_DIR空間並勿中斷流程。 - Docker
.env預設AUTO_UPDATE=1、AUTO_UPDATE_POLL_SECONDS=300,偵測到新 commit 會自動重啟;若環境無法連網或要鎖定映像,請改為AUTO_UPDATE=0。 - 使用 systemd 範例時務必更新
WorkingDirectory後sudo systemctl daemon-reload && sudo systemctl enable --now callmesh-client。 - APRS feed filter 現由程式自動設定,若需自訂請透過環境變數覆寫並搭配
/debug驗證;TenMan inbound 預設被忽略,需放行時請調整 Bridge 設定。
➡️ 完整變更可見 v0.2.22...v0.2.25