jangala-dev / jangala-dev/devicecode-lua

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

Abierto
#329 0 comentarios 0 reacciones 2 asignados Ver en GitHub

@rslater-cs ya está trabajando en esto.

Desde el 3/9/2026.

Lenguaje dominante
Lua
Estrellas
1
Forks
0
Merge medio
6 d 8 h
PR fusionados (30 d)
6

Descripción

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.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.