Skip to content

Skywire Mobile: Fix Series 1 bugs and implement requested features (Telegram feedback) - #3833

Merged
mrpalide merged 35 commits into
skycoin:developfrom
mrpalide:fix/fixing-skywire-mobile-reported-bugs-on-tg-1
Aug 12, 2026
Merged

Skywire Mobile: Fix Series 1 bugs and implement requested features (Telegram feedback)#3833
mrpalide merged 35 commits into
skycoin:developfrom
mrpalide:fix/fixing-skywire-mobile-reported-bugs-on-tg-1

Conversation

@mrpalide

Copy link
Copy Markdown
Contributor

Did you run make format && make check? Yes

Fixes: #3822

Changes:
Fixes for the tester reports collected on Telegram, plus the follow-ups Moses raised on the routing thread.

Skychat

  • Dialogs scroll when the soft keyboard halves the viewport; the focused field is revealed (0ac1c6897)
  • Invite / join-request alerts no longer replay on every connect; a retried invite is not news (8e6303ff6)
  • Delete-for-me is durable, and a user-chosen contact picture survives the published-profile lookup (81b4779e7)
  • QR codes decode with the host's zxing — the WebView's BarcodeDetector silently returns nothing without its Play module (d802fe925)

Calls / lifecycle

  • The microphone is released the moment a call ends — the stream call is cancelled, since Job.cancel can't reach a blocking upload (07327b17a), pinned by an instrumented test (1462355d6)
  • showWhenLocked is a call privilege now — granted while a call rings, dropped after — instead of the whole app showing over the lock screen; the screen is held awake during a call (4a028fadb)

Wallet

  • A user-added coin can be removed — refused for built-ins, and refused while wallets hold it rather than cascading into their seeds (6dcc7eba0)
  • One recovery phrase sets up the whole Ethereum family — ETH, USDT and every token added later share the account (b1a696f2f)

VPN / routing

  • The visor-global min_hops is a real constraint — one resolver for the direct shortcut and both fallbacks, and an error that names the hop count (d35b1de0d)
  • A multi-hop dial that finds no transports says why (6b333c1b3)
  • Public-visor autoconnect is a setting, and 2/3-hop routes are gated on it — a visor with no transports cannot route through anything; the probable cause of "3 hops fails, 1 works" (83edcc2f9)
  • The VPN screen shows the visor's account of a connection attempt, with copy (df75bb43f); the toggles no longer fight the poll, and a new vpn-client waits for the old one to exit (819afddc9)
  • Client apps dial over two multiplexed routes by default on the phone (min_hops stays the only user-facing control), and the router seeds its runtime mux value from config so a settings round-trip can't zero it (66810a158)

Remote diagnosis

  • New guide: driving a remote visor from the CLI with --via — trust model, hypervisor attach vs the full bridge, the two-terminal diagnosis session; stale generated CLI reference regenerated (8cc9e91db)
  • Settings → Remote management grants one desktop PK (revocable, API-only — no pty/scp on the phone), and blank cli_addr no longer disables the visor's whitelist-gated dmsg RPC surfaces — so skywire cli --via dmsg://<phone> works end to end (989bdce26)

…ewport — overlay scrolls, margin:auto centres, focused

  field revealed
…eam call, since Job.cancel can't reach a blocking

  upload
…connect — control envelopes go live-only, and a retried invite is not news
…le lookup overwriting a picture the user chose
…s, and refused while wallets hold it rather than cascading into their seeds
… ETH, USDT and every token added later share the account
…enLocked is a call privilege, granted for the call and dropped after
…esolver for the direct shortcut and both fallbacks, and an error that names the hop count
… vpn-client to exit before starting the next
…mand hook only runs at min_hops=1, so route setup is skipped before the finder is asked
…2/3-hop routes on it — a visor with no transports cannot route through anything
… exists in the WebView but silently returns nothing without its Play module
…und-trips can't zero it; phone dials client apps over 2 mux routes by default
… restart caveat on hv add, remote-diagnosis session, and what of it reaches the Android visor; regen stale command reference
…], and the visor's dmsg RPC surfaces no longer die with a blank cli_addr, so --via reaches a phone
…mote-management grant/revoke are buttons rather than text links
…ty settings and Not now were text links

  among pills
…sing the header ⋮ the moment it opened, and gutting the message sheet's staged menuix(mobile): one button style for settings card actions — Open security settings and Not now were text links among pills
…nder-owned, probe-propagated), no self/on-screen notifications (focus lease + per-thread tags), VPN handoff socket leak, custom min-hops tile, member-dialog spacing
…behind it configures the room as much as it lists people, so it splits into Settings and Members sections, titles itself for what it edits (Group/Channel), and hides a section header with nothing under it

fix(skychat): the avatar confirm was opening behind group settings — it is a dialog opened from a dialog, so it takes an explicit z-index above the overlay layer instead of relying on DOM order, which had only ever worked because every earlier caller sat above it in the file
…ct's cadence — registration-over-CXO stretches a no-change re-registration to 30m, so the 10m bound rejected settled visors as stale and every transport test read it as visor-b not found in DMSG discovery
… router, networker and config, so skipping it for 1 left every later plain 'proxy start' inheriting a previous --mux 2 across restarts, and visorC's mux_routes:2 contradicted the two tests that document mux as disabled
…ead of trusting min_hops=2 alone — route setup was building a 1-hop route over a leftover SUDPH transport that cannot carry traffic in Docker E2E, so skysocks-client flapped against the route-group handshake window
@mrpalide
mrpalide merged commit 0104905 into skycoin:develop Aug 12, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant