Add a 'Discover on (IP or subnet)' setting (and --discover flag) that announces
presence by unicast to the given addresses, since multicast cannot cross a VPN
tunnel. Each newly seen peer is answered directly, so one side configuring the
subnet is enough for both to appear. Documented in the README.
sign-macos.sh signs neotalk.app with the Developer ID under the hardened
runtime; release-macos.sh builds, signs, notarizes, staples and can publish the
zip to the Gitea releases page. Credentials are read from the environment.
Add a 'Your port' field in the settings panel: empty keeps local-network mode
with an ephemeral port, a value rebinds the TCP listener to a stable address
for dialing over a VPN. Active conversations survive the rebind. Adds
controller.set_listen_port and a rebindable transport.start(port).
Multicast discovery cannot traverse a VPN tunnel (WireGuard, Tailscale), so add
a controller dial-by-address path and a --port flag for a stable address. The
GUI settings panel shows your port and offers a 'Connect to host:port' field;
dialed and inbound peers now appear in the sidebar. Documented in the README.
- Translate all interface copy to English for consistency with the codebase
- Give each peer a stable avatar colour and mark the selected row with an
accent bar
- Add hover feedback (send, save, gear) and a focus ring on the input
- Add empty states: no-selection hint and an end-to-end-encryption prompt for
fresh conversations
- Ellipsise long roster previews and prefix your own with "You:"
- Nudge muted-text contrast up for legibility