docs: sync docs with shipped state (Nearby menu, design status, delivery)

- tools_screen (Nearby): drop the removed "Filter…" Options action; filtering
  is LEFT/RIGHT on the list only. Sort is adjusted in place via LEFT/RIGHT on
  its row, stored-source only; filter/sort persist across re-entry.
- nearby_redesign / trail_redesign: mark Status implemented (branches merged);
  record the Nearby deviations from the proposal.
- FEATURES: DM delivery status moved from idea to  shipped, with deltas.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
MarekZegare4
2026-06-15 09:50:57 +02:00
parent c05e722afc
commit 27d88bed52
4 changed files with 38 additions and 17 deletions

View File

@@ -536,9 +536,22 @@ From channel view, Hold Enter → "Who's online?". Sends 0-hop discovery to chan
## New ideas (unprioritised)
Captured for later triage. None designed in detail yet except DM delivery status.
Captured for later triage. None designed in detail yet (DM delivery status has since shipped — see below).
### 📋 DM delivery status
### DM delivery status
**✅ Shipped** (in `main`). A per-message marker sits at the end of each outgoing
DM row in the history and in the fullscreen message view. Deltas from the spec
that follows:
- **Pending** isn't a single `·/…` — it draws **one square dot per send attempt**,
so an auto-resent message shows its retry count at a glance.
- **Delivered / failed** use drawn **scalable mini-icons** (`✓` / `✗`) that scale
with the font, not glyph-font characters — legible on every layout (see
`icons.h`, authored as compile-time ASCII-art).
- Adds **DM auto-resend + incoming dedup**, plus a channel **"relayed into mesh"**
marker (`✓` when a repeater echo confirms the channel message went out).
Original spec:
Show whether an outgoing direct message reached the recipient, using the ACK
that MeshCore already produces (no protocol change). `sendMessage()` returns

View File

@@ -1,8 +1,16 @@
# Nearby Nodes — analiza i propozycja uporządkowania
> Branch: `refactor/nearby-nodes`
> Branch: `refactor/nearby-nodes` (zmergowany do `main`)
> Plik źródłowy: [NearbyScreen.h](../../examples/companion_radio/ui-new/NearbyScreen.h)
> Status: **propozycja** (do akceptacji przed implementacją)
> Status: **zaimplementowane** — dokument zachowany jako zapis analizy/decyzji.
>
> **Odchylenia od propozycji (stan faktyczny):**
> - Akcji **Filter…** w menu nie ma — duplikowała cykl `LEFT/RIGHT` po typie, więc
> filtr został wyłącznie na liście (sekcja 3.1 zakładała Filter… też w menu).
> - **Sort** nie jest togglem przez Enter, lecz zmienia się **in-place przez
> `LEFT/RIGHT` na podświetlonym wierszu** w popupie (wzorzec ustawień Trail),
> a wiersz pojawia się tylko dla źródła Zapisane (skan nie ma dystansu).
> - Filtr i sort **utrzymują się** między wejściami na ekran (nie są resetowane).
---

View File

@@ -1,8 +1,9 @@
# Trail (Tools Trail) — analiza i propozycja uporządkowania
> Branch: `refactor/trail-screen`
> Plik źródłowy: [TrailScreen.h](../../examples/companion_radio/ui-new/TrailScreen.h) (1065 linii)
> Status: **propozycja** (do akceptacji przed implementacją)
> Branch: `refactor/trail-screen` (zmergowany do `main`)
> Plik źródłowy: [TrailScreen.h](../../examples/companion_radio/ui-new/TrailScreen.h)
> Status: **zaimplementowane** — dokument zachowany jako zapis analizy/decyzji.
> Aktualny opis funkcji od strony użytkownika: [tools_screen.md GPS Trail](../solo_features/tools_screen/tools_screen.md).
---

View File

@@ -33,18 +33,17 @@ Filter by category with **LEFT/RIGHT** (one coherent axis — type only):
Select a node to see its coordinates, distance, bearing with cardinal direction, type, and last-heard time.
**Hold Enter** opens the same **Options** menu everywhere (list and detail), with a fixed set of actions — only the unavailable ones are omitted:
**Hold Enter** opens the same **Options** menu everywhere (list and detail), in a fixed order — only the actions that apply appear:
| Action | Available when |
| --------------- | --------------------------------------- |
| Navigate | selected node has GPS |
| Ping | a public key is known for the node |
| Save waypoint | selected node has GPS |
| Filter… | always (full filter list in one popup) |
| Sort: Dist/Recent | always (toggles distance ↔ last-heard) |
| Discover scan | always (live `NODE_DISCOVER_REQ` scan) |
| Action | Available when |
| ---------------------- | -------------------------------------------------------------------------------------- |
| Navigate | selected node has GPS |
| Ping | a public key is known for the node |
| Save waypoint | selected node has GPS |
| Sort: Dist/Recent | browsing stored nodes — **LEFT/RIGHT** on the row flips distance ↔ last-heard in place |
| Discover scan / Rescan | always (live `NODE_DISCOVER_REQ` scan) |
The sort toggle switches the list (and the right-hand column) between **distance** and **last-heard**, independent of the active filter.
Filtering stays on the list itself (**LEFT/RIGHT** cycles the type), so there is no separate Filter action in the menu. **Sort** is adjusted in place: highlight the **Sort** row and tap **LEFT/RIGHT** to flip the list (and its right-hand column) between **distance** and **last-heard** without closing the menu — the same in-popup pattern as Trail's settings. The row appears only while browsing stored nodes (live-scan rows carry signal, not distance). Filter and sort are independent and **persist** across re-entry to the screen.
Selecting **Ping** opens the Ping popup: