fix: batch bug fixes for Advanced Settings pages (#749-#759) - #763
Merged
Conversation
…cho read-only (ISS-2/3/4/6/8) - Add ppp_interface.yaml and vlan_termination.yaml multi-instance YAML definitions - Slim down wan_settings.yaml: remove PPP/VLAN/LCPEcho/MAC clone fields - Swap Gateway/DNS to X_LINKSYS_DefaultGateway and X_LINKSYS_DNSServers vendor paths (ISS-3/4) - Add PPP instance lifecycle: Add when switching TO PPPoE, Delete when switching away (ISS-2) - Add VLAN instance lifecycle: Add when enabling, Delete when disabling (ISS-8) - Make LCPEcho display-only via UspInfoRow, remove from validator (ISS-6) - Add DNS comma-separated split (fetch) and merge (save) in service layer - Track pppInstancePath and vlanInstancePath in InternetSettingsStatus - Regenerate ppp_interface.g.dart, vlan_termination.g.dart, wan_settings.g.dart, index.dart - Update documentation: vendor param R/W correction, fix design FW notes, SSH re-validation - Rewrite service tests: parallel fetch, DNS split/merge, PPP/VLAN Add/Delete, DHCP renewal Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Comment out the Auto switch UI for MTU in optional settings section, replacing it with a simple numeric input field, since the device always returns the actual MTU value (e.g. 1500) and has no concept of "auto". Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add MACAddressRule validation with inline error on MAC input field - Add IpAddressRule and IpAddressNoReservedRule on IP input field - Disable submit button when form is invalid or fields are empty - Update wan_settings generated code and internet settings service Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Change backFallback from RouteNamed.uspMenu to RouteNamed.uspLocalNetwork since DHCP Settings is accessed from the Local Network page Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Use onBackTap with explicit goNamed(RouteNamed.uspFirewall) instead of backFallback, because canPop() returns true in nested ShellRoute and pop() goes to the parent route (Advanced Settings) rather than Firewall Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove link-local (fe80::/10) and ULA (fc00::/7) rejection from IPv6WithReservedRule since these are valid targets for LAN port service - Update final check to accept Global Unicast, Link-local, and ULA - Still reject: loopback, multicast, unspecified, deprecated 6bone - Update tests to expect link-local and ULA addresses as valid Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… dialog - Add real-time validation on all input fields with inline error messages - Validate description max length (32 chars) - Validate port numbers range (1–65535) for external start/end and internal - Validate external port end must be greater than start - Validate internal IP address format using IpAddressRule - Disable submit button when form is invalid or required fields are empty Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…fields (#759) Post-save re-fetch may return empty addressingType transiently while bridgeEnabled is always true (LAN-side L2 bridge), causing fromRawFields() to misdetect connection type as Bridge. Add one-shot _preservedConnectionType guard in notifier: set during performSave when type unchanged, consumed by performFetch to override transient misdetection. Also add TODO comments for proper Bridge Mode implementation via TR-181 Bridging model (tracked in #762). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace AlertDialog/TextButton/FilledButton with AppDialog/AppButton in DHCP reservation and port range forwarding dialogs - Apply dart format fixes - Add unit tests for UspWanConnectionType and InternetSettingsStatus Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This was
linked to
issues
Mar 25, 2026
Closed
fix: [IPv6 Port Service] back button incorrectly navigates to Menu instead of Advanced Settings
#753
Closed
Closed
Closed
AustinChangLinksys
approved these changes
Apr 1, 2026
AustinChangLinksys
left a comment
Collaborator
There was a problem hiding this comment.
✅ Code Review Approved
Comprehensive bug fix PR addressing critical UX issues in Advanced Settings pages.
Key Improvements:
- Fixed navigation paths for DHCP and IPv6 Port Service pages
- Added robust input validation with proper error feedback
- Implemented PPP/VLAN multi-instance CRUD with firmware compatibility
- Enhanced IPv6 validation to accept link-local and ULA addresses
- Comprehensive test coverage for all changes
Code Quality: High - follows established patterns with proper error handling
Risk Level: Low - well-contained fixes with thorough testing
Backward Compatibility: Excellent - handles firmware variations gracefully
Ready for merge. Great work on addressing multiple user-facing issues systematically! 🚀
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
Skipped (pending FW team)
Test plan