- complete MeshCore protocol alignment work across chat/team/hostlink paths
- refactor Contacts Discover into a mode-based action list for consistent UI behavior
- add MeshCore identity/crypto persistence plumbing and related protocol handlers
- document Meshtastic + MeshCore dual-compatibility in README (EN/CN)
This commit closes the PC-to-device app-data send path and wires team location semantics end to end across protocol, service, and UI.
HostLink protocol and runtime:
- Add CMD_TX_APP_DATA (0x15) frame type and CapTxAppData capability bit.
- Implement command parsing for portnum/to/channel/flags/payload and validate payload bounds.
- Add a pending command queue and process commands from AppContext::update() to keep IO task light and avoid direct service execution in the USB thread.
- Route Team app portnums (300..304) to TeamController send paths, including Team mgmt wire decoding and plain/encrypted mgmt selection via flags.
- Preserve generic mesh sendAppData fallback for non-Team app portnums.
- Update hostlink protocol docs with CMD_TX_APP_DATA payload, flags, and Team source mapping/compat notes.
Team service/controller send path:
- Extend TeamController and TeamService send APIs with dest and want_ack parameters for mgmt/chat/position/waypoint/track.
- Add explicit send error mapping for hostlink result reporting and improve last_send_error assignment on encode/encrypt/mesh failures.
UI and data model for semantic location markers:
- Add TeamLocationMarker icon enum helpers and integrate source->icon mapping in UI rendering.
- Update team chat compose Position action to open a marker picker dialog with icon choices and cancel flow.
- Encode selected marker in TeamChatLocation.source, auto-fill label, and send as TEAM_CHAT location payload.
- Extend ChatMessage model with team_location_icon and geo fields so conversation and map can render marker semantics.
- Show semantic icon in team conversation message bubble when location source is a known marker.
- Add GPS map overlay for recent semantic team location markers with member/time labels and lifecycle cleanup.
Assets and docs:
- Add LVGL image assets for AreaCleared/BaseCamp/GoodFind/Rally/SOS markers and source PNGs.
- Update TEAM/HostLink docs with source enum mapping and unknown-value fallback guidance for PC clients.
Other platform-specific input adjustment:
- Refine T-Deck LVGL encoder data reset path to avoid stale state interactions in the input callback.
* feat: PA adjust
* feat: topbar status icon
* fix: settings bug
* feat: unify UI theme and node info link stats
* Improve mesh handling, input back actions, and keyboard alt symbols
- add IRQ/NVS diagnostics for radio and persistence
- refresh link stats and adjust NodeInfo/Position reply handling
- handle Backspace to trigger page back actions
- make Alt act as symbol modifier and rename GPS menu to Map
* fix: hostlink
* style: format
* draft
* Adjust IME candidate scrolling and space behavior
* Remove IME buffer label and update remaining counter
* Align Meshtastic handling and stabilize chat UI
- Align Meshtastic send/receive flow: add routing ACK decoding/log mapping, ack timeouts, channel tracking, and richer RX/TX diagnostics.
- Persist and manage PKI peer keys; add PKI backoff on NO_CHANNEL/UNKNOWN_PUBKEY and fall back to PSK when needed.
- Improve chat UI state handling: safer app switching with exit callbacks, active app clearing on menu return, and safer chat container cleanup.
- Fix Contacts → Compose parent selection to avoid UI tree mismatch; add broadcast compose support and refine action button behavior.
- Add UI debug logging for screen/parent validity and child counts to diagnose black-screen/stacking issues.
- Apply timezone offset helpers for display-time formatting and reuse in screenshot timestamps.
* Add changelog entry and time helpers