Skip to content

v1.2.5

Latest

Choose a tag to compare

@bdwandry bdwandry released this 27 Oct 12:08

The Hybrid Network Protocol + the Leave-a-Page Contract. Pages load via the raw-TCP engine while images load through the OS HTTP stack — and every navigation now fully severs the previous site before the next one begins.

Hybrid Network Protocol (new default)

  • New "Network Protocol" setting on row 13: TCP / HTTP / Hybrid (default) — fresh installs and out-of-range values clamp to Hybrid.
  • Pages, stylesheets, scripts, and reader fetches ride the receipts raw-TCP machine; layout display-images ride the OS HTTP stack in parallel.
  • Both backends remain stock — Hybrid is dispatch-only routing between them.
  • AVIF decoding fixed for device hardware (ispe budget, in-loop filters, per-sample gray) — 8/8 AVIFs decode on device.

Leave-a-Page Contract

  • Every navigation (B+Left back, hyperlinks, redirects, menu/home, loading-screen abort) now severs the previous site instantly:
    • In-flight fetches cancelled on both lanes at navigation start.
    • Old page's RAM freed before the new fetch begins — never 2 sites resident.
    • Image queue + decoded-bitmap cache cleared; decode-task orphans freed (no leaked body copies on mid-decode leaves).
    • Abandoned session spill files dropped from disk.
  • Device receipt: image downloads mid-flight stopped instantly on leave, 0 rows from the departed host afterward, second site's images loaded fine.

Transport Auto-Retry

  • Connection-class failures (connect fail / timeout / radio blips) auto-retry the same URL once after 2 seconds instead of dead-ending on the error page.
  • Never loops: each manual navigation re-arms the single retry. Content failures (parse/4xx) still show the error page immediately.

Device performance (wikipedia receipt)

  • All 23 distinct images decode on hardware, exactly once.
  • ~2.5 MB steady / ~7.3 MB peak heap, 0 refusals, 49–50 fps steady after the decode queue drains.
  • Empty errorlog, no watchdog.

Other fixes

  • SVG decoder: real dithered fills (was outline-only wireframes), normalized polygon shape submission.
  • Image cache keyed by full-length URLs (fixes long srcset URLs failing the cache).
  • Honest memory-tracking counters (8192 slots + 128-frame resync).