jangala-dev / jangala-dev/devicecode-lua
Track functional differences from devicecode v0.9.x and devicecode-lua v0.10.6 to v0.11.2
@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
- Get Box production baseline:
devicecode-lua v0.10.6- Current OCW Big Box SS baseline
- Prospective
devicecode-lua v0.11.2devat3328ef0on 2026-09-03- No
v0.11.2tag 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-v1configuration. - Configure the ath79 platform, EC25 modem path, Ethernet ports and 2.4 GHz radio.
- Define the Get Box service set and builder startup configuration.
- Add a
-
⏳ Network configuration
- Preserve
jngandadmnetworks 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.
- Preserve
-
⏳ 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.2blocker.
-
⏳ SIM balance reporting
- Port the O2
BALANCESMS request. - Preserve balance/expiry parsing and SMS cleanup.
- Port the O2
-
⏳ 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.
- Preserve the MAC-derived
-
⏳ 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.cfgandremote.cfgare migrated. - Decide whether time-of-day
addnprofiles remain supported.
- Decide how legacy
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
devasa43fb3f.
-
✅ APN selection without GID1
- PR #328 makes GID1 optional again.
- Included in
devas8283b5b.
-
✅ Transient modem initialization recovery
- PR #325 adds bounded modem reset/retry behavior and tests.
- Included in
devase6bd25e.
-
✅ Big Box SS USB3 handling
- The VL805 firmware guard, device migration checks and rollback behavior are preserved.
-
⚠️ System telemetry
board_revisionis emitted but has no SS metrics pipeline and is silently dropped.tempis emitted, but SS still configures the obsoletetemperaturepipeline key.- The legacy
system.heartbeatmetric has no direct replacement. - Decide whether heartbeat removal is intentional.
-
⚠️ General configuration persistence
- Startup reads the packaged
configs/<target>.json. cmd/config/setwrites to thestatefilesystem capability.- Product configurations map
stateto/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.
- Startup reads the packaged
devicecode-lua v0.10.6 → devicecode-lua v0.11.2
Remaining behavioral differences
-
⚠️ OCW system telemetry regression
The following
v0.10.6cloud metrics are absent in currentdev:system.board_revisionsystem.tempsystem.power_undervoltagesystem.power_under_voltage_occurredsystem.power_arm_frequency_cappedsystem.power_currently_throttled
board_revisionandtemphave producers but lack matching SS pipelines. The four Raspberry Pi power/throttling metrics no longer have producers. -
⚠️ IPv6 policy changed
v0.10.6configuredfirewall.defaults.disable_ipv6=1.- The new fw4-compatible configuration removes that setting.
- The OpenWrt network renderer defaults
network.globals.ula_prefixtoauto. - 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.6reused results for 10 minutes following a WAN-online transition.- Current
devuses path-aware results with a six-hour freshness interval and retry backoff. - Confirm the longer interval is intended.
-
⚠️ Configuration persistence
v0.10.6did not expose general persistent runtime configuration.- Current
devexposescmd/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.66/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/setpersistence. - Compare generated
v0.11.2SS UCI againstv0.10.6for VLANs, DHCP, DNS filtering, firewall rules, MWAN, Starlink routing and shaping. - Compare cloud SenML output between
v0.10.6andv0.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.2release gate.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Evaluación
Este issue todavía no se ha evaluado.