Skip to content

Conversation

HarukiToreda
Copy link
Contributor

@HarukiToreda HarukiToreda commented Oct 2, 2025

Overview

This PR introduces multi-message storage and threaded conversation view support to BaseUI, improving how messages are displayed, stored, and preserved across sessions.

Features

  • Message Storage

    • Stores the last 20 messages in RAM.
    • Persists the last 20 messages to flash on properly initiated reboot/shutdown
      (not hard power cut or reset button press).
    • Automatically restores saved messages from flash into RAM on boot.
    • Added debug logs showing the exact space used when saving to flash and the
      space restored on boot.
  • Conversation Threads

    • Messages are displayed newest to oldest with timestamps in an auto-scrollable thread view.
    • Sent messages are labeled as “Me”.
    • Incoming messages are automatically sorted into the correct thread (DM or Channel broadcast).
    • Auto-focuses on the last active conversation when a new message arrives.
    • Uses boot time counter if no RTC is available, and once valid time is obtained,
      messages are updated and written with the corrected timestamp for persistence.
    • Conversation Menu Options:
      • Switch between conversation views (Channels, DMs, or All).
      • Reply directly to the currently focused conversation.
      • Dismiss Last: remove the oldest message in the current conversation.
      • Dismiss All: clear all messages (when in View All).
  • Message Status Indicators (for sent messages)

    • Checkmark = confirmed ACK.
    • X = failed or timed-out.
    • ⚠️ Exclamation mark = relayed but no ACK.
  • Client Integration

    • Messages created on other clients (phone/web) are captured and added into the correct thread.

Additional Changes

  • Removed legacy message handling from Screen.cpp.
  • Cleaned up CannedMessageModule by removing legacy message sending and temporary message logic.
  • Fixed Emote screen rendering issues.
  • Added autofocus to message screen after sending a new message.
  • Favorite Node screens jump to conversation with action menu option.

@Xaositek Xaositek added the enhancement New feature or request label Oct 3, 2025
@HarukiToreda
Copy link
Contributor Author

big change, we switched from dynamic std::string storage to fixed-size char[] to reduce flash build size

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

baseui Issues directly related to BaseUI enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants