RNS Logo

rns.recipes

◈ 9ce92808be498e9e05590ff27cbfdfe4
NomadNet 1.4.0 released with experimental image support https://pypi.org/project/nomadnet/

NomadNet 1.3.0 Released

Started by Mark bc7291552be7a58f... ·

Mark 8dd57a7382268096...
#1

This one is another pretty massive update, courtesy of Zenith, who has been on an absolute tear. The node and interface administration side of nomadnet has gotten a thorough overhaul, with a visual config editor, interface profiles, a built-in Micron page editor and a whole new utilities screen. Conversations have gained easy delivery mode switching, per-message signal stats and a few new conveniences. Micron now has collapsible sections and multi-row form inputs, and we even managed to fix a bug or two!

 

Changes

  • Added a built-in Micron page editor under [ My Node ], with syntax highlighting, snippets, search and live preview, by Zenith
  • Added page and folder access permission editing to the page editor, by Zenith
  • Added nestable collapsible section folding to Micron, by Zenith
  • Added multi-row form input fields to Micron, by Zenith
  • Added interface profiles, for saving and switching between sets of enabled interfaces, by Zenith
  • Added grid view mode for the interfaces list, by Zenith
  • Added bulk enable, disable, invert and solo actions to the interfaces screen, by Zenith
  • Added filtering of the interfaces list by enabled or disabled state, by Zenith
  • Added Ctrl + O shortcut for toggling the selected interface on or off directly, replacing the enable dialog, by Zenith
  • Added option to paste in interface configuration blocks, by Zenith
  • Added option to open the Reticulum config file in an external editor from the interfaces screen, by Zenith
  • Added announce rate, connection speed and interface mode to interface stats, by Zenith
  • Added restart-required indicator when interfaces have been modified, by Zenith
  • Added a visual configuration editor for all NomadNet and Reticulum config sections, by Zenith
  • Added an optional utilities screen with path tables, a path resolver, probe, identity resolver, rncp file sending and a speed test, by Zenith
  • Added a quit confirmation dialog, by Zenith
  • Added quick delivery option switching to conversations, by Zenith
  • Added Ctrl + V shortcut for cycling conversation delivery method, by Zenith
  • Added per-message details view with delivery method, state and signal stats, by Zenith
  • Added signal stats persistence for received messages, by Zenith
  • Added ability to cancel pending outbound messages with Ctrl+K, by Zenith
  • Added node destination QR dialog and page editor shortcut to node info, by Zenith
  • Added node online indicator to local peer info, by Zenith
  • Added Guide sections on interface profiles and collapsible Micron sections, with jump links for all interface types, by Zenith
  • Improved Micron form fields to shrink to fit narrow terminals instead of being hidden, by Zenith
  • Improved conversation view to display the selected delivery method, by Zenith
  • Fixed conversation editor not re-enabling when a peer becomes known, by Zenith
  • Fixed directory entries for node operators being remembered under the node hash instead of the operator address, by Zenith
Mark 8dd57a7382268096...
#2

There's a lot of new stuff here, so if you find any bugs or weirdness, this thread is a good place to post them.

p1ld7a b2e101f8b8d8c776...
#3

Cool changelog thanks !!! I will definitely try it and package it on Nix as soon as it is available on Pypi or Github.

Mark 8dd57a7382268096...
#4

It's up on pypi now as well :)

Zenith
#6

Hey Mark, I sent you a .patch addressing one security issue and a few other minor issues to your LXMF. I had meant to put them on my branch, but you merged the new features in before I could do it lol.

Mark 8dd57a7382268096...
#7

Haven't gotten it yet Zenith, can you try sending it again? Have my clients open now, so you can reach me directly without having to go PN.

Mark 8dd57a7382268096...
#8

It's out :) Thanks Zenith.

 

You probably want to bump that to 1.3.1 already @p1ld7a ;)

steveplays daf042c1c000a24b...
#10

Mark, what are your thoughts on adding discovered interfaces to the interfaces list?

 

Maybe they should have their own page though, because I made a small patch to load them into the existing page (replacing config interfaces) to try it out, but they cause the page to take ~700 ms to load for me with 388 interfaces
(~~300 ms without sorting by name, ~~700 ms with sorting by name)
I suppose (probably; I didn't check) most of the ~300 ms is spent reading the files of the discovered interfaces in InterfaceDiscovery.list_discovered_interfaces()

diff --git a/nomadnet/ui/textui/Interfaces.py b/nomadnet/ui/textui/Interfaces.py
index b3914ef..392f674 100644
--- a/nomadnet/ui/textui/Interfaces.py
+++ b/nomadnet/ui/textui/Interfaces.py
@@ -3823,10 +3823,11 @@ class InterfaceDisplay:
     def _build_interface_items(self):
         self.interface_items = []
         self.interface_tiles = []
-        interfaces = self.app.rns.config['interfaces']
+        interfaces = sorted(self.app.rns.discovered_interfaces(), key=lambda discovered_interface: discovered_interface["name"])
         processed_interfaces = {}

-        for interface_name, interface in interfaces.items():
+        for interface in interfaces:
+            interface_name = interface["name"]
             interface_data = interface.copy()

             if interface_data.get("type") == "RNodeMultiInterface":

If you want, I could make a proper patch with a new page.

Post a Reply

Supports Markdown: **bold**, *italic*, `code`, ```code blocks```, [links](url)

Log in to upload images

Quote
Copied to clipboard