jangala-dev / jangala-dev/devicecode-lua
Track functional differences from devicecode v0.9.x and devicecode-lua v0.10.6 to v0.11.2
- Vorherrschende Sprache
- Lua
- Sterne
- 1
- Forks
- 0
- Ø Merge
- 6 T. 8 Std.
- Gemergte PRs (30 T.)
- 6
Beschreibung
## 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.x` → `devicecode-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-` 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/.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.6` → `devicecode-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/` with `{rev, data}` envelopes.
- ℹ️ Metrics moved from collection subscriptions to `obs/v1//metric/`.
- ℹ️ 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`
- [x] GID1-unavailable APN test passes.
- [x] Big Box SS shaping matches the approved 400 kbit/2 Mbit policy.
- [x] 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.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Bewertung
Dieses Issue wurde noch nicht bewertet.