Skip to content

refactor(settings): remove Traffic Management module config#5878

Merged
jamesarich merged 1 commit into
mainfrom
claude/serene-neumann-cb318e
Jun 20, 2026
Merged

refactor(settings): remove Traffic Management module config#5878
jamesarich merged 1 commit into
mainfrom
claude/serene-neumann-cb318e

Conversation

@jamesarich

Copy link
Copy Markdown
Collaborator

The Traffic Management module-config protos are being gutted upstream in meshtastic/protobufs (the firmware config/settings are being removed in parallel). This removes the matching Android consumer code so the app stays in lockstep with the proto schema.

The feature was gated behind supportsTrafficManagementConfig (atLeast(V2_8_0)) and never shipped in a stable release, so this is a zero-user-impact removal — a pure deletion (0 insertions).

🧹 Removal

  • Deleted the TrafficManagementConfigScreen (TrafficManagementConfigItemList.kt)
  • Removed ModuleRoute.TRAFFIC_MANAGEMENT (enum entry + exclude-bitfield branch) and its SettingsNavigation wiring
  • Removed SettingsRoute.TrafficManagement, the nav route, and the traffic-management deep link
  • Removed Capabilities.supportsTrafficManagementConfig
  • Removed the traffic_management merge lines in RadioConfigViewModel and the InstallProfileUseCase install line
  • Removed the unused MeshtasticIcons.TrafficManagement icon (the generic ic_alt_route drawable is left in place for reuse)
  • Removed the 16 traffic_management* base string resources and re-ran sort-strings.py (localized copies will be pruned by Crowdin on the next sync)

🛠️ Notes for reviewers

  • No proto bump in this PR. :core:proto stays on org.meshtastic:protobufs:2.7.25, which still contains TrafficManagementConfig / TrafficManagementStats. v2.7.26 is GitHub-only (not yet on Maven Central) and has not gutted the protos. Removing the consumer code does not require the proto to be gone; the version bump will follow once a tagged + published release actually drops the field — which will also confirm this removal was complete.
  • All when statements over ModuleRoute (exclude-bitfield and SettingsNavigation) remain exhaustive after the enum entry was dropped.

Testing Performed

  • ./gradlew spotlessApply spotlessCheck detekt assembleDebug — clean (no spotless/detekt findings)
  • :core:model:allTests, :core:navigation:allTests, :core:domain:allTests, :feature:settings:allTests, :core:ui:allTests — all pass (361 tests)
  • Updated commonTest: dropped the supportsTrafficManagementConfig assertions in CapabilitiesTest, the route in NavigationConfigTest / DeepLinkRouterTest, and the traffic_management profile-install case in InstallProfileUseCaseTest

🤖 Generated with Claude Code

The Traffic Management module-config protos are being gutted upstream
(meshtastic/protobufs); this removes the matching Android consumer code
so the app stays in lockstep with the proto schema.

The feature was gated behind supportsTrafficManagementConfig (firmware
v2.8.0+) and never shipped in a stable release, so this is a
zero-user-impact, pure-deletion change. Stays on protobufs 2.7.25 —
the bump is deferred until a published release actually removes the
traffic_management proto.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions github-actions Bot added the refactor no functional changes label Jun 20, 2026
@github-actions

github-actions Bot commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

🖼️ Preview staleness check — advisory

This PR modifies UI composables but does not update any *Previews.kt files.

Previews power screenshot tests and in-app docs screenshots. Keeping them current ensures visual regression coverage stays accurate.

Changed UI files:

feature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/radio/component/TrafficManagementConfigItemList.kt

What to check:

Pattern Preview file convention
feature/{name}/…/ui/ or component/ feature/{name}/…/*Previews.kt
core/ui/…/ core/ui/…/ (previews colocated)

Adding previews checklist:

  1. Create or update a *Previews.kt file in the same module with @PreviewLightDark
  2. Add @Suppress("PreviewPublic") if the preview is consumed by screenshot-tests
  3. Add corresponding @PreviewTest function in screenshot-tests/src/screenshotTest/
  4. Run ./gradlew :screenshot-tests:updateDebugScreenshotTest to generate reference images

If this PR does not require preview updates (e.g., logic-only change, non-visual refactor), add the skip-preview-check label to dismiss.

@github-actions

Copy link
Copy Markdown
Contributor

📄 Docs staleness check — advisory

This PR modifies user-facing UI source files but does not update any page under docs/en/user/ or docs/en/developer/.

⚠️ Doc changes propagate to 3 consumers: in-app docs browser, Jekyll site (GitHub Pages), and meshtastic.org (Docusaurus sync). Updating a page in docs/en/ automatically flows to all three.

Changed source files:

core/ui/src/commonMain/kotlin/org/meshtastic/core/ui/icon/Telemetry.kt
feature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/radio/component/TrafficManagementConfigItemList.kt

What to check:

Changed area Likely doc page
feature/messaging/ docs/en/user/messages-and-channels.md
feature/node/ docs/en/user/nodes.md or docs/en/user/node-metrics.md
feature/map/ docs/en/user/map-and-waypoints.md
feature/connections/ docs/en/user/connections.md
feature/settings/ docs/en/user/settings-radio-user.md or docs/en/user/settings-module-admin.md
feature/firmware/ docs/en/user/firmware.md
feature/intro/ docs/en/user/onboarding.md
feature/discovery/ docs/en/user/discovery.md
feature/docs/ Internal docs infrastructure
core/ui/ docs/en/developer/codebase.md or component-specific user pages

New page checklist (if adding a new doc page):

  1. Create the .md file in docs/en/user/ or docs/en/developer/ with last_updated frontmatter
  2. Register in DocBundleLoader.kt with string resources (in-app browser)
  3. Jekyll and Docusaurus sync pick up new pages automatically — no config change needed

If this PR does not require a doc update (e.g., internal refactor, bug fix, test change), add the skip-docs-check label to dismiss this check.

Cross-platform note: This check is advisory while doc coverage matures. Both Android and Apple repos use the same skip-docs-check label and advisory severity. See meshtastic/design standards for shared conventions.

@jamesarich jamesarich added the skip-docs-check Dismiss the advisory docs-staleness check (no user/developer doc update needed) label Jun 20, 2026
@jamesarich jamesarich enabled auto-merge June 20, 2026 12:42
@jamesarich jamesarich added this pull request to the merge queue Jun 20, 2026
Merged via the queue into main with commit ea47e01 Jun 20, 2026
23 checks passed
@jamesarich jamesarich deleted the claude/serene-neumann-cb318e branch June 20, 2026 12:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

refactor no functional changes skip-docs-check Dismiss the advisory docs-staleness check (no user/developer doc update needed)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant