# NomadNet 1.3.0 Released

_General · started by Mark on Wed, Sep 2, 2026 12:26 PM_

---

## Original post

**Mark** · Wed, Sep 2, 2026 12:26 PM

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**

---

## Reply 1

**Mark** · Wed, Sep 2, 2026 12:26 PM

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.

---

## Reply 2

**p1ld7a** · Wed, Sep 2, 2026 5:02 PM

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

---

## Reply 3

**Mark** · Wed, Sep 2, 2026 5:14 PM

It's up on pypi now as well :)

---

## Reply 4

**p1ld7a** · Wed, Sep 2, 2026 6:29 PM

Thank you, it is now about to be merged in `nixpkgs` as well: https://github.com/NixOS/nixpkgs/pull/559233

---

## Reply 5

**Zenith** · Wed, Sep 2, 2026 7:45 PM

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.

---

## Reply 6

**Mark** · Wed, Sep 2, 2026 8:35 PM

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.

---

## Reply 7

**Mark** · Wed, Sep 2, 2026 9:00 PM

It's out :) Thanks Zenith.

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

---

## Reply 8

**p1ld7a** · Thu, Sep 3, 2026 8:19 AM

Ongoing @ https://github.com/NixOS/nixpkgs/pull/559424

---

## Reply 9

**steveplays** · Fri, Sep 4, 2026 6:38 PM

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
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.

---
