Skip to content

# PureLink v3.0.0 — Developer Tools, Self-Update, Ignore List, and Major Architecture Overhaul

Latest

Choose a tag to compare

@github-actions github-actions released this 03 Jun 06:59

PureLink is a native desktop privacy guard and clipboard manager for developers, running as a background daemon in the system tray on Windows, Linux, and macOS.

This release represents a fundamental rewrite of the internal architecture — replacing global variables with a thread-safe App struct, eliminating a legacy config_manager.go, centralizing all state under sync.RWMutex, and adding 9 new features spanning developer tools, clipboard commands, background updates, and accessibility.

What's New

Developer Tools Submenu

  • WSL Path Mode toggle and one-shot "Convert Clipboard to WSL Path" action
  • Base64 Encode/Decode clipboard operations
  • UUID v4 generator
  • URL Encode/Decode (percent-encoding)
  • Format JSON — pretty-print clipboard JSON
  • Unix Timestamp — copy current epoch seconds
  • Decode JWT Payload — extract and pretty-print JWT body
  • All actions read clipboard, transform, write back, and play a success beep; errors produce a silent error beep without crashing

Clipboard Commands

  • Inline commands typed as clipboard content: !wa {number}, !tg {username}, !b64e {text}, !b64d {base64}, !uuid
  • Can be toggled on/off via Advanced Settings menu (persisted to config)

Ignore List (Whitelist)

  • Configurable per-domain bypass in purelink_config.json — domains like localhost and 127.0.0.1 skip all cleaning
  • Defaults to ["localhost", "127.0.0.1"] with auto-migration for existing config files
  • "Open Config File" menu item launches OS default editor for quick editing

Self-Update Mechanism

  • Checks GitHub releases API on startup (silent), compares semver, shows Yes/No dialog via sqweek/dialog
  • Safe binary replacement: download .tmp → rename exe.old → rename .tmpexe → spawn new process → os.Exit(0)
  • Cleanup of stale .old binaries on startup
  • os.Chmod(0755) applied to downloaded binaries for Linux/macOS compatibility
  • Menu items: "Check for Updates" (bypasses skipped version) and "View Release Notes"

Background Rules Updater

  • 7-day ticker automatically fetches the latest tracking-parameter blocklist from GitHub
  • Manual "Update Filters Now" menu item for immediate refresh
  • Network errors silently swallowed in background mode

Architecture & Reliability

  • App struct replaces all global variables; sync.RWMutex guards Config and ActiveBlocklist
  • Cross-platform config path via os.UserConfigDir() (no more hardcoded %APPDATA%)
  • Single-instance flock lock moved to UserConfigDir()/PureLink/purelink.lock (survives reboots)
  • 1-second clipboard debounce — skips duplicate OS events for the same content
  • Self-contained state — config_manager.go deleted, all logic lives in app.go, config.go, cleaner.go, tools.go, updater.go

Social Tools Refinements

  • "Convert to WhatsApp" / "Convert to Telegram" now format the clipboard and play a beep without opening a browser
  • No network calls are made by these actions

Accessibility & Cross-Platform

  • Terminal bell (\a) notification on Linux/macOS as an audible cue
  • XDG autostart .desktop file for Linux
  • Windows registry autostart remains unchanged
  • Platform build tags keep OS-specific code isolated

Bug Fixes

  • Resolved clipboard watcher goroutine leak by passing tick time as time.Duration instead of int64
  • Fixed resolveURL modifying the original URL host — now uses a copy
  • Corrected WSL path conversion to not append an extra / to root paths
  • Fixed beep function not imported in platform files
  • Config persistence now properly handles default values for new fields in existing configs

📥 Installation & Downloads

Windows (via Winget)

The fastest way to install or update on Windows is using the Windows Package Manager. Run this command in your terminal:
winget install AhmedSamy.PureLink

Direct Downloads (Windows, macOS, Linux)

You can download the pre-compiled binaries for your specific operating system from the Assets section below.

  • Verify Integrity: Every binary comes with a corresponding .sha256 file. We highly recommend using sha256sum to verify the integrity of your downloaded executable before running it.