Skip to content

v1.0-build52 — loading overlay + PerformanceObserver, accumulated UI fixes

Choose a tag to compare

@anton48 anton48 released this 07 May 19:56
· 407 commits to main since this release

Combined release of builds 49 + 50 + 51 + 52 since v1.0-build48. Four
small UI/diagnostic improvements; no protocol or stability changes.

Build 49 — extended captcha-view diagnostic

  • WKNavigationDelegate intermediate events: didStartProvisional,
    didCommit, didReceiveServerRedirect — pin down which network-layer
    stage hangs when load is slow.
  • JS heartbeat (every 1s) reporting readyState, body length, title
    length, current URL — reveals whether the parser is stuck or
    progressing, and at what stage.
  • JS error catchers (window.onerror + unhandledrejection) so failures
    in VK's own scripts don't disappear silently.

Build 50 — WRAP key whitespace tolerance

  • SecureField in Settings now strips whitespace as you type/paste.
  • Go bridge also strips defensively as a backstop.
  • Without this, a stray space in pasted hex caused the bridge to fail
    decoding ("encoding/hex: invalid byte: U+0020 ' '") and silently
    disable WRAP for the session.

Build 51 — Logs UI lag fix after Clear

  • LogsView caches the os_log fallback content and refreshes at most
    once per 4s, off the main thread (Task.detached). Without this, the
    fallback ran the synchronous OSLogStore query on every 2s timer
    tick, blocking the main thread for hundreds of ms each time.

Build 52 — captcha cold-cache diagnostic + UX

  • Loading overlay in CaptchaWebView replaces the blank white WebView
    during slow first loads. Spinner + "Loading captcha…" + elapsed
    counter; hides as soon as DOM has body content. Eliminates the
    "white screen for 60-90s, app feels broken" perception observed in
    issue #5 cold-cache reports.
  • PerformanceObserver in JS hooks logs DNS/TCP/TLS/TTFB/body phases
    per fetched resource, naming the hostname. When the slow-load
    pattern reproduces, the offending resource appears with
    total=60000ms+ — direct identification of the bottleneck.
  • Heartbeat self-terminate cap raised from 60s to 180s so visibility
    doesn't end before the actual Loaded event in slow scenarios.