Skip to content

Rebase migration architecture onto main#307

Open
cpunt wants to merge 124 commits into
mainfrom
migration-base-rebase
Open

Rebase migration architecture onto main#307
cpunt wants to merge 124 commits into
mainfrom
migration-base-rebase

Conversation

@cpunt

@cpunt cpunt commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • rebase the migration architecture branch onto main
  • resolve the three historical conflict groups in favor of the migration architecture
  • pin local UI dev to c4451f4f386f5e47a13e8689a0bbf587031e34b2 and use a detached checkout for reproducible builds
  • remove the obsolete QMI test and align the Bigbox shaping assertions with the migrated config

This replaces #304. The original migration-base branch is unchanged.

Rebase details

  • base: e8a5a2f7a5ae546e4b8ea8b8ee97e0998055f102
  • original migration tip: 28062f6c2de654009a7131b108a8586bb72dbe8b
  • rebased tip: 10e6dc348bdd92efb8c1a911fc9a7325bc3821f4
  • 123 migration commits replayed, followed by one reconciliation commit
  • no merge commits in the resulting range

Conflict policy:

  • accept migration deletions for the superseded QMI, system, log, UI, and diagnostics service files
  • accept the migration .env
  • accept the migrated Bigbox configuration files

Intentional behavior changes

  • /api/diagnostics remains a stub; the legacy fan and active-SIM diagnostics are not restored
  • legacy Raspberry Pi undervoltage metrics and the old per-level UI log cache are not restored
  • legacy network status/download subjects are replaced by the migration speed-test/backhaul model
  • old Bigbox configs are replaced by bigbox-v1-cm-2.json

Validation

  • make env (UI checked out detached at the pinned SHA)
  • make test — 1,099 passed, 0 failed, 0 skipped
  • make build-ui
  • npm --prefix local-ui/client run test:unit — 69 passed
  • make -C local-ui lint
  • make -C tests/integration/openwrt_vm test-devicecode-openwrt-no-blocking-os-io
  • make test-all — Devicecode, FFI, and POSIX tests pass; the vendor lua-fibers nixio suite cannot start because this container has no nixio poller backend
  • make lint — reports 1,219 warnings and 0 errors on this branch
  • full OpenWrt VM tests — unavailable here because the container has no QEMU AArch64 binary/EFI and no KVM access

Keep this PR in draft until the outstanding validation is resolved or explicitly accepted. Branch protection also requires one approving review before merge.

lePereT and others added 30 commits July 22, 2026 11:19
lePereT and others added 27 commits July 22, 2026 11:19
* terminates abandoned http object immediately

* detach, don't terminate
* lua: implement rtl8380m wired provider

* lua: narrow rtl8380m wired provider http access

* docs: capture RTL8380 switch discovery

* http: make legacy-http1-close a bounded parser mode

* services: introduce declared narrow capability dependencies

* hal: parse the real RTL8380 switch snapshot

* tests: add opt-in real switch provider integration

* device: project wired-provider identity and telemetry

* various small fixes

* rebase

* merge correction

---------

Co-authored-by: OpenAI <oai@example.com>
Co-authored-by: Rich Thanki <richardthanki@gmail.com>
* fix: allow configurable exit grace period for service cancellation to fix timout in main test

* cleaner formatting for grace period
* add speedtest metrics handling and unit tests

* refactor speedtest command execution and error handling

* enhance speedtest request translation to support VLAN semantic devices

* add error handling utility for structured error messages in request loop

* add speedtest reconciliation logic and enhance logging for speedtest completion

* add test for speedtest translation of semantic devices to Linux counter devices

* add post-apply observation trigger for enhanced logging in apply_op

* enhance build_changes to support clearing policy members and refactor delete_option function

* add enhanced logging and error handling for speedtest operations

* add validation for mwan3 policy member management during changes

* add test for WAN speedtests waiting for multiwan observation

* better method placement

* refactor mwan3 functions to streamline weight management and remove unused delete_option

* update compute_weights logic to correctly handle generation checks and add new test for weight calculation

* implement weight application logic in reconcile_speedtests and add corresponding unit test

* enhance compute_weights to accept options and improve speedtest success checks
* makes switch driver architecture cimpliant

* polling groups, pollers are owned child workers

* cleanup

* adopts stronger ordering and removes the poll_interval_s compatibility path

* better obs

* significant cleanup, structural serialisation and testing
* quietens http significantly

* idempotent ui status publish
* implement read counters functionality in network provider and client for metrics reporting

* move metric observerbilty into dedicated file
…device state handling (#286)

* minimum necessary fixes

* makes local ui, mcu upload and mcu commit call auth-free

* corrects small regression

* unauth paths use ui's own auth

* top-level job_id

* makes /api/update/upload a strict update workflow route

* more portable xxhash32 implementation

* reply required

* simpler commit payload

* image_id

* cross code testing harness

* go-lua integration test

* better behaving uart driver

* lightweight tracing and a better behaved protocol

* bumps fibers to 0.10

* finer tracing

* http finer tracing

* tracing in monitor/obs

* per chunk

* new protocol

* adds stty setup and tests

* enables production fw path, transient by default

* fixes update race

* tightened phase RPC retry

* fixes flaky test

* transfer retry reconcile

* mcu schema

* active job retry limit

* makes job validity less brittle, corrects test assertions
)

* coherent exec across hal

* extends to transient QMI SIM power-cycle commands

* corrects http leak, switch timeout

* calm switch

* fixes tests
* initial commit

* test fix

* rationalise shaping
* first pass

* ui pass

* removes semantic creep
* initial ui commit

* Serve built local UI bundle

* ui: clarify connectivity state ownership and WAN speedtest behaviour (#292)

* Expose system metrics to local UI

* Rebuild UI status bundle

* Narrow local UI event watches

* ui: stream service logs to local UI

* gsm: publish SIM lock state

* ui: refresh bundled local ui

* ui: refresh bundled local ui

* ui: stop tracking generated static bundle

* wired: dedupe pending backhaul logs

* gsm: treat absent SIM as disconnected

* ui: remove logs from default event stream

* gsm: gate sim locks on modem state

* gsm: publish active sims as present

* lua: publish system stats reliably

* lua: encode local ui sse as json

* lua: accept apn control store writes

* build: include local ui in build-all

* build: fast-forward local ui branch

* ui: update local ui nav label

* lua: expose mwan online duration

* lua: publish mwan online timestamp

* major overhaul of semantics and adds lightweight models

* cleans up and minimises update

* fixes modemcard race condition

* lua: update rich-fix local ui

* ui: serve startup logs and backhaul durations

* lua: preserve update job policy

* build: move local-ui checkout out of src

* net: remove backhaul duration projection

* fixes speedtest, new model (#298)

---------

Co-authored-by: Rich Thanki <richardthanki@gmail.com>

---------

Co-authored-by: Rich Thanki <richardthanki@gmail.com>
@cpunt cpunt mentioned this pull request Jul 22, 2026
18 tasks
@cpunt
cpunt requested a review from lePereT July 22, 2026 11:27
@cpunt
cpunt marked this pull request as ready for review July 22, 2026 11:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants