feat(settings): wire is_unmessagable/is_licensed into DeviceProfile export/import#6065
Merged
Conversation
…xport/import protobufs#971 added these fields to DeviceProfile for CLI/app profile parity. Export/import now round-trips both via the profile picker dialog; install applies is_unmessagable directly. is_licensed is deliberately excluded from auto-install since enabling ham mode needs the dedicated set_ham_mode flow (reboot, encryption disable, tx power/frequency) that a plain set_owner would skip. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
👮 Files not reviewed due to content moderation or server errors (5)
📝 Walkthrough
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
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.
Why
meshtastic/protobufs#971 added
is_unmessagable(tag 9) andis_licensed(tag 10) to theDeviceProfilemessage so exported/imported profiles can carry these per-node settings, mirroring a companion change on the CLI side (meshtastic/python#944). The proto pin already landed onmainvia #6063 — this wires the new fields into the app rather than leaving them silently unpopulated.What changed
🌟 New Features
RadioConfigRepositoryImpl.deviceProfileFlownow includesis_unmessagable/is_licensedfrom the connected node'sUserwhen building aDeviceProfilefor export.EditDeviceProfileDialog's field picker gained two checkboxes (reusing the existingunmessageable/licensed_amateur_radiostrings) so users can choose whether to include these in an exported/imported profile.InstallProfileUseCaseappliesis_unmessagableon install.🛠️ Deliberate scope limit
is_licensedis intentionally not auto-applied on install. Enabling ham mode is a dedicated onboarding flow (set_ham_mode: reboot, disable encryption, apply tx power/frequency) — seeRadioConfigViewModel.saveUserConfig. A plainset_ownerwithis_licensed=truewould flag the radio licensed without any of those required side effects, so the field round-trips through export/import for backup purposes only, with a comment explaining why it's excluded from install.Testing Performed
InstallProfileUseCaseTest: assertsis_unmessagableis installed andis_licensedis never auto-installed.lastSetOwnerUsercapture hook toFakeRadioControllerto make the above assertable../gradlew spotlessApply spotlessCheck detekt— clean (extracted two tag constants for a detekt magic-number rule).:core:domain:allTestsand:feature:settings:allTests(200+ tests) — all pass.🤖 Generated with Claude Code