Skip to content

Releases: termimus/termimus-ssh

Termimus v0.6.2

Choose a tag to compare

@github-actions github-actions released this 02 Oct 19:28

v0.6.2

🐛 Fixes

  • CustomSelect dropdown overlap/clipping — Dropdown popover was rendered inline (position: absolute) relative to its trigger, so inside scrollable containers (e.g. the "Assign Hosts to Panes" list in the New Workspace Preset modal) it got clipped and overlapped neighboring rows. The popover now renders through a React Portal into document.body with position: fixed, computed from the trigger's bounding rect, with automatic flip-up when there isn't enough room below and live repositioning on scroll/resize. Fixes it across every CustomSelect usage app-wide (Host Modal, Tunnel Modal, SFTP, Settings, Workspace Modal).
  • Server URL input swallowing // — The Sync settings "Server URL" field stripped trailing slashes on every keystroke, which made it impossible to type http:// or https:// since the second / was immediately stripped back off. Trailing-slash cleanup is now deferred to blur / network-call time instead of running on every character typed.

🧹 Internal

  • Removed unnecessary max-h-56 overflow-y-auto clipping wrapper on the Workspace Preset host-assignment list (no longer needed now dropdowns portal to body).
  • Bumped version to v0.6.2 across package.json, src-tauri/tauri.conf.json, src-tauri/Cargo.toml, src/stores/useUpdateStore.ts, README.md, and server/internal/handlers/handlers.go.

Termimus v0.6.1

Choose a tag to compare

@github-actions github-actions released this 02 Oct 18:03

Termimus v0.6.1 — Hotfix: Native Rust Sync Engine & Status Polish ⚡

A critical stability and UX patch addressing self-hosted sync relay communication over local HTTP networks on Linux desktop platforms, along with enhanced connection status reporting.


🐛 Bug Fixes & Improvements

🌐 Native Rust HTTP Sync Engine (Fix TypeError: Load failed)

  • WebKitGTK Active Mixed-Content Bypass: In previous versions, self-hosted relay requests (Push, Pull, Test Connection, Device List) were executed through the browser's window.fetch(). On Linux desktop builds running under the secure tauri://localhost origin, WebKitGTK actively blocked POST requests containing encrypted payloads to plaintext HTTP endpoints (such as local homelab LAN IPs http://10.x.x.x or http://192.168.x.x), surfacing as an unhelpful TypeError: Load failed error.
  • Direct OS-Level Network Routing: All relay network communication is now routed through a high-performance native Rust HTTP client powered by reqwest. This eliminates browser-engine sandbox restrictions, mixed-content blocking, and CORS preflight overhead completely.
  • Files: src-tauri/src/commands/mod.rs, src-tauri/Cargo.toml, src/lib/api.ts, src/stores/useSyncStore.ts

🎨 Sync Relay Status & Banner UX Polish

  • Resolved False-Positive NOT CONFIGURED Badge: The sync status badge in the header card no longer erroneously shows NOT CONFIGURED when server credentials are fully populated.
  • New Adaptive Connection States:
    • NOT CONFIGURED — Displayed only when the Server URL or E2EE Passphrase is empty.
    • READY — Displayed when configuration is complete but awaiting synchronization.
    • SYNCING... — Animated primary badge during active upload/download bursts.
    • CONNECTED — Active green pulse indicator confirming reachable relay status.
    • CONNECTION ERROR — Clear danger badge if the target endpoint is offline or unauthorized.
  • Silent Background Auto-Check: Opening the Self-Hosted Sync tab now triggers a silent background health verification so the status indicator seamlessly illuminates to CONNECTED without requiring manual "Test Connection" clicks.
  • Files: src/components/sync/SyncSection.tsx

📦 Component Versions

Component Version Package
Desktop Client (Tauri + Rust + React) v0.6.1 Releases
Self-Hosted Sync Server (Go) v0.6.1 ghcr.io/termimus/termimus-sync

Full Changelog: v0.6.0...v0.6.1

Termimus v0.6.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 16:24

Termimus v0.6.0 — Local Terminal (PTY), Biometric Auth & UI Overhaul 🚀

A landmark release packed with major community-requested features: an integrated local shell (PTY), hardware biometric authentication (Touch ID), customizable terminal themes, workspace persistence, and refined vault workflows.


⚡ What's New

💻 Integrated Local Terminal / PTY Shell

  • Native Local Shell Support: Run your favorite local shells (zsh, bash, fish on macOS/Linux; PowerShell 7+, cmd.exe on Windows) directly inside Termimus alongside remote SSH sessions.
  • Adaptive I/O Streaming: Interactive keystroke echoing at 0ms latency with adaptive coalescing (8ms batches / 64KB cap) for high-output commands.
  • Full Split Pane & Broadcast Integration: Split local terminals horizontally or vertically, broadcast commands across local and SSH sessions, and run snippets locally.
  • Quick Connect Access: Press Cmd+K / Ctrl+K and launch an interactive local terminal in one click or by typing local, zsh, bash, cmd.
  • Commit: f85d288 via PR #13 by @sakatimuna7

🔒 Hardware Biometric Authentication (Touch ID)

  • Zero-Knowledge Touch ID Unlock: Unlock your Termimus vault in a split second using macOS Touch ID without typing your master password every time.
  • Secure Architecture: Keys are verified against stored ciphertext verifiers and safely held in the OS Keychain without saving plaintext passwords to disk.
  • Non-blocking Execution: Evaluated via Apple's LocalAuthentication framework using tokio::task::spawn_blocking to ensure a smooth, unblocked UI.
  • Commit: 50fafbf via PR #11 by @sakatimuna7

🎨 Terminal Themes, Offline Fonts & Keyword Highlighting

  • Custom Terminal Themes: Choose from popular themes (Catppuccin Mocha, Tokyo Night, Dracula, Nord, One Dark, Monokai, Obsidian) with real-time preview.
  • 100% Offline Embedded Fonts: JetBrains Mono, Fira Code, and Inter are now embedded directly in the application bundle — no external Google Fonts requests required.
  • Keyword Highlighting & Font Customization: Customize font size, line height, letter spacing, cursor style, and highlight important words or errors in live output.
  • Commits: 76d31a6 via PR #5 by @jeffnst and cbe4910 by @itsmefdil

🛡️ Vault Usability & In-Session Controls

  • Cancellable In-Session Prompts: The unlock modal now includes an X button and Escape key support for in-session prompts. First-run and app-startup prompts remain mandatory.
  • Silent Manual Lock: Clicking "Lock Vault" locks credentials immediately in memory without obtrusively throwing a password prompt back onto the screen.
  • Settings State Toggle: Added a direct "Unlock Vault" / "Lock Vault" toggle button in Settings → Security & Vault.
  • Auto-Prompt on Connect: Attempting to connect to an SSH/SFTP host while locked now gracefully surfaces the unlock modal instead of failing silently.
  • Commit: 19733f7 via PR #14 by @tripang1702 and @itsmefdil

💾 Workspaces SQLite Persistence & Sync Support

  • Workspace Presets in SQLite: Multi-server workspaces are now stored in SQLite (workspaces table) with full support for backup bundles and end-to-end sync relays.
  • Commit: 9ab1021 via PR #4 by @sakatimuna7

🔄 Sync Integrity & Data Protection

  • Folder LWW Resolution: Added updated_at to folders for true Last-Write-Wins conflict resolution during sync/restore.
  • Defensive FK Cleanup: Automatically nullifies orphaned references to prevent broken host relationships.
  • Debounced Auto-Push: Automatically triggers a 2-second debounced sync push after local changes.
  • Commit: 9d3260d via PR #7 by @sakatimuna7

🖥️ Windowing & Platform Polish

  • macOS Fullscreen Traffic Lights: Dynamically collapses the 78px header spacer in native fullscreen space.
  • Fullscreen Shortcuts: Added F11 and Cmd+Ctrl+F for native fullscreen toggling.
  • Resize Handles: Automatically unmounts edge resize handles in maximized/fullscreen states.
  • Commit: a6c085a via PR #9 by @sakatimuna7

📁 SFTP File Manager Enhancements

  • Visual refresh, better hover states, and smooth file pane interactions.
  • Commit: ea1e66e via PR #2 by @tripang1702

👥 Contributors

A massive thank you to everyone who contributed to making v0.6.0 our biggest release yet!

  • @sakatimuna7 (Hamdan Habibi) — Local PTY terminal, biometric Touch ID, macOS fullscreen handling, sync LWW, workspace SQLite persistence, and vault modal cleanup (#1, #4, #7, #9, #11, #13).
  • @tripang1702 (Rifal) — Cancellable in-session unlock prompt, silent manual lock, and SFTP UI improvements (#2, #14).
  • @jeffnst (Jeffryan) — Terminal themes, custom font controls, and keyword highlighting (#5).
  • @itsmefdil (Fadilah Riczky) — Embedded offline fonts, theme harmonization, auto-prompt unlock integration, Windows fixes, and release orchestration.

Full Changelog: v0.5.1...v0.6.0

Termimus v0.5.1

Termimus v0.5.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Sep 19:11

🚀 Termimus v0.5.1 — Major Infrastructure & Terminal Experience Overhaul

The v0.5.1 release brings a significant milestone update packed with advanced infrastructure capabilities (SSH ProxyJump / Bastion Host), interactive terminal productivity tools (Terminal Search Ctrl+F), a complete overhaul of the tab bar and dropdown UI, and major network efficiency optimizations.


✨ What's New in v0.5.1?

🛡️ 1. SSH ProxyJump (Bastion / Jump Host) — 9827eb0

  • Private Subnet Connectivity: Connect directly to hosts located inside private VPCs or internal homelab networks via an intermediate Bastion / Jump Host.
  • Double TOFU Verification: Full Trust-On-First-Use host key verification and authentication are enforced independently on both the Jump Host and the Target Host.
  • Native Stream Multiplexing: Channels TCP traffic seamlessly using channel_open_direct_tcpip over the Bastion connection without requiring external binaries or local port bindings.
  • Visual Indicator: Hosts routed through a bastion display a subtle via jump badge in both Grid and List views.

🔍 2. Interactive Terminal Search (Ctrl+F / Cmd+F) — d780981

  • Instant Terminal Buffer Search: Press Ctrl+F (Linux / Windows) or Cmd+F (macOS), or right-click the terminal and select "Find in Terminal".
  • Floating Search Bar: A sleek, non-intrusive floating search panel with autofocus, live match counter (e.g. 2 of 14), and keyboard shortcuts:
    • Enter: Jump to next match.
    • Shift + Enter: Jump to previous match.
    • Escape: Close search bar and refocus interactive terminal.
  • Advanced Search Options: Toggle Case Sensitive (Aa), Whole Word (\b), and Regular Expressions (.*).

📑 3. Redesigned Tab Bar & Middle-Click to Close — 23e3c29

  • Crisp Tab Boundaries: Active tabs now feature solid contrast background styling, subtle borders, soft shadows, and clean readable typography.
  • Hover State Feedback: Inactive tabs provide gentle hover outlines so you can easily distinguish and click them.
  • Comfortable Close (✕) Button: Always accessible on the active tab with soft opacity, appears on hover for inactive tabs, with a dedicated hit target (18×18px).
  • Middle-Click to Close: Click with the mouse wheel anywhere on a tab to close it immediately (just like Chrome / VS Code).

📋 4. Compact List View & Grid Toggle — 7c18010

  • Flexible View Modes: Seamlessly switch between Grid Cards and Compact List View directly from the top search bar.
  • Columnar Layout: Clean, structured table rows (OS Icon, Name, Address:Port, User, Tags, Actions) with individual card spacing (gap-1.5) designed for managing dozens to hundreds of servers without excessive scrolling.
  • View preference is automatically remembered in localStorage.

🐧 5. Auto-Detect Linux Distro + Simple Icons Brand Vectors — 0750af6

  • Automatic OS Detection: Inspects /etc/os-release during your first SSH connection to map server distros automatically without interrupting interactive shell sessions.
  • Official Brand Vectors: Integrated simple-icons (v16.33) for official SVG logos and authentic brand colors (Ubuntu, Debian, Arch Linux, Alpine, Fedora, CentOS, RHEL, Rocky Linux, AlmaLinux, openSUSE, Kali Linux, Linux Mint, Pop!_OS, NixOS, and more).

⚡ 6. Throttled Background Ping & Minimalist Status Micro-Dot — 7c18010

  • Network-Friendly Concurrency Pool: TCP pings are throttled via a Rust tokio::sync::Semaphore capped at 8 concurrent sockets to prevent router congestion, socket exhaustion, and firewall rate-limiting on large host inventories.
  • Battery-Saving (Visibility-Aware): Background pings automatically pause when Termimus is minimized or in the background and resume instantly when focused.
  • Micro-Dot Status: Minimalist solid status dots (🟢 <80ms, 🟡 80–200ms, 🔴 >200ms / offline) positioned cleanly in the upper-left corner inside the distro icon with hover latency tooltips.

🛠️ 7. Other Productivity Enhancements

  • Duplicate / Clone Host (7c18010): Duplicate any host configuration with 1 click from the 3-dots menu or right-click context menu (pre-fills with [Copy]).
  • Split Pane Context Shortcuts (7c18010): Right-click any host to open it directly in Split Right or Split Down.
  • Themed CustomSelect (9827eb0): Replaced all native browser/GTK select dropdowns with a custom dark-themed dropdown component matching the Terminal Obsidian palette.
  • Repositioned Copy Toast (d780981): Moved clipboard toast notifications to the bottom-right corner to prevent visual overlap with the terminal search bar.

📝 Commit Log (since v0.4.7)

  • 23e3c29 — style(terminal): redesign tab bar UX, contrast borders & middle-click close
  • d780981 — feat(terminal): interactive search buffer (Ctrl+F / Cmd+F) & toast reposition; bump v0.5.1
  • 9827eb0 — feat(hosts): SSH ProxyJump via Bastion/Jump Host & CustomSelect redesign; bump v0.5.0
  • 7c18010 — feat(hosts): compact list view, duplicate host & throttled ping latency; bump v0.4.9
  • 0750af6 — feat(hosts): auto-detect Linux distro icon via SSH + Simple Icons; bump v0.4.8

📦 Component Versions

Component Version Status
Desktop Client (Tauri + Rust + React) v0.5.1 Pre Release
Sync Server (Go) v0.5.1 Pre Release

📥 Install & Download

Pre-built binaries for Linux (.deb, .AppImage), Windows (.msi, .exe), and macOS (.dmg) are available in the Assets section below.

Termimus v0.4.7

Termimus v0.4.7 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Sep 07:48

Release v0.4.7 — Terminal Typing Latency Optimizations & TCP_NODELAY

This release focuses on terminal responsiveness and keystroke latency, eliminating network TCP buffering delays and streamlining the I/O pipeline between xterm.js and the Rust backend.


⚡ Performance Improvements

  • TCP_NODELAY (Disabled Nagle's Algorithm):

    • Explicitly invokes set_nodelay(true) on client TCP sockets before initiating the SSH handshake via connect_stream.
    • Eliminates the 40ms to 200ms per-character latency penalty previously caused by Nagle's algorithm buffering tiny keystroke packets while waiting for remote TCP Delayed ACKs.
    • Uniformly applied across Terminal SSH, SFTP, and SSH Port Forwarding Tunnels.
  • Adaptive Zero-Delay Output Coalescing:

    • Re-architected the Rust PTY output streaming loop with an adaptive flush mechanism:
      • Interactive / Idle Stream: Keystroke echoes and prompt responses are emitted to the frontend immediately (0ms artificial delay), delivering an instant, tactile typing experience.
      • High-Throughput Bursts (cat, htop, build logs): Output arriving during active bursts is automatically coalesced into ~8ms / 64KB batches to safeguard Tauri's IPC event bridge against saturation.
  • Non-blocking Concurrent Writes (RwLock):

    • Migrated SessionManager.sessions from tokio::sync::Mutex to tokio::sync::RwLock.
    • Keystroke writes (write) and terminal geometry adjustments (resize) now acquire concurrent read-locks without blocking each other or locking against active connections.
  • Frontend Garbage Collection Optimization:

    • Converted TextEncoder instances in XtermView.tsx and useSessionStore.ts into module-level singletons, preventing object reallocation and GC spikes during rapid typing sessions.

📦 Component Versions

Component Version Package
Desktop Client (Tauri + Rust + React) v0.4.7 Releases
Self-Hosted Sync Server (Go) v0.4.7 ghcr.io/termimus/termimus-sync

📝 Commit Summary

  • 8280b0f perf(terminal): enable TCP_NODELAY & adaptive zero-delay echo; bump v0.4.7

Termimus v0.4.6

Termimus v0.4.6 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Sep 05:38

Release v0.4.6 — Atomic Session Split & Workspace Tab Naming

🚀 Improvements

  • Workspace Tab Naming: Opening a terminal cluster from a Workspace Preset now automatically sets the header tab label to the Workspace Name (e.g., Production Cluster, Web + DB) instead of falling back to the first host's label.

🐛 Bug Fixes

  • Fix Split Button in Multi-Session Split Mode:
    • Resolved an issue where launching a new session from the split button (next to SYNC) in an existing multi-pane split layout resulted in an empty connection log (No logs yet...) and stuck socket connection screen.
    • Introduced openSessionInSplit in useSessionStore: atomically creates the new SSH session and performs the layout tree split in a single state transaction, preventing the intermediate dock-render cycle that was resetting the XtermView component state.
  • Connection Log Persistence in Terminal Pool:
    • Handshake progress logs (connectionLogs, connectionStep, and connectionError) are now preserved inside terminalPool.
    • Splitting, resizing, or remounting panes while an SSH connection is actively negotiating will no longer drop connection events or clear the log output.
  • Context Menu & Header Split Alignment:
    • Updated terminal right-click context menu split actions (handleSplitRight / handleSplitDown) and Header tab context menu split actions to use the atomic openSessionInSplit workflow.

📦 Component Versions

Component Version Package
Desktop Client (Tauri + Rust + React) v0.4.6 Releases
Self-Hosted Sync Server (Go) v0.4.6 ghcr.io/termimus/termimus-sync

📝 Commit Summary

  • 405dd99 fix(terminal): atomic session split & display workspace name in tab header; bump v0.4.6

Termimus v0.4.5

Termimus v0.4.5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Sep 04:23

🚀 What's New & Fixed

📋 Native Clipboard & External Paste Fix

  • Explicit Tauri Capability Permissions — Replaced the empty upstream
    clipboard-manager:default capability in src-tauri/capabilities/default.json with
    explicit clipboard-manager:allow-read-text and clipboard-manager:allow-write-text
    explicit clipboard-manager:allow-read-text and clipboard-manager:allow-write-text
    grants. In Tauri v2, the default permission set for the clipboard plugin is deliberately
    empty for security reasons, which previously caused clipboard API calls to be silently
    denied.
  • Linux/WebKitGTK Inter-App Paste — Set @tauri-apps/plugin-clipboard-manager
    (readText & writeText) as the primary clipboard mechanism backed by Rust, with
    automatic fallback to browser navigator.clipboard. This overcomes WebKitGTK security
    restrictions that block reading system clipboard content originating from outside the
    application window.
  • DOM Paste Event Capture — Updated the capture-phase paste event listener on the
    terminal DOM wrapper to reliably intercept paste actions, prevent browser event
    duplication, and seamlessly fall back to native IPC clipboard retrieval if
    e.clipboardData is empty during cross-app pastes.

🪟 Header & Tab Bar UI Refinements

  • Responsive Tab Row — Replaced hardcoded width limits on the header tab bar with
    flex-1 min-w-0 shrink overflow-x-auto. The tab row now shrinks gracefully and scrolls
    horizontally when multiple workspaces are open, ensuring right-side controls (Snippets
    toggle, Sync status indicator, and window controls) are never clipped off-screen on
    smaller displays.
  • Tab Visual Cleanup — Removed the active-tab bottom border indicator in favor of
    clean background surface contrast, aligning with the Terminal Obsidian design system.

📦 Downloads & Compatibility

Component Version Link
Desktop Client (Linux, macOS, Windows) v0.4.5 Assets below
Sync Server (Docker / GHCR) v0.4.5 ghcr.io/termimus/termimus-sync:v0.4.5

Full Changelog: v0.4.4...v0.4.5

Termimus v0.4.3

Termimus v0.4.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 28 Sep 16:20

v0.4.3

This release focuses on fixing critical SSH connection reliability issues and adds community support options.

🐛 Bug Fixes

  • Fixed the SSH connection progress overlay closing prematurely before the shell handshake actually completed, showing a blank terminal while still connecting.
  • Fixed a race condition where SSH progress events (socket, host key, auth, shell) could be dropped if they arrived before the frontend finished registering its event listeners.
  • Fixed terminal tabs getting stuck on a stale "Shell session ready" progress screen after pressing Ctrl+D or running exit on the remote server — the tab now closes automatically and returns to the Hosts view.
  • Fixed the host list's tag filter row overflowing and clipping the "New Group" / "New Host" action buttons when the window was resized narrower.

✨ New Features

  • Added an automatic update checker that polls GitHub Releases and shows an update badge in the sidebar, Settings tab, and About page when a newer version is available.
  • Added Ko-fi donation support links in the sidebar footer, Settings → About page, and the README.

🎨 UI/UX Improvements

  • Redesigned the connection progress overlay with a multi-stage animated loader (Socket → Host Key → Auth → Shell) showing live status per step.
  • Added a "Connecting..." indicator directly on host cards while a session is being established.
  • Clicking a host now switches to the Terminal view immediately instead of waiting for the session state to update.
  • Replaced the sidebar footer's static encryption label with the current app version, which turns into a clickable update notice when a new release is available.
  • Host list tag filters now scroll horizontally and reflow onto their own row on narrow windows instead of squeezing the action buttons.

📦 Other Changes

  • Updated the application version to 0.4.3.

Full Changelog:
v0.4.2...v0.4.3

Termimus v0.4.2

Termimus v0.4.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 28 Sep 11:49

v0.4.2

This release brings major improvements to the terminal experience, snippet management, and overall application usability.

✨ New Features

  • Added a toggleable snippet sidebar accessible from the header.
  • Added snippet synchronization with masking support for sensitive content.
  • Added keyboard shortcuts for terminal operations.
  • Added context menus across the terminal, hosts, SFTP, tunnels, workspaces, snippets, and other UI elements.
  • Added a notification after copying text from the terminal.
  • Improved terminal session and workspace management.
  • Updated the hosts, keychain, SFTP, tunnels, workspaces, and settings interfaces.

🎨 UI/UX Improvements

  • Improved the header and sidebar with clearer controls and connection status information.
  • Added consistent context menu support across the application.
  • Improved visual emphasis for the active navigation item.
  • Improved font rendering for sharper and more readable text.
  • Refined terminal layout behavior, including terminal resizing and visibility handling.

🔐 Security and Reliability

  • Sensitive snippet content remains protected when displayed and synchronized.
  • Improved terminal session and synchronization consistency.
  • Updated relay server handling to support the latest synchronization changes.

📦 Other Changes

  • Updated the application version to 0.4.2.
  • Included various stability improvements and internal refinements.

Full Changelog:
v0.3.0...v0.4.2

Termimus v0.3.0

Termimus v0.3.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 28 Sep 06:34

Termimus v0.3.0 — Sync Overhaul & Resilience Update

Termimus v0.3.0 brings a major overhaul to Self-Hosted Sync, with improved onboarding, reliable cross-device synchronization, stronger encryption enforcement, and better background sync resilience.

What's New

Self-Hosted Sync

  • Restore from Sync — Easily restore an existing vault on a new device without vault salt mismatch issues.

  • Deletion Sync — Deleted hosts, folders, snippets, credentials, and port-forwarding rules are now synchronized using tombstones, preventing deleted records from reappearing.

  • Persistent Device IDs — Devices now use persistent UUIDs for reliable identification.

  • Automatic Store Refresh — Sync updates automatically refresh Hosts, Keychain, Snippets, Port Forwarding, and Known Hosts.

Sync & Server Reliability

  • Background Live Sync — WebSocket sync now remains active across the entire application.

  • WebSocket Heartbeat — Added automatic ping/pong keep-alives to prevent idle connections from being dropped by reverse proxies.

  • Revision Pruning — Server automatically keeps the latest 15 revisions to reduce storage usage.

  • Server Hardening — Added request size limits, constant-time token validation, and Docker health checks.

Security

  • Zero-Knowledge E2EE Enforcement — Sync operations now require a Sync Passphrase and encrypted snapshots are validated by the server.

  • Atomic Vault Rekeying — Master Password changes are now handled atomically, including recovery for legacy records.

Desktop Improvements

  • Added Cloud Sync status indicator to the application header.

  • Added Connected Devices management under Self-Hosted Sync settings.

  • Added native macOS window controls.

  • Improved authentication and TERMIMUS_AUTH_TOKEN diagnostics.

Component Versions

Component | Version -- | -- Desktop App | v0.3.0 Sync Server | v0.3.0 Docker Image | ghcr.io/termimus/termimus-sync:v0.3.0

Docker Upgrade

docker pull ghcr.io/termimus/termimus-sync:v0.3.0

docker stop termimus-sync
docker rm termimus-sync

docker run -d
--name termimus-sync
-p 8080:8080
-v termimus_data:/data
-e TERMIMUS_AUTH_TOKEN="your-secret-token"
--restart unless-stopped
ghcr.io/termimus/termimus-sync:v0.3.0

See the commit history for the complete changelog since v0.2.1.