Skip to content

Releases: rgdevment/LinkUnbound

v1.1.1

23 Apr 21:46
v1.1.1
4253c50

Choose a tag to compare

v1.1.1

  • Fixed default browser detection on MSIX installs — Windows assigns an opaque ProgId (AppX) to MSIX apps that doesn't contain the identity name; now resolved via AppUserModelID in the class registration

  • Fixed file type associations (.htm, .html, .xhtml, .svg, .pdf) not appearing as selectable defaults in Windows Settings for both standalone and MSIX installs

  • Added OpenWithProgIds entries per extension so LinkUnbound shows up in the per-app defaults picker

  • MSIX manifest now declares file extension associations (.htm, .html, .xhtml, .xht, .pdf, .svg, .mhtml, .mht, .shtml, .webp)

  • Standalone installer now registers all file extensions in Capabilities\FileAssociations and OpenWithProgIds

  • Implemented MSIX startup task management (background task via Windows Task Scheduler API)

  • Data storage paths migrated from APPDATA to LOCALAPPDATA with automatic migration on first launch

  • Enabled automatic publish to Microsoft Store on stable releases

  • Added GitHub Actions workflow for updating downloads badge

  • Unit tests for progIdMatchesLinkUnbound and winRegistrationUserChoiceKeys

  • Widget tests for new association labels (XHTML, SVG) in GeneralPage

  • Unit tests for SettingsView and TitleBar components

  • Improved WinStartupService tests with platform skip conditions

Full Changelog: v1.1.0...v1.1.1

v1.1.0

22 Apr 13:53
v1.1.0
be302bb

Choose a tag to compare

v1.1.0 — macOS Support & Windows Hardening

This release adds full macOS support, hardens the Windows build, and
significantly improves test coverage, logging, and diagnostics.

New Features:

  • macOS: full platform support with native Swift channels for browser
    detection, icon extraction, browser registration, startup, tray,
    URL handling and local file routing (AppDelegate + Swift bindings)
  • macOS: tray icon via tray_manager with native icons (32/64/128/256px)
  • macOS: DMG packaging script (scripts/build_macos_dmg.sh)
  • Windows: MSIX context detection — app knows if it is running as a
    Store package and adjusts update and startup flows accordingly
  • Windows: 'update available on Microsoft Store' notification (EN/ES)
  • Diagnostics: ZIP export with system info, registry dump, log tail
    and data files listing (replaces PowerShell zip compression)
  • Logging: structured file logging with subscription lifecycle management

Refactors:

  • Replaced PipeMessage/pipe_service with InboundEvent for a cleaner
    cross-platform event model
  • Unified platform bindings interface (DelegateBindings) for macOS
    and Windows
  • Improved picker, settings and bootstrap code formatting and readability
  • Streamlined local file URL handling and validation for both platforms

Fixes:

  • macOS: defer 'ready' signal until a listener subscribes to avoid
    event loss on startup
  • macOS: window blur and exit behaviour in settings view
  • macOS: correct argument order when launching browsers
  • Windows: startup task registration error handling and directory creation
  • Windows: path separators now cross-platform in diagnostics export
  • Windows: logging exceptions no longer crash on missing files

Tests & CI:

  • Test suite grows from 106 to 343 total tests (+237):
    • update_service coverage 34% -> 93% (HTTP mocks via HttpOverrides)
    • win_diagnostics coverage 11% -> 78% (injectable registry dumper)
    • New suites: inbound_event, url_utils, maintenance_page, picker_view
    • bootstrap and general_page error-path coverage added
  • Registry dumper injectable so diagnostics tests run on Linux CI
  • Platform.pathSeparator used throughout for cross-platform test compat

Assets:

  • New store images (71x71, 150x150, 300x300)
  • Hero, poster and box-art images for store listing
  • macOS tray icon set

What's Changed

New Contributors

Full Changelog: v1.0.1...v1.1.0

v1.1.0-beta.3

21 Apr 15:42
v1.1.0-beta.3
f780204

Choose a tag to compare

v1.1.0-beta.3 Pre-release
Pre-release

v1.1.0-beta.3 — Windows stability & MSIX hardening

Windows:

  • Detect MSIX packaged context and harden bootstrap error handling
  • Replace PowerShell zip with native Dart archive implementation
  • Fix MSIX startup task configuration and registration errors
  • Add 'update available on Microsoft Store' messages (EN/ES)
  • Improve path separators and error handling in diagnostics export

Logging:

  • Better log subscription lifecycle and message formatting on Windows

Tests / CI:

  • Registry dumper injectable so exportDiagnostics tests run on Linux CI
  • Use Platform.pathSeparator for cross-platform test compatibility
  • Coverage +29 tests (update_service 34->93%, win_diagnostics 11->78%)

What's Changed

Full Changelog: v1.1.0-beta.2...v1.1.0-beta.3

v1.1.0-beta.2

21 Apr 05:47
v1.1.0-beta.2
7c3d0c6

Choose a tag to compare

v1.1.0-beta.2 Pre-release
Pre-release

LinkUnbound v1.1.0-beta.2

Hotfix release on top of v1.1.0-beta.1, focused on a cold-start
regression on macOS and developer ergonomics.

Fixes

  • macOS: opening a link or local file from Mail/Slack/Finder while
    LinkUnbound was fully closed (not in the menu bar) used to launch the
    app and show the Settings window instead of the picker. Root cause:
    the inbound-events channel asked the native side to flush queued URL
    events before the Dart side had a chance to subscribe, so cold-start
    events landed on a listener-less broadcast stream and were dropped;
    the post-frame fallback then opened Settings. The 'ready' signal is
    now deferred until a Dart listener actually subscribes, guaranteeing
    no events are lost between bootstrap and the first listener.

Tooling

  • New scripts/dev_clean.sh (macOS counterpart of dev_clean.ps1):
    removes Application Support, caches, preferences, saved state, login
    items and rebuilds the Launch Services database. Supports --dry-run,
    --skip-files, --skip-ls.

Tests

  • mac_inbound_events: replaced the eager-ready test with two new tests
    covering the deferred signalling behaviour and idempotency across
    multiple listeners.
  • Coverage bumps for picker_view (file:// rendering + always-open guard
    on hostless URLs), general_page (startup enable path, duplicate and
    remove browser actions), maintenance_page (export diagnostics dialog
    and reset confirmation flow) and log_service (FileSystemException
    swallowing when the log directory disappears mid-session).

Distribution

  • DMG (signed and notarized) for Apple Silicon and Intel via the
    Homebrew tap (brew install --cask rgdevment/tap/linkunbound).
  • MSIX bundle and self-extracting EXE for Windows x64.

Full Changelog: v1.1.0-beta.1...v1.1.0-beta.2

v1.1.0-beta.1

21 Apr 05:14
v1.1.0-beta.1
c2bc209

Choose a tag to compare

v1.1.0-beta.1 Pre-release
Pre-release

v1.1.0-beta.1 — macOS support (beta)

First multi-platform release. Adds full macOS support to LinkUnbound.

Highlights

  • Native macOS picker, settings and tray (LSUIElement, no Dock icon)
  • Registers as default browser via LaunchServices
  • Cold-start link handling
  • Universal binary (arm64 + Intel x86_64)
  • Signed with Developer ID + Hardened Runtime + Apple notarization
  • Distributed via Homebrew: brew install --cask linkunbound-beta
  • DMG installer attached to the GitHub Release

Pipeline

  • New release-mac.yml (codesign + notarytool + stapler + Homebrew tap publish)
  • CI matrix expanded to [windows-latest, macos-15]
  • Caching, concurrency group and dart fix --dry-run check added

Windows

  • No regressions. Existing installer + MSIX paths unchanged.

Full Changelog: v1.0.1...v1.1.0-beta.1

v1.0.1

20 Apr 13:37
v1.0.1
b47d920

Choose a tag to compare

Full Changelog: v1.0.0...v1.0.1

LinkUnbound v1.0.0

17 Apr 21:45
v1.0.0
9768e4c

Choose a tag to compare

A free, open source browser picker for Windows.

Features:

  • Intercepts every link click system-wide (HTTP, HTTPS, PDF, HTML)
  • Floating picker near cursor to choose which browser opens the link
  • Per-domain rules — save preferences like 'always open GitHub in Chrome'
  • Hierarchical domain matching (subdomain → parent → picker)
  • Microsoft SafeLinks and redirect unwrapping
  • Automatic browser detection from Windows registry
  • Custom browsers with manual executable paths
  • Drag-and-drop browser reordering
  • Keyboard shortcuts (1-9) in the picker
  • System tray resident with instant response via named pipe IPC
  • Startup with Windows (silent background mode)
  • Export diagnostics for troubleshooting
  • English and Spanish localization with auto-detection
  • Update notifications via GitHub Releases API
  • Signed installer (Inno Setup) + MSIX package
  • 244 unit tests, zero analyzer issues

Privacy: no telemetry, no accounts, no tracking. Everything local.
License: GPL-3.0

Full Changelog: https://github.com/rgdevment/LinkUnbound/commits/v1.0.0