feat: configure staged CommandControl rollout - #487
Open
cristibleotiu wants to merge 2 commits into
Open
Conversation
What changed: - configure regrouped communication roles and heartbeat ingress controls - add targeted heartbeat testbed support and legacy rollback fixtures - document persisted config migration, rollout, and SDK fanout validation Why: - deploy the CommandControl changes compatibly across existing and new nodes - provide executable broker and configuration rollout evidence
cristibleotiu
marked this pull request as ready for review
August 19, 2026 05:55
What changed: - remove forced targeted mirror env override from the comms compose testbed - assert persisted comms config enables mirror behavior separately from env precedence Why: - fanout validation should fail if persisted config mirroring is ignored
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary\n- regroup communication roles so CONFIG owns commands and CTRL owns heartbeats\n- add heartbeat ingress queue, auth-worker, targeted-topic, and mirror rollout controls\n- retain an explicit legacy topology fixture and persisted-config rollback guidance\n- extend the isolated EMQX/four-node testbed with broker topology and SDK fanout validation\n\n## Configuration\n- production targeted heartbeat mirroring remains opt-in and default-off\n- the dedicated local communication testbed enables mirroring for selected-node proof\n- existing nodes must update both the startup seed and effective persisted /edge_node/_local_cache/_data/box_configuration/config_app.txt\n- an explicit environment value of 0 can disable persisted targeted mirroring during rollback\n\n## Verification\n- python -m unittest tests.test_comms_testbed_config tests.test_commandcontrol_combined_config: pass, 24 tests\n- all tracked and fixture JSON configurations parse: pass\n- broker topology: 14 managed subscriptions and 20 managed clients with expected owners and QoS\n- all 32 observer-to-target command routes: pass during burst and after reconnect\n- full legacy rollback and mixed legacy/regrouped topology: pass\n- selected-node exact-topic delivery, summary discovery, unavailable-node degradation, and mirror-off no-fallback: pass\n- post-rebase verification against latest develop: pass\n\n## Dependencies\n- SDK: https://github.com/Ratio1/ratio1_sdk/pull/181\n- Core: https://github.com/Ratio1/naeural_core/pull/222\n- deploy these three coordinated candidates together; do not merge only the edge configuration slice into a runtime lacking the matching APIs\n\n## Rollout\n- deploy compatible code with existing roles, full_network SDK, auth shadow, and mirror off\n- calibrate workers on a small oracle cohort for at least one full Epoch\n- migrate persisted roles, then enable targeted mirroring and reduced SDK modes separately\n- enable auth enforcement only after shadow diagnostics are understood\n\n## Residual Risk\n- the isolated testbed uses non-secret ecomms/ecomms placeholders against its anonymous local broker\n- targeted topics are not confidentiality boundaries without broker ACLs\n- config_app.txt is generated runtime state and is intentionally not committed\n\n## Exact PR-Head Artifact\n- image: local_edge_node_comms_ecomms0017:20260818-pr\n- image ID: sha256:e54acaf5c848bcbfd17acc074755a04a42d6712b268f27c87042ce346fb0cc5a\n- installed core affected union: pass, 63 tests\n- clean regrouped broker topology: pass, 14 managed subscriptions / 20 managed clients\n- all 32 observer-to-target command routes: pass\n- teardown: all isolated containers, network, and volumes removed