Skip to content

Use canonical openHop Modem transport names - #97

Open
yellowcooln wants to merge 1 commit into
openhop-dev:devfrom
yellowcooln:chore/openhop-modem-config-migration
Open

Use canonical openHop Modem transport names#97
yellowcooln wants to merge 1 commit into
openhop-dev:devfrom
yellowcooln:chore/openhop-modem-config-migration

Conversation

@yellowcooln

@yellowcooln yellowcooln commented Aug 20, 2026

Copy link
Copy Markdown
Member

Summary

Migrate the Repeater UI to the canonical openHop Modem transport names:

  • use modem_tcp and modem_usb throughout setup and radio configuration;
  • display openHop Modem branding for USB-CDC and Wi-Fi/Ethernet hardware;
  • normalize legacy backend payloads at a single UI boundary;
  • cover single-radio and multi-radio configuration paths;
  • avoid hydrating modem tokens into browser state;
  • submit a token only when the user intentionally enters a new value.

Upgrade compatibility

The UI continues to read backend data using the legacy pymc_tcp and pymc_usb keys. Those aliases are normalized to the canonical names before component state is populated.

If a backend response contains both legacy and canonical sections, the canonical section wins. Legacy values are removed from the normalized UI model, preventing duplicate hardware choices or conflicting forms.

The updated UI submits only canonical fields. It is intended to merge first as source, followed by the coordinated Core change, and finally Repeater. The Repeater build assembles the matching UI and backend together, so this UI should not be deployed by itself against an older backend that accepts only legacy setup fields.

User-visible changes

  • openHop Modem (USB-CDC) replaces the legacy USB modem label.
  • openHop Modem (Wi-Fi / Ethernet) replaces the legacy TCP modem label.
  • Setup requests use modem_usb_* and modem_tcp_* fields.
  • Saved radio configuration uses modem_usb and modem_tcp sections.
  • Existing legacy configuration returned by older Repeater versions still hydrates correctly.

Verification

  • Focused modem transport Vitest coverage: 8 tests passed.
  • Full usable Vitest suite passed, excluding one existing navItem.test.ts failure reproduced on upstream dev.
  • npm run type-check passed.
  • Isolated Vite production build passed.
  • Rebased onto current upstream dev before opening this PR.
  • No generated Repeater backend assets are included in this PR.

Coordinated merge order

  1. RepeaterUI — this PR
  2. openHop Core: Rename openHop Modem transport identifiers openhop_core#115
  3. openHop Repeater: Migrate openHop Modem transport and sensor names openhop_repeater#397

Repeater merges last because its Docker build pulls and assembles the matching Core and RepeaterUI sources into the final image.

@yellowcooln yellowcooln added documentation Improvements or additions to documentation enhancement New feature or request labels Aug 20, 2026
@yellowcooln
yellowcooln marked this pull request as ready for review August 20, 2026 17:45
@yellowcooln
yellowcooln requested a review from rightup August 20, 2026 17:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant