jangala-dev / jangala-dev/devicecode-lua

Track functional differences from devicecode v0.9.x and devicecode-lua v0.10.6 to v0.11.2

オープン
#329 コメント 0 件 リアクション 0 件 担当者 2 名 GitHub で見る

@rslater-cs がすでに取り組んでいます。

2026年9月3日 から。

主要言語
Lua
スター
1
フォーク
0
平均マージ
6日 8時間
マージ済み PR(30日)
6

説明

Summary

Document functional differences and remaining parity work for the prospective devicecode-lua v0.11.2.

Baselines:

  • devicecode v0.9.x
    • Get Box production baseline: v0.9.2
    • Big Box SS legacy baseline: v0.9.0
  • devicecode-lua v0.10.6
    • Current OCW Big Box SS baseline
  • Prospective devicecode-lua v0.11.2
    • dev at 3328ef0 on 2026-09-03
    • No v0.11.2 tag exists yet

Immediate rollout scope is CM/CM2 and OCW Big Box SS. Get Box differences are recorded as intentionally deferred work. Switch migration is excluded.

Status

  • ✅ Resolved in current dev
  • ⚠️ Remaining difference requiring action or approval
  • ⏳ Intentionally deferred until Get Box migration
  • ℹ️ Architectural/interface change

devicecode v0.9.xdevicecode-lua v0.11.2

Get Box parity — deferred

There is currently no Get Box product configuration or service profile in devicecode-lua.

  • Target and hardware support

    • Add a getbox-v1 configuration.
    • Configure the ath79 platform, EC25 modem path, Ethernet ports and 2.4 GHz radio.
    • Define the Get Box service set and builder startup configuration.
  • Network configuration

    • Preserve jng and adm networks and their existing addressing.
    • Preserve wired WAN and cellular WAN behavior.
    • Preserve advertisement filtering on the user network.
    • Preserve config.getbox.home, the Unifi record and Starlink administration route.
    • Port Get Box shaping: 2/8 Mbit upload and 1.5/6 Mbit download.
  • SIM PIN management

    • Port the automatic SIM lock/unlock lifecycle.
    • Preserve deterministic PIN generation from ICCID and build salt.
    • Preserve /data/configs/locked_iccids.json.
    • Preserve cloud simcheck, offline deferral and post-connect reconciliation.
    • Preserve SIM PIN attempts and lock/unlock failure telemetry.
    • This was released only on Get Box and is not a v0.11.2 blocker.
  • SIM balance reporting

    • Port the O2 BALANCE SMS request.
    • Preserve balance/expiry parsing and SMS cleanup.
  • Get Box LEDs

    • Port offline, wired-online and cellular signal-strength patterns.
  • Device identity

    • Preserve the MAC-derived GetBox-<short-id> hostname and SSID behavior.
  • Wi-Fi recovery

    • Decide whether to port or formally retire the watchdog that restarts Wi-Fi after RX traffic remains stalled for five minutes while clients are connected.
  • Persistent configuration and profiles

    • Decide how legacy /data/configs/user.cfg and remote.cfg are migrated.
    • Decide whether time-of-day addn profiles remain supported.
Shared and Big Box SS behavior
  • Big Box SS shaping restored

    • PR #319 restores the legacy 400 kbit sustained, 2 Mbit peak and 200 k burst policy.
    • Included in dev as a43fb3f.
  • APN selection without GID1

    • PR #328 makes GID1 optional again.
    • Included in dev as 8283b5b.
  • Transient modem initialization recovery

    • PR #325 adds bounded modem reset/retry behavior and tests.
    • Included in dev as e6bd25e.
  • Big Box SS USB3 handling

    • The VL805 firmware guard, device migration checks and rollback behavior are preserved.
  • ⚠️ System telemetry

    • board_revision is emitted but has no SS metrics pipeline and is silently dropped.
    • temp is emitted, but SS still configures the obsolete temperature pipeline key.
    • The legacy system.heartbeat metric has no direct replacement.
    • Decide whether heartbeat removal is intentional.
  • ⚠️ General configuration persistence

    • Startup reads the packaged configs/<target>.json.
    • cmd/config/set writes to the state filesystem capability.
    • Product configurations map state to /tmp/devicecode-state.
    • Nothing loads that snapshot during the next startup, so accepted changes do not survive reboot.
    • No in-repository caller currently uses cmd/config/set, making this latent for the immediate OCW release but important before exposing runtime configuration.

devicecode-lua v0.10.6devicecode-lua v0.11.2

Remaining behavioral differences
  • ⚠️ OCW system telemetry regression

    The following v0.10.6 cloud metrics are absent in current dev:

    • system.board_revision
    • system.temp
    • system.power_undervoltage
    • system.power_under_voltage_occurred
    • system.power_arm_frequency_capped
    • system.power_currently_throttled

    board_revision and temp have producers but lack matching SS pipelines. The four Raspberry Pi power/throttling metrics no longer have producers.

  • ⚠️ IPv6 policy changed

    • v0.10.6 configured firewall.defaults.disable_ipv6=1.
    • The new fw4-compatible configuration removes that setting.
    • The OpenWrt network renderer defaults network.globals.ula_prefix to auto.
    • Confirm whether local IPv6/ULA should be enabled on OCW.
  • ⚠️ DNS cache size changed

    • v0.10.6: 1,000 entries.
    • Current dev: 10,000 entries.
    • Confirm this increase is intentional for Big Box SS.
  • ⚠️ Speed-test freshness changed

    • v0.10.6 reused results for 10 minutes following a WAN-online transition.
    • Current dev uses path-aware results with a six-hour freshness interval and retry backoff.
    • Confirm the longer interval is intended.
  • ⚠️ Configuration persistence

    • v0.10.6 did not expose general persistent runtime configuration.
    • Current dev exposes cmd/config/set, but its persisted snapshot is not loaded after reboot.
    • Either implement a durable seed-plus-overlay model or document/remove the persistence claim.
Intended or resolved changes
  • ✅ SS shaping changes from the v0.10.6 6/24 Mbit download and 3/12 Mbit upload values to the corrected 400 kbit/2 Mbit symmetric policy.
  • ✅ GID1 is optional during APN selection.
  • ✅ Modem initialization now has bounded recovery attempts.
  • ✅ SNR telemetry is added.
  • ✅ Custom APNs are managed through the persistent GSM control store.
  • ✅ HTTPS MWAN stickiness remains, but is now explicit in product configuration.
  • ✅ Dynamic WAN weighting and speed tests are generation-aware and path-aware.
  • ✅ Daily reboot and USB3 policy remain configured.
  • ℹ️ Network configuration moved to the versioned declarative intent model.
  • ℹ️ Configuration topics now use cfg/<service> with {rev, data} envelopes.
  • ℹ️ Metrics moved from collection subscriptions to obs/v1/<service>/metric/<name>.
  • ℹ️ HAL access moved from direct UCI/driver topics to managed capabilities.
  • ℹ️ Device, HTTP, monitor, UI and wired services were added or substantially rewritten.
  • ℹ️ Development/test target configurations were removed from the production config set; CM2 was added.

Acceptance criteria for v0.11.2

  • GID1-unavailable APN test passes.
  • Big Box SS shaping matches the approved 400 kbit/2 Mbit policy.
  • Modem initialization recovery from PR #325 is merged.
  • Restore or explicitly approve removal of the six OCW system metrics.
  • Confirm the intended IPv6 policy.
  • Confirm DNS cache and speed-test freshness changes.
  • Decide the contract for cmd/config/set persistence.
  • Compare generated v0.11.2 SS UCI against v0.10.6 for VLANs, DHCP, DNS filtering, firewall rules, MWAN, Starlink routing and shaping.
  • Compare cloud SenML output between v0.10.6 and v0.11.2.
  • Run an OCW hardware smoke test covering both modems, USB3 migration, wired WAN, MWAN weighting, shaping and telemetry.
  • Keep Get Box parity tasks tracked but explicitly excluded from the v0.11.2 release gate.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。