MODE_ACCESS_POINT unconditionally blocks announce broadcasts in Transport::outbound(), preventing local TCP clients from discovering each other. Changing to MODE_GATEWAY allows announces to flow through send_outgoing() which broadcasts to all connected clients. Root cause: receiver's announce was stored in announce_table but never rebroadcast on LocalTcpInterface, so sender could never find a path.
Precompiled Firmware
You can download and flash the firmware to supported boards using the RNode Config Utility. All firmware releases are now handled and installed directly through rnodeconf, which is inclueded in the rns package. It can be installed via pip:
# Install rnodeconf via rns package
pip install rns --upgrade
# Install the firmware on a board with the install guide
rnodeconf --autoinstall