Releases: seg6/surf
Release list
Surf v0.15.5
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
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
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
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
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 standardprefers-color-schemevalue 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
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.debdownload. - 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
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
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 withSURF_BROWSER_IDLE_TIMEOUT; setting it to
0keeps 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
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
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.