mirror of
https://github.com/vicliu624/trail-mate.git
synced 2026-10-23 21:43:28 +00:00
Refactor Reticulum runtime ownership boundaries
Add Reticulum runtime budget, announce scheduling, deferred discovery, RX telemetry, and adapter scratch owners. Route notification feedback through a platform notification runtime, keep product calls on Sideband LXST, and classify Reticulum network projections. Unify LoRa TX budget handling across protocol actions, ACK retry, app sends, and MQTT downlink relay; document frozen runtime ownership rules and add smoke coverage.
This commit is contained in:
1 parent
5fedc327f3
commit
f2ff45283d
70 files changed
+3423
-756
No files matched your search
@@ -89,7 +89,7 @@ constexpr bool kFlashPackStorageEnabled = false;
|
||||
|
||||
#if defined(ESP_PLATFORM) || defined(ARDUINO_ARCH_ESP32)
|
||||
constexpr bool kAllowSynchronousContentSupplementFontLoad = false;
|
||||
constexpr bool kAllowDeferredContentSupplementFontLoad = false;
|
||||
constexpr bool kAllowDeferredContentSupplementFontLoad = true;
|
||||
#else
|
||||
constexpr bool kAllowSynchronousContentSupplementFontLoad = true;
|
||||
constexpr bool kAllowDeferredContentSupplementFontLoad = true;
|
||||
|
||||
@@ -103,7 +103,10 @@ ui::UiActionResult RuntimeChatActionSink::markRead(ui::chat::ConversationId id)
|
||||
return ui::UiActionResult::fail(ui::UiActionFailure::Unsupported);
|
||||
}
|
||||
|
||||
chat_service_.markConversationRead(core_id);
|
||||
if (!chat_service_.markConversationRead(core_id))
|
||||
{
|
||||
return ui::UiActionResult::fail(ui::UiActionFailure::Rejected);
|
||||
}
|
||||
return ui::UiActionResult::success();
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "app/app_facade_access.h"
|
||||
#include "chat/infra/mesh_protocol_utils.h"
|
||||
#include "platform/ui/reticulum_directory_runtime.h"
|
||||
#include "platform/ui/reticulum_network_projection_policy.h"
|
||||
#include "platform/ui/reticulum_page_runtime.h"
|
||||
#include "ui/app_runtime.h"
|
||||
#include "ui/assets/fonts/font_utils.h"
|
||||
@@ -66,6 +67,7 @@ namespace
|
||||
{
|
||||
|
||||
namespace rtdir = ::platform::ui::reticulum_directory;
|
||||
namespace rtnet = ::platform::ui::reticulum_network;
|
||||
namespace rtpage = ::platform::ui::reticulum_page;
|
||||
namespace micron = ::ui::screens::network::micron;
|
||||
|
||||
@@ -920,14 +922,14 @@ const char* aspect_label(rtdir::AnnounceAspect aspect)
|
||||
case rtdir::AnnounceAspect::LxmfDelivery:
|
||||
return "LXMF";
|
||||
case rtdir::AnnounceAspect::LxmfPropagation:
|
||||
return "Prop";
|
||||
return "Relay";
|
||||
case rtdir::AnnounceAspect::CallAudio:
|
||||
return "Call";
|
||||
case rtdir::AnnounceAspect::NomadNetworkNode:
|
||||
return "Nomad";
|
||||
return "Web";
|
||||
case rtdir::AnnounceAspect::Unknown:
|
||||
default:
|
||||
return "Node";
|
||||
return "Unknown";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -942,12 +944,16 @@ const char* announce_display_label(const rtdir::AnnounceRecord& announce,
|
||||
{
|
||||
return "Anonymous Node";
|
||||
}
|
||||
if (announce.aspect == rtdir::AnnounceAspect::LxmfPropagation)
|
||||
{
|
||||
return "Message Relay";
|
||||
}
|
||||
if (announce.aspect == rtdir::AnnounceAspect::LxmfDelivery ||
|
||||
announce.aspect == rtdir::AnnounceAspect::CallAudio)
|
||||
{
|
||||
return "Anonymous Peer";
|
||||
}
|
||||
return fallback ? fallback : "";
|
||||
return fallback ? fallback : "Unknown Service";
|
||||
}
|
||||
|
||||
const char* address_display_label(const rtdir::LxmfAddressRecord& address,
|
||||
@@ -962,7 +968,7 @@ const char* address_display_label(const rtdir::LxmfAddressRecord& address,
|
||||
|
||||
bool announce_visible_in_directory(const rtdir::AnnounceRecord& announce)
|
||||
{
|
||||
return announce.valid && announce.aspect == rtdir::AnnounceAspect::NomadNetworkNode;
|
||||
return rtnet::visible(announce);
|
||||
}
|
||||
|
||||
std::size_t visible_announce_count()
|
||||
|
||||
Reference in new issue
Block a user