Complete LAN and router write coverage - #31
Merged
Merged
Conversation
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.
Adds high-level SDK coverage for the remaining live-verified LAN/router write contracts:
lan.set_dhcp_settings()-> complete 12-fieldrouter_set_dhcp_settings_combmulticall write with validation, recovery and exact read-backlan.set_static_reservations()-> complete static reservation table replacement with normalization and exact read-backlan.set_address_legacy()-> deprecated dedicated LAN-IP setter with recovery/read-back and optionalforce=Truefor explicit same-state transport verificationdevice.set_work_mode()-> router/bridge multicall setter with recovery/read-back and optionalforce=Trueset_dns()shares the complete combined-DHCP writer without a redundant second getterValidation covers:
Transport loss during disruptive setters is treated as inconclusive; success is decided only by recovered exact read-back.
Physical lifecycle:
leasetimethrough the full combined setter and verify read-backrouter_set_lan_ipwithforce=Trueat the same addressrouter_set_work_modewithforce=Trueat the same modefinallyNo real MAC/IP reservation data is printed by the physical test. USB management mode remains untouched.
Offline CI #374: SUCCESS (Python 3.10–3.13 + packaging).
Work-mode contract correction during physical preflight:
{"work_mode":"router"}modewas corrected to the livework_modefield0f502608f590b60234b9ab40119d433f8c2c055fStatic DHCP wire-contract correction from shipped ACIY.3 set_dhcp.html:
indexis a JSON integer, not a stringtoStringData=falseSDK now:
intUpstream contract merged in nr2301-api as
f6b17eeb33c249849b573576eaa6edce5a03ed83.Corrected offline CI #385: SUCCESS.
Static DHCP live read-back correction (2026-09-21):
Upstream read-back correction merged in nr2301-api as
a95759277c3d0ad915b0df163e6e89c64eb88938(validator run #194 SUCCESS).Physical LAN/router lifecycle verification (2026-09-21):
DHCP_STATIC_RESIDUE_CLEANUP = PASS)1 passed in 22.76sThis closes the physical verification gap for the LAN/router write block.
Canonical upstream closure:
nr2301-apifirst-class contract/evidence files after the final hardware pass14c1cdf96609a558570f09ec7aaf7ceba8452cf6