Skip to content

Releases: seg6/surf

Surf v0.15.5

Choose a tag to compare

@github-actions github-actions released this 01 Sep 12:03
v0.15.5
7fab33a

0.15.5 - 2026-09-01

Clearer updates, compatibility, and shutdown behavior.

  • Upgrade in place; do not uninstall first. Install Surf 0.15.5 over the
    existing desktop and iPad packages. Browser data, settings, paired-device
    keys, and server identity remain intact; no re-pairing is required.
  • Stopped patch releases from blocking connections. Client and server app
    versions may now differ as long as their compatibility generation matches.
  • Made required updates directional. An older iPad receives the exact client
    package embedded in its backend; a newer iPad asks for a backend update and is
    never silently downgraded. A newer compatible iPad app appears as an optional
    update in Settings.
  • Verified the embedded iPad installer. Builds check the package identity,
    app version, compatibility generation, byte size, and SHA-256 hash. Surf
    disables an invalid package instead of advertising an update it cannot safely
    install.
  • Added surf quit. It gracefully closes either the desktop tray and its
    managed browser or a foreground Surf server, so users no longer need to hunt
    down several wrapper and child processes.

Native iOS and unified Linux, Windows, and macOS packages are attached. Launch surf for the desktop app or run surf serve under a service manager for a headless backend.

Surf v0.15.4

Choose a tag to compare

@github-actions github-actions released this 01 Sep 02:07
v0.15.4
e844b89

0.15.4 - 2026-09-01

More dependable browser startup and recovery, especially on Windows.

  • Fixed false “Video Unavailable” failures. Chrome and Edge sometimes launch
    the real browser in another process and then close their small starter process.
    Surf now waits for the browser's actual control connection instead of treating
    that normal handoff as a crash. This addresses the failure that could make Surf
    work only while a Windows Remote Desktop session remained open.
  • Made restarts predictable. The Surf server and its browser now run as one
    supervised unit. If the browser genuinely crashes, the desktop tray restarts
    the complete unit instead of trying to repair a half-running browser inside the
    old server.
  • Kept idle resource use low without closing the browser. Tabs remain ready
    between client connections, while video and audio capture still stop when no
    device is watching.
  • Made tab restoration reflect the latest browser state. Surf now saves tab,
    active-tab, URL, website-mode, and appearance changes shortly after they happen
    instead of waiting for server shutdown. Closing the final page correctly saves
    Surf's New Tab state rather than resurrecting an older tab after a restart.
  • Improved automatic profile recovery. If Windows temporarily locks the
    browser profile, Surf no longer records a failed repair as successful. It exits
    cleanly and retries the recovery on the next start.
  • Added useful launch diagnostics. A genuine startup failure now includes a
    short, size-limited tail of Chrome or Edge's error output without allowing logs
    to grow without bound.

Native iOS and unified Linux, Windows, and macOS packages are attached. Launch surf for the desktop app or run surf serve under a service manager for a headless backend.

Surf v0.15.3

Choose a tag to compare

@github-actions github-actions released this 31 Aug 21:29
v0.15.3
97d2da8

0.15.3 - 2026-08-31

Smooth system-rendered video and correct classic icon artwork on iOS 6 and 7.

  • Brought the fast video path to iOS 6 and 7. Surf hands compressed H.264
    video to the operating system instead of decoding and drawing every frame in
    the app. High-motion pages can now remain sharp and reach the requested frame
    rate instead of becoming blurry and settling around 30–40 FPS.
  • Kept video moving through keyboard transitions. Opening or closing the
    keyboard no longer stalls the stream. Surf can recover from temporary display
    pressure and automatically falls back to the older renderer on devices that
    cannot use the direct path reliably.
  • Fixed an iOS 6 crash when tapping the address bar and opening the keyboard.
  • Restored the intended app icon on every supported system. iOS 6 receives
    the rounded classic icon with the plane extending beyond its tile; iOS 7 and
    later receive full-bleed artwork designed for the system's own icon mask.
    Installation refreshes the correct artwork automatically.

Native iOS and unified Linux, Windows, and macOS packages are attached. Launch surf for the desktop app or run surf serve under a service manager for a headless backend.

Surf v0.15.2

Choose a tag to compare

@github-actions github-actions released this 31 Aug 11:54
v0.15.2
3990dce

0.15.2 - 2026-08-31

A new low-overhead video renderer for iOS 8 and later.

  • Removed the expensive per-frame drawing pipeline. On iOS 8+, Surf now gives
    compressed H.264 frames directly to the system display queue. The app no longer
    waits for a decode callback, moves each decoded surface through UIKit, and draws
    it with OpenGL. This isolates playback from interface animations and cuts the
    renderer's own work to roughly a millisecond on supported devices.
  • Stopped keyboard changes from restarting video. The remote browser keeps one
    stable, even-sized surface while the keyboard or bottom browser controls move.
    iOS simply covers or repositions part of that surface locally.
  • Made overload recovery safe. Surf uses a single checked H.264 sample builder,
    discards only frames that cannot be decoded independently when the system queue
    is full, and replaces a failed display layer cleanly. iOS 6 and 7 retain the
    compatible VideoToolbox/OpenGL renderer in this release.
  • Made performance readings match the active renderer. Newer systems report
    accepted compressed frames, display-queue pressure, recoveries, and failures;
    older systems continue to report decode and OpenGL timing.
  • Kept the default stream sharp at 60 FPS. The primary stream uses the native
    display size and a detail-focused 16 Mbit/s variable bitrate. Unnecessary key
    frames and competition between ordinary controls and incoming media were
    removed.
  • Compatibility: protocol 20260831-1; update the client and server together.

Native iOS and unified Linux, Windows, and macOS packages are attached. Launch surf for the desktop app or run surf serve under a service manager for a headless backend.

Surf v0.14.0

Choose a tag to compare

@github-actions github-actions released this 31 Aug 00:27
v0.14.0
cad8f23

0.14.0 - 2026-08-31

A complete redesign of Surf's native browser interface.

Browser controls

  • Rebuilt the address bar, phone toolbar, iPad tabs, tab overview, new-tab page,
    connection screens, Library, pairing, Reader, media controls, and supporting
    screens as one consistent visual system.
  • Replaced hand-drawn symbols with the bundled Lucide icon set and adopted the
    Apache-2.0-licensed Deta Surf artwork across the app, desktop tray, management
    page, and launch branding.
  • Combined the iPad address bar and tabs into a compact edge rail. It can sit at
    the top or bottom of the screen, shows the hostname until editing begins, and
    expands to the full address without resizing the streamed page.
  • Made every tab continuously scrollable instead of hiding overflow in a separate
    menu. Tabs use live page titles, clearly identify the active page, and keep the
    New Tab button directly beside the rail.
  • Replaced the accidental system Share sheet behind More with a dedicated
    browser-tools menu. AirDrop and other destinations now appear only under the
    actual Share action, and menus size themselves to their contents.

Settings and diagnostics

  • Reorganized Settings into readable groups for browsing, performance, data,
    server controls, and version information. Explanations wrap instead of being
    clipped, unavailable actions say why, and the client and protocol versions are
    always visible.
  • Rebuilt the Performance Monitor as a compact translucent panel. It shows the
    important health readings first, can reveal round-trip and pipeline details,
    never scrolls inside itself, and never resizes the browser stream.

Appearance and state

  • Added a neutral dark appearance to the entire native interface and told Chromium
    to expose the matching standard prefers-color-scheme value to websites. Surf
    does not override colors explicitly chosen by a site.
  • Corrected dark popovers, arrows, selectors, Library controls, table cells,
    navigation bars, inactive controls, and address-bar placeholder contrast while
    keeping iOS-owned Share screens readable.
  • Fixed tab titles that remained stuck on the URL. Surf now uses the document's
    real title and falls back to a short hostname only when no useful title exists.
  • Fixed loading indicators becoming stuck or leaking into another tab. Loading,
    Stop, navigation, reconnect, activation, and close state are now tracked per tab
    and only for the page's main frame, with a timeout for sites that never send a
    final completion event.
  • Standardized headings and controls on the native system font from iOS 6 through
    14, with more reliable touch targets, separators, selected states, and compact
    layouts on both phones and tablets.
  • Compatibility: protocol 20260826-1; update the client and server together.

Native iOS and unified Linux, Windows, and macOS packages are attached. Launch surf for the desktop app or run surf serve under a service manager for a headless backend.

Surf v0.13.7

Choose a tag to compare

@github-actions github-actions released this 21 Aug 13:01
v0.13.7
811c0c0

0.13.7 - 2026-08-21

Simpler installation on jailbroken iOS devices.

  • Added a public Cydia and Sileo repository at
    seg6.space/surf, with an iOS 6-compatible page and a
    direct .deb download.
  • Linked the installer from Paired Devices on the desktop, the terminal pairing
    flow, and the quick-start guide.
  • Release automation now verifies the package hashes and publishes only packages
    built from a signed Surf release.

Native iOS and unified Linux, Windows, and macOS packages are attached. Launch surf for the desktop app or run surf serve under a service manager for a headless backend.

Surf v0.13.6

Choose a tag to compare

@github-actions github-actions released this 21 Aug 12:37
v0.13.6
67c035e

0.13.6 - 2026-08-21

Lower battery use while Surf is in the background.

  • Surf now pauses audio, video decoding and presentation, clipboard checks, and
    diagnostics as soon as the iOS app enters the background. In particular, the
    silent audio queue can no longer keep older devices awake unnecessarily.
  • The secure connection remains available for one minute, allowing a quick resume
    without reconnecting. After that grace period Surf disconnects and reconnects
    automatically when reopened.

Native iOS and unified Linux, Windows, and macOS packages are attached. Launch surf for the desktop app or run surf serve under a service manager for a headless backend.

Surf v0.13.5

Choose a tag to compare

@github-actions github-actions released this 13 Aug 15:49
v0.13.5
7637e15

0.13.5 - 2026-08-13

Reduced server resource use between browsing sessions.

  • Chromium starts when the first authenticated client connects and closes two
    minutes after the last one leaves. Pairing, updates, logs, and clipboard tools
    remain available because the lightweight Surf server stays running.
  • Tabs, the active tab, Mobile Websites mode, cookies, and site storage survive an
    idle shutdown. Active downloads delay shutdown, and Surf attempts to recover a
    browser that exits unexpectedly without restarting the server.
  • Browser state is visible in diagnostics and the desktop management page. Server
    operators can change the delay with SURF_BROWSER_IDLE_TIMEOUT; setting it to
    0 keeps Chromium running. This lifecycle was later replaced by the simpler
    supervised model described under Unreleased.

Native iOS and unified Linux, Windows, and macOS packages are attached. Launch surf for the desktop app or run surf serve under a service manager for a headless backend.

Surf v0.13.4

Choose a tag to compare

@github-actions github-actions released this 11 Aug 07:44
v0.13.4
83c151e

0.13.4 - 2026-08-11

Reliable page audio on iOS.

  • Surf now opens an explicit playback audio session before creating its audio
    queue, so page sound is not muted by iOS's default ambient mode or the physical
    Silent switch. Failures appear in the client log.
  • Diagnostics can distinguish silent audio captured by Chromium from a transport
    or device playback failure. They record small numeric signal summaries, never
    raw audio or its contents.

Native iOS and unified Linux, Windows, and macOS packages are attached. Launch surf for the desktop app or run surf daemon under a service manager for a headless backend.

Surf v0.13.3

Choose a tag to compare

@github-actions github-actions released this 09 Aug 14:49
v0.13.3
e17d9cc

0.13.3 - 2026-08-09

Fixed touch after switching website modes.

  • Switching between Desktop and Mobile Websites no longer leaves pages without
    DOM touch or Pointer Events. This restores swiping on sites such as TikTok and
    YouTube Shorts without requiring a restart or another navigation.
  • Browser-backed tests now cover both inertial scrolling and native HTML selection
    controls so the two input paths cannot silently break each other.

Native iOS and unified Linux, Windows, and macOS packages are attached. Launch surf for the desktop app or run surf daemon under a service manager for a headless backend.