Skip to content

Releases: NETFORY/netfory-releases

v1.135.203 NETFORY WEB4.0 Network

Choose a tag to compare

@technologiespro technologiespro released this 29 Sep 02:29

dVPN (PQ Web), in‑app browser, storage & memory fixes
image

Companion components: pq-web 0.3.0 · pq-relay 0.2.0 · ntfry-tracker 1.7.0 (renamed from smartnet-tracker).

Highlights

  • PQ Web / dVPN - P2P HTTPS tunnelling through pq-web egress nodes over Iroh QUIC (ALPN netfory/pqweb/1). One‑click dVPN toggle in the address bar routes all browser traffic through the mesh; Auto mode tunnels only blocked domain bundles.
  • In‑app browser for regular https:// sites in isolated native web‑tabs (no Web3 bridge), with downloads, SPA URL tracking, bookmarks and a branded error page on all platforms.
  • Node API over Iroh only - HTTPS RPC removed from the hot path; requests fan out across the Iroh node group with rotation.
  • Storage/memory - fixed a blob‑store leak (hundreds of GB), ~400 MB/h heap growth, and temp‑file accumulation.
  • Wallet - BIP‑44 sub‑accounts from one seed (m/44'/255'/N'/0/0, Core‑Wallet compatible), extension‑style dashboard, address book, live history.
  • Settings -> Network rebuilt as a no‑scroll cockpit with a sticky status strip and sectioned side‑nav.

PQ Web (dVPN)

Client (src-tauri/src/webproxy.rs, websites.rs)

  • Local SOCKS5 router on 127.0.0.1:<port>; Windows: process‑wide PAC via WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS=--proxy-pac-url=data:… (DIRECT fallback); Linux/macOS: WebviewBuilder::proxy_url(socks5://…).
  • Domain bundles (youtube, x, telegram, iptest, …) with modes auto | relay | direct (sled cfg:webproxy:bundles). Direct‑path probe ≤ 2.5 s: DNS poisoning, RST, timeout, TLS ClientHello/SNI stall; per‑bundle route cache (ok 10 min / blocked 2 min).
  • dVPN total mode : every host outside bundles -> relay via nodes announced with open; auto bundles -> relay without probe; direct bundles stay direct. Route cache is flushed on toggle.
  • Tunnel: NF1 CONNECT host:port over Iroh (no MITM), fallback across the 3 best nodes, per‑node health (PING, RTT) 10 s after start and every 30 min.
  • Keep‑alive: pings cached connections / warms the best node so the first cold CONNECT through TLS‑443 relays succeeds when UDP is dropped by the ISP.
  • HUD: cyberpunk Connecting to NETFORY Relay · region · id · rtt page with up to 3 auto‑retries (relay-failed), then an honest PQ_TUNNEL_FAILED / PQ_NO_NODES error page. Browser error on a bundle host -> mark_blocked -> bundle switched to relay.
  • Node list from trackers: GET /pqweb with operator ECDSA signature (secp256k1, TOFU pin of /operator-pubkey, hard override SMARTNET_OPERATOR_PUBKEY); signed/unsigned/cached badges in UI; allow‑list nodes marked verified; manual nodes by EndpointId.
  • Commands: webproxy_status | set_mode | set_nodes | set_enabled | set_total | recheck; events webproxy-route, webproxy-relays, webproxy-total.

Server - pq-web 0.3.0 (/app/pq/pq-web)

  • Iroh Endpoint + Router/ProtocolHandler on ALPN netfory/pqweb/1; protocol NF1 CONNECT | PING | BENCH | INFO.
  • --open / --allow-all (env PQ_WEB_OPEN): any HTTPS host on allowed ports; otherwise allow‑list bundles (allow.rs, wildcards).
  • Per‑EndpointId stream & bandwidth limits (token bucket), SSRF filter, idle timeout, /metrics + /healthz, node key file (0600).
  • Tracker announce v3 (…|addrs|relay|open), Ed25519‑signed with the node key; CLI serve | id | check | bundles-example; systemd unit.

Relay - pq-relay 0.2.0 (/app/pq/pq-relay)

  • Modes: A DOMAIN -> built‑in ACME (TLS‑ALPN‑01) on 443 + QUIC/QAD 7842; B certbot PEM behind nginx; C legacy. Landing page “NETFORY Relay”. Env PQ_RELAY_* (legacy SMARTNET_RELAY_* accepted).

Tracker - ntfry-tracker 1.7.0 (/app/tracker)

  • Crate/binary renamed smartnet-tracker -> ntfry-tracker. GET /pqweb (live announces + PQWEB_NODES allow‑list, canon v3/v2/v1), POST /pqweb/announce with signature check, GET /operator-pubkey. OPERATOR_SECRET now signs both /seeders-dht and /pqweb.

In‑app browser (websites.rs, tabs.ts, AppLayout.vue)

  • Native child webview per tab, no initialization_script, outside embed-* capabilities. https:// only; http:// auto‑upgraded; SmartNet schemes -> host shell; window.open/_blank -> new tab.
  • Events site-nav, site-title, site-url (SPA pushState via SourceChanged/HistoryChanged on Windows, notify::uri on Linux), site-download (unique path in Downloads, reveal via site_reveal_download).
  • Branded error page (WebView2 NavigationCompleted), Linux (load_failed + TLS errors, webkit2gtk 2.0/v2_40), macOS (DNS+TCP:443 pre‑flight). Pre‑flight also in open_site_webview/site_navigate to avoid blank flashes.
  • Bookmarks (sth_web_bookmarks) on the dashboard; ★ in the address bar. Tray/get_window("main") fixes for multi‑webview windows.

Network core

  • sth_node.rs: pool_all() = Iroh only; iroh_order() / p2p_group(); custom clearnet node -> fallback to Iroh; tx/nonce mirroring to first Iroh node. clearnet_order, p2p_with_backup, iroh_backup, legacy_only removed.
  • Peerbook (peerbook.rs, p2p:peerbook:<nodeId>): cached relay/IP paths per peer (TTL 30 d, ≤ 8 addrs, ≤ 4 000 entries), roles Wallet|Api|Chat|Seed|Ai, used as Iroh AddressLookup for every connect (API, wallet stream, chat, blobs, AI); stealth relay allow‑list preserved.
  • build_default_endpoint: parallel TLS‑443 probe of own n1 relays -> RelayMode::Custom if alive, else n0 fallback (syslog net). Gossip watchdog: isolation counter/cooldown fixes, soft join_peers each cycle.
  • poll_trackers_parallel (3 s) for /seeders and /network/storage; network‑map snapshot cache (sth_netmap_snapshot), 30 s auto‑refresh, “MY NODE” row, Cloud Seeders tab.
  • Desktop seeding on by default for new installs (3 GB cap); parallel heartbeat with per‑tracker status (heartbeat_status).

Storage & memory

  • Blob store leak: add_path().await implied with_tag() -> permanent GC roots. Now import_path() via temp_tag() + SEED_HASHES; drop_legacy_tags() on open; GC every 120 s; purge_stale_temp (> 24 h) on start.
  • Heap growth: txindex::for_each streaming + seq change counter; sync_graph skipped when unchanged; history() cached by (addr, seq); txindex::all() removed.
  • Incremental social graph (subs:g:*, cursors per epoch) and full owner tx index (txi:<A>:t:*, pending set txi:<A>:p:*, TTL 15 min) in sled, fed live by the sth/events/1 stream; consumers: history, subscriptions, name recovery, chat key lookup.
  • Wallet dashboard snapshot (sth_wallet_snap:<identity>) + skeleton on cold start.

Wallet

  • crypto.rs: BIP‑39 seed (PBKDF2‑HMAC‑SHA512 × 2048) -> BIP‑32 m/44'/255'/N'/0/0; index 0 unchanged; hex:<privkey> signing path.
  • Dashboard redesign (balance modes STH ⇄ USDT ⇄ hidden, 7‑day sparkline via get_rate_history, pending cards, theme accents), networks store with probe_network_api (view‑only for non‑mainnet).
  • Send: address book (recent + messenger contacts), @name -> address via resolveUsername, keyboard navigation. Live updates from stream per involved address; optimistic pending; ERR_BAD_NONCE auto‑retry; first‑tx fix for fresh wallets.

Messenger

  • Avatar tap in group -> DM (openDmWith); @mention suggestions; onboarding + balance pre‑check; publish_chat_key syslog chat + result toast; reconnect banner / instant resync; 50‑message history window with lazy load.

Settings

  • Network tab (1.135.202): sticky status strip (dVPN, SOCKS5 port, pq‑web nodes ok/total, active node, online N/M, DHT nodes, trackers, relay‑only) -> click jumps to section; side‑nav sections PQ Web · SmartHoldem Nodes · Discovery · Relays & Privacy · Seeding & Downloads · Diagnostics (persisted in sth_settings_net_section). Advanced items (trackers, seeders, n1 relays, DHT diag, Network Doctor, manual pq‑web nodes) hidden in User mode.
  • Header toolbar (1.135.203): version pill with status dot, Check for updates and Crash log moved to the // SETTINGS_ header, visible on every tab.
  • Dashboard: manual “add site” form removed (bookmarks via ★ only); Network Map table styling.

Breaking / behaviour changes

  • smartnet-tracker binary and crate renamed to ntfry-tracker; update systemd units and paths.
  • Node RPC over HTTPS is no longer used in P2P builds (Iroh only); HTTPS pool remains only in builds without the p2p feature.
  • Desktop seeding defaults to enabled for installations without an explicit cfg:desktop_seeding_enabled setting.
  • Once a client has pinned an operator pubkey, unsigned or differently‑signed tracker lists are rejected - roll OPERATOR_SECRET out to every tracker at once.

Known issues

  • Cold first CONNECT on UDP‑blocked networks may still show the HUD for one retry cycle before the page loads (keep‑alive mitigates after ~25 s of uptime).
  • Gossip topic isolation (“online 0”) is under observation after relay‑priority changes; a relay health‑watch is planned.
  • Linux/macOS error page and download hooks rely on engine‑specific hooks; edge cases may fall back to the engine default.

Additional tools:

v1.135.180 NETFORY WEB4.0 Network

Choose a tag to compare

@technologiespro technologiespro released this 27 Sep 05:40

README

image

Additional tools:

Release Notes

Wallet API over P2P network

RAM Fixes

Wallet transport moved to iroh (SHIP-44). The wallet now talks to sth-core nodes directly over the iroh QUIC mesh instead of HTTPS RPC. Three built-in api://…/sth-core nodes form the primary pool; the legacy HTTPS pool is kept only as a fallback when no iroh node is reachable. Every response is signed by the node's key (pdata, Ed25519 = EndpointId) and verified client-side. Failover goes iroh -> next iroh node -> clearnet; 429/503 switch nodes immediately. Node auto-selection prefers iroh nodes by latency and skips any node lagging more than 5 blocks.

Live push events instead of polling. A single persistent stream (sth/events/1) delivers balance, tx, mempoolTx and block frames as they happen. Balance updates and incoming-transfer notifications are instant, pending transactions appear in history right away, and the dashboard shows a pulsing LIVE badge with the current network height. Background polling drops to a 2-minute safety check while the stream is up; on reconnect the node replays anything missed since the last seen height.

Nonce fixes. First transaction from a brand-new wallet no longer fails (a 404 wallet not on chain from the active node was being masked by a DNS error from the backup node). The wallet now also accounts for the node's unconfirmed pool (/transactions/unconfirmed?senderId=) and, if a node still rejects with ERR_BAD_NONCE, re-signs once with the nonce the node expects.

SHIP-14 token balances. Non-zero token balances (symbol, name, logo, amount by decimals) are shown on the wallet dashboard and update live from the balance stream.

Nodes screen. P2P tab is now first and lists the iroh pool with an iroh badge, latency, height and stream status (LIVE/reconnecting/legacy). Automatic detection of a local localhost:4003 node has been removed - add it manually under "Custom nodes" if you still need it.

Fixes. Moving the data folder no longer fails on the locked smartnet_db (os error 33) - the database stays in place and locked cache files are skipped instead of aborting the transfer.

This release moves the wallet, naming and social layers onto the Iroh P2P mesh end‑to‑end, adds a local blockchain index for instant offline history, and fixes a storage leak in the blob store.

Highlights

Local blockchain index (instant history, offline)

  • Every transaction of your wallet addresses (main + BIP‑44 sub‑accounts) is now synced into the local database in the background and kept fresh by the live sth/events/1 stream - no more polling.
  • Wallet history, your registered @name, subscriptions/subscribers and messenger encryption keys are all read from the local index in microseconds. The network is only touched for deltas.
  • Sync progress is shown under the LIVE badge; up to 1,000 transactions per address are kept ready for the UI.

Incremental subscription graph

  • Followers/following are stored as an on‑device graph with per‑address cursors. First run does a full scan (the node filters by vendorField), after that only timestamp.from deltas are fetched.
  • New sub: transactions arriving over the stream update the graph immediately and refresh the profile view.
  • Fixed: subscriptions older than the last 100 transactions were invisible ("not following" for addresses with 1,000+ txs).

Peer address book (Iroh)

  • New persistent peer book in the local database: relay URLs and direct IP:port of every peer you have talked to (30‑day TTL, up to 8 addresses per peer, 4,000 peers with LRU eviction).
  • Plugged into Iroh as an AddressLookup service, so every connect by NodeID - sth‑core API, wallet stream, chat DMs, blob downloads, AI nodes - gets known addresses instantly while DHT/DNS/mDNS discovery runs in parallel.
  • Peers are typed by role: wallet, api, chat, seed, ai. Roles accumulate per peer and are exposed via peerbook_list for diagnostics.
  • Stealth mode keeps strict relay isolation: only the operator's n1 relays are ever suggested from the book.
  • Peer identity is still verified by QUIC/TLS against the ed25519 NodeID - cached addresses are a transport hint only.

Blob storage leak fixed

  • Every blob import created a permanent auto‑tag, which pinned old dApp archives, files and logos forever - GC could never free them (up to 170+ GB observed).
  • Imports now use temporary tags with the seed keep‑set as the single source of truth; legacy tags are removed on startup so GC reclaims orphaned blobs automatically within minutes.

Wallet

  • Outgoing transactions appear immediately as pending with a real 8‑second countdown ring; confirmed by the block, expired ones (>15 min) are dropped.
  • Switching accounts is instant: history is cached per address in memory and served from the local index.
  • Transactions are shown strictly for the active address; transfers between your own accounts render as −X on the sender and +X on the recipient.
  • Fixed "eternal pending" on historical transactions (confirmation is derived from blockId).
  • Node list badge: IROH -> PQ (post‑quantum P2P).

Names & Profile

  • Fixed lost @names: paid registrations confirmed on chain before the reserved‑list cutoff (2026‑08‑09) are honoured even if the word was later reserved. Silent rejections are now logged.
  • Names from reserved.txt are reported to users simply as "taken"; registration is refused with the same message.
  • Fresh installs recover the name from chain within seconds via Iroh (recover_my_username), also triggered from the top bar and profile.
  • New Resync registry button in the Security panel: rescans names, subscribers and the full transaction index from chain.
  • Registered name shown as a tooltip on the avatar.

Messenger

  • Minimum fee for publishing a message key / inbox price raised to 0.10 STH (max of minimum, node's dynamic size‑aware fee and manual override) - fixes ERR_LOW_FEE rejections.

v1.135.178 NETFORY WEB4.0 Network

Choose a tag to compare

@technologiespro technologiespro released this 24 Sep 05:16

README

image

Additional tools:

Release Notes

NETFORY Wallet over iroh

Wallet transport moved to iroh (SHIP-44). The wallet now talks to sth-core nodes directly over the iroh QUIC mesh instead of HTTPS RPC. Three built-in api://…/sth-core nodes form the primary pool; the legacy HTTPS pool is kept only as a fallback when no iroh node is reachable. Every response is signed by the node's key (pdata, Ed25519 = EndpointId) and verified client-side. Failover goes iroh -> next iroh node -> clearnet; 429/503 switch nodes immediately. Node auto-selection prefers iroh nodes by latency and skips any node lagging more than 5 blocks.

Live push events instead of polling. A single persistent stream (sth/events/1) delivers balance, tx, mempoolTx and block frames as they happen. Balance updates and incoming-transfer notifications are instant, pending transactions appear in history right away, and the dashboard shows a pulsing LIVE badge with the current network height. Background polling drops to a 2-minute safety check while the stream is up; on reconnect the node replays anything missed since the last seen height.

Nonce fixes. First transaction from a brand-new wallet no longer fails (a 404 wallet not on chain from the active node was being masked by a DNS error from the backup node). The wallet now also accounts for the node's unconfirmed pool (/transactions/unconfirmed?senderId=) and, if a node still rejects with ERR_BAD_NONCE, re-signs once with the nonce the node expects.

SHIP-14 token balances. Non-zero token balances (symbol, name, logo, amount by decimals) are shown on the wallet dashboard and update live from the balance stream.

Nodes screen. P2P tab is now first and lists the iroh pool with an iroh badge, latency, height and stream status (LIVE/reconnecting/legacy). Automatic detection of a local localhost:4003 node has been removed - add it manually under "Custom nodes" if you still need it.

Fixes. Moving the data folder no longer fails on the locked smartnet_db (os error 33) - the database stays in place and locked cache files are skipped instead of aborting the transfer.

This release moves the wallet, naming and social layers onto the Iroh P2P mesh end‑to‑end, adds a local blockchain index for instant offline history, and fixes a storage leak in the blob store.

🚀 Highlights

Local blockchain index (instant history, offline)

  • Every transaction of your wallet addresses (main + BIP‑44 sub‑accounts) is now synced into the local database in the background and kept fresh by the live sth/events/1 stream - no more polling.
  • Wallet history, your registered @name, subscriptions/subscribers and messenger encryption keys are all read from the local index in microseconds. The network is only touched for deltas.
  • Sync progress is shown under the LIVE badge; up to 1,000 transactions per address are kept ready for the UI.

Incremental subscription graph

  • Followers/following are stored as an on‑device graph with per‑address cursors. First run does a full scan (the node filters by vendorField), after that only timestamp.from deltas are fetched.
  • New sub: transactions arriving over the stream update the graph immediately and refresh the profile view.
  • Fixed: subscriptions older than the last 100 transactions were invisible ("not following" for addresses with 1,000+ txs).

Peer address book (Iroh)

  • New persistent peer book in the local database: relay URLs and direct IP:port of every peer you have talked to (30‑day TTL, up to 8 addresses per peer, 4,000 peers with LRU eviction).
  • Plugged into Iroh as an AddressLookup service, so every connect by NodeID - sth‑core API, wallet stream, chat DMs, blob downloads, AI nodes - gets known addresses instantly while DHT/DNS/mDNS discovery runs in parallel.
  • Peers are typed by role: wallet, api, chat, seed, ai. Roles accumulate per peer and are exposed via peerbook_list for diagnostics.
  • Stealth mode keeps strict relay isolation: only the operator's n1 relays are ever suggested from the book.
  • Peer identity is still verified by QUIC/TLS against the ed25519 NodeID - cached addresses are a transport hint only.

Blob storage leak fixed

  • Every blob import created a permanent auto‑tag, which pinned old dApp archives, files and logos forever - GC could never free them (up to 170+ GB observed).
  • Imports now use temporary tags with the seed keep‑set as the single source of truth; legacy tags are removed on startup so GC reclaims orphaned blobs automatically within minutes.

💳 Wallet

  • Outgoing transactions appear immediately as pending with a real 8‑second countdown ring; confirmed by the block, expired ones (>15 min) are dropped.
  • Switching accounts is instant: history is cached per address in memory and served from the local index.
  • Transactions are shown strictly for the active address; transfers between your own accounts render as −X on the sender and +X on the recipient.
  • Fixed "eternal pending" on historical transactions (confirmation is derived from blockId).
  • Node list badge: IROH -> PQ (post‑quantum P2P).

👤 Names & Profile

  • Fixed lost @names: paid registrations confirmed on chain before the reserved‑list cutoff (2026‑08‑09) are honoured even if the word was later reserved. Silent rejections are now logged.
  • Names from reserved.txt are reported to users simply as "taken"; registration is refused with the same message.
  • Fresh installs recover the name from chain within seconds via Iroh (recover_my_username), also triggered from the top bar and profile.
  • New Resync registry button in the Security panel: rescans names, subscribers and the full transaction index from chain.
  • Registered name shown as a tooltip on the avatar.

💬 Messenger

  • Minimum fee for publishing a message key / inbox price raised to 0.10 STH (max of minimum, node's dynamic size‑aware fee and manual override) - fixes ERR_LOW_FEE rejections.

🔧 Under the hood

  • Historical queries (/transactions?...) go through Iroh only; the legacy HTTPS pool and client‑side result filtering are gone (nodes apply filters correctly). Multipayment recipients are resolved from asset.payments.
  • Restored https_post for user‑configured clearnet nodes.
  • New docs/FEES.md: complete registry of all STH fees, payments and sink addresses across NETFORY.
  • Version bumped to 1.135.176.

v1.135.170 NETFORY WEB4.0 Network

Choose a tag to compare

@technologiespro technologiespro released this 23 Sep 05:50

NETFORY Wallet over iroh

Wallet transport moved to iroh (SHIP-44). The wallet now talks to sth-core nodes directly over the iroh QUIC mesh instead of HTTPS RPC. Three built-in api://…/sth-core nodes form the primary pool; the legacy HTTPS pool is kept only as a fallback when no iroh node is reachable. Every response is signed by the node's key (pdata, Ed25519 = EndpointId) and verified client-side. Failover goes iroh -> next iroh node -> clearnet; 429/503 switch nodes immediately. Node auto-selection prefers iroh nodes by latency and skips any node lagging more than 5 blocks.

Live push events instead of polling. A single persistent stream (sth/events/1) delivers balance, tx, mempoolTx and block frames as they happen. Balance updates and incoming-transfer notifications are instant, pending transactions appear in history right away, and the dashboard shows a pulsing LIVE badge with the current network height. Background polling drops to a 2-minute safety check while the stream is up; on reconnect the node replays anything missed since the last seen height.

Nonce fixes. First transaction from a brand-new wallet no longer fails (a 404 wallet not on chain from the active node was being masked by a DNS error from the backup node). The wallet now also accounts for the node's unconfirmed pool (/transactions/unconfirmed?senderId=) and, if a node still rejects with ERR_BAD_NONCE, re-signs once with the nonce the node expects.

SHIP-14 token balances. Non-zero token balances (symbol, name, logo, amount by decimals) are shown on the wallet dashboard and update live from the balance stream.

Nodes screen. P2P tab is now first and lists the iroh pool with an iroh badge, latency, height and stream status (LIVE/reconnecting/legacy). Automatic detection of a local localhost:4003 node has been removed - add it manually under "Custom nodes" if you still need it.

Fixes. Moving the data folder no longer fails on the locked smartnet_db (os error 33) - the database stays in place and locked cache files are skipped instead of aborting the transfer.

README

image

Additional tools:

v1.135.158 NETFORY WEB4.0 Network

Choose a tag to compare

@technologiespro technologiespro released this 18 Sep 21:02

Wallet fixes

  • Fixed: first transaction from a fresh wallet failed (name registration, first send). For a wallet with no outgoing transactions the node replies 404 ("wallet not yet on chain"), which the client should read as nonce 0. Instead, the REST client treated any HTTP status as a failure and failed over to a backup node - always node0.smartholdem.io. If that host didn't resolve (Windows DNS error 11001), the original 404 was lost and the wallet surfaced "Dns Failed" and refused to sign. Now a 4xx response (except 429) is treated as a final answer with no failover, so a new wallet correctly starts at nonce 0 and signs its first tx with nonce 1.

  • Node failover no longer pinned to node0. The backup node is now the next node in the pool after the active one, so a single unreachable host can't break every fallback.

  • Fixed ERR_BAD_NONCE on send. The in-flight nonce cache used to live forever and advance on every "accept" from any node (including a local pool whose tx the network later rejected), so the wallet could sign with a stale, overshooting nonce (e.g. 1255 while the chain was at 1250). The cache is now time-limited (60 s), is cleared whenever a broadcast is rejected, and the chain nonce is authoritative again after the window - the next attempt always starts from the node's current nonce.

README

image

Additional tools:

v1.135.157 NETFORY WEB4.0 Network

Choose a tag to compare

@technologiespro technologiespro released this 16 Sep 07:46

Release Notes

Messenger

  • Onboarding "You are in the new internet" - new accounts get a 4-step guide: top up balance -> get a u:// name -> publish encryption key -> join the group. Steps light up as they complete; live balance, address copy, one-click "Top up" opens the wallet on Receive.
  • Name required to write - without a u:// name the composer is read-only and opens the setup; reading history still works.
  • Welcome message - finishing onboarding posts a one-time greeting in the SmartHoldem group.
  • Name confirmation - you get a toast / OS notification the moment your u:// name is confirmed on-chain; the indexer polls faster while a registration is pending.
  • Mesh recovery after network loss - when the internet comes back, the iroh endpoint is notified and all gossip topics are force-resubscribed immediately (no more "ONLINE N" but silent chat). Queued outgoing messages are flushed and an anti-entropy sync runs ~4 s later instead of waiting up to 75 s.
  • Reconnect banner - "Reconnecting mesh… (N)" strip while topics resubscribe, then "Mesh restored".
  • Correct message order and time - incoming messages now use the sender’s timestamp, so late-arriving messages land in the right place with the real send time.
  • Error bar fix - node errors are dismissible, auto-hide, and show a human-readable message instead of raw JSON (no more permanent red bar).
  • Tray unread badge - the tray icon shows the total unread count.

Wallet

  • Balance pre-check - transactions are refused locally with a clear "Insufficient STH: need X, have Y" before signing; the node is never hit with a doomed tx.
  • Local Node Tx Guard - transactions via a custom/local node are mirrored to a pool node and signed with the freshest nonce; fixes silently stuck transfers.
  • Fixed phantom "Received X STH" notifications - incoming alerts are now keyed by txid (once per transaction), not by balance jitter between nodes.
  • Instant refresh - balance and recent operations update right after an incoming payment or a send (second pass ~9s later); balance glows green/amber on change.
  • Nodes - custom clearnet nodes listed with a LOCAL tag; localhost routed via 127.0.0.1 (removes the ~2s IPv6 delay).
  • History - long memos wrap inside the card; click a memo to copy it.

README

image

Additional tools:

Decentralized network NETFORY WEB4.0 v1.135.156

Choose a tag to compare

@technologiespro technologiespro released this 14 Sep 01:30

README

image

Additional tools:

NETFORY Release Notes

Wallet

  • Local Node Tx Guard - transactions sent via a custom/local node (localhost:4003) are now mirrored to a pool node and signed with the freshest nonce (max(local, pool)). Fixes silently "stuck" transfers when the local node lagged or had no peers.
  • Instant refresh - balance and recent operations update immediately after an incoming payment toast and after a successful send (plus a second pass ~9 s later, once the tx lands in a block). Failed rate lookups no longer block the refresh.
  • Balance flash - the balance glows green on incoming funds and amber on outgoing.
  • Nodes list - custom clearnet nodes (e.g. a local SmartHoldem node) are now listed with a LOCAL tag.
  • Local node latency fix - localhost is routed via 127.0.0.1, removing the ~2 s IPv6 fallback delay on Windows.
  • History - long memos (vendorField) wrap inside the card; click a memo to copy it to the clipboard.

Messenger

  • Tray unread badge - the tray icon shows the total number of unread chat messages; tooltip shows the count.

NETFORY Client UI Web4 v1.135.118

Choose a tag to compare

@technologiespro technologiespro released this 29 Aug 01:48

The first public implementation of a decentralized network NETFORY WEB4.0

README

image

[1.135.118 / ai-worker 0.13.0 / ntfry-ai 0.2.0] (native chat dialogs Msg::InferChat)

Main-app release marker rolling up the frontend
changes since the last app version: the AI console Speed Badge
(ai-worker 0.10.1), the pipeline slots badge (0.11.0) and the model
catalog marketplace badges live tok/s + token price (0.12.0).

Added

  • Native multi-turn dialogs (Msg::InferChat): the OpenAI messages[]
    array now travels to the gateway as structured Vec<ChatTurn> instead of
    a pre-flattened transcript. The gateway renders the history with the
    model's canonical chat template (new Family::render_chat in
    chat_template.rs: ChatML / Llama 3 / Mistral / Zephyr / GLM-4, including
    system prompts and think=false > empty <think></think> block).
  • Free prefix caching for chat: reuse is decided by the token prefix
    after rendering
    (prefix_best_match in run_batch), so the next turn of
    the same dialog automatically hits the shard snapshot and only prefills the
    tail no extra hashing needed, fast TTFT on follow-ups.
  • ntfry-ai 0.2.0 mapping: OpenAI messages[] map to ChatTurn with no
    string concatenation; multi-turn / system > InferChat, a single user
    message > plain Infer (compatible with older workers). If the gateway is
    old and InferChat fails, the proxy automatically falls back to a flat
    transcript Infer. docs/NTFRY-AI.md updated.

NETFORY Client UI Web4 v1.135.38

Choose a tag to compare

@technologiespro technologiespro released this 15 Aug 22:55

The first public implementation of a decentralized network NETFORY WEB4.0

README

FULL CHANGELOG

[1.135.38] (Critical fix: update-ready modal never appeared - t shadowing from v1.135.33)

Fixed

  • The “update downloaded - install?” modal stopped appearing after
    v1.135.33.
    In startProgressPolling() the torrent lookup const t = list.find(...) shadowed the i18n translation function t() introduced
    by the localization pass; every status update then called the torrent
    OBJECT as a function → TypeError → swallowed by the poll catch →
    the completion check (progress >= 1 || state === 'Seeding') was never
    reached, so onDownloadComplete() never ran: no modal, status bar stuck
    on “Connecting to torrent network…” while the progress value itself had
    already hit 100% (it was assigned before the throw). Local renamed to
    tor; a comment now warns against reusing t in that scope.
  • Versions bumped to 1.135.38 across package.json, tauri.conf.json,
    Cargo.toml and Cargo.lock.

[1.135.37] (Network Map: cloud provider badge inline before the pubkey)

Fixed

  • YA / GD / MAIL badge wrapped to a new line and broke the Cloud Seeders
    table layout.
    The badge moved from the TYPE cell (after the CLOUD
    chip) into the NODE cell - it now sits on the SAME line, right before
    the short author pubkey ([YA] 039d6f18…6ef35b), with white-space: nowrap so it never wraps. Provider tooltip and test ids unchanged.
  • Versions bumped to 1.135.37 across package.json, tauri.conf.json,
    Cargo.toml and Cargo.lock.

[1.135.36] (Torrent modals localized - en/ru/id)

Changed

  • TorrentMagnetModal (magnet download dialog) fully moved to i18n
    (new torrents.* section in en.ts / ru.ts / id.ts): title
    fallback “Loading metadata…”, DHT fetch status, “Torrent files (N)”,
    “Save folder”, “Sequential download (for video streaming)”,
    “Selected: N / M”, START / STARTING… button, error strings (no source /
    metadata failed / start failed).
  • TorrentStreamModal (stream-while-downloading player) localized
    too: stream errors (open failed / no media files / metadata not ready),
    the playback hint line and size units (KB/MB/GB per locale).
  • Versions bumped to 1.135.36 across package.json, tauri.conf.json,
    Cargo.toml and Cargo.lock.
image

NETFORY Client UI Web4

Choose a tag to compare

@technologiespro technologiespro released this 15 Aug 01:19

The first public implementation of a decentralized network NETFORY WEB4.0

README

CHANGELOG

image