Files
tetrapack-calls/docs
misadeksandCopilot App c732045c2a MS: service management config read/staging before synchronization
The MS stack is receive-timed: MessageRouter::run_stack_ms only ticks the
entities once the PHY recovers a downlink slot (DL-synchronized). Before the
MS syncs to a base station no tick runs, so MM's control-command path
(poll_control in tick_start) never executes and management GetConfig/SetConfig/
ApplyConfig requests sit unserviced -- the UI sees an empty/absent config.

Add a pre-tick offline-servicing path so config read/staging works as soon as
the control link is up, independent of registration/service state:

- TetraEntityTrait::drive_offline_control (default no-op); MessageRouter calls
  it on every run_stack_ms iteration that recovers no slot.
- MmMs overrides it to service only the offline-safe management subset
  (GetConfig/SetConfig/ApplyConfig/GetState/GetInterfaceVersion) -- none inject
  SAP traffic needing the stack clock or a serving cell. Every other command
  (TNMM requests, scan-list toggles) is buffered in deferred_control and
  replayed, in arrival order, on the first real tick, so registration and
  on-air behaviour are byte-identical to never having run offline.

No config schema change, no secret-handling change (******** redaction/restore
preserved), no on-air/registration behaviour change. ApplyConfig staging/
restart semantics kept as-is.

Tests: 4 new lib tests (offline GetConfig round-trip, offline SetConfig persist
+restart flag, offline secret redaction, TNMM registration deferral-until-tick).
316 lib + all integration tests pass; bluestation-bs builds clean.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-07-25 17:23:34 +02:00
..