41 Commits
Author SHA1 Message Date
MrBlakeandClaude Opus 5.5 5c974f31ce Title bar: center tabs vertically as rounded pills (were bottom-aligned while logo, + and buttons were centered), frame the active tab, draw + as an icon and center all title bar icons at the same size
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 21:45:05 +02:00
MrBlakeandClaude Opus 5.5 c3a4d06310 sudo for firewall, network and Docker: try passwordless sudo first, then the saved host password, otherwise ask for the sudo password (up to 3 attempts, kept only for the open tab) instead of failing with "root privileges required"
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 21:35:59 +02:00
MrBlakeandClaude Opus 5.5 93123c5c60 SFTP: upload button on the server pane (desktop: system file dialog with multi-select, uploads into the current folder); fix the backend switch (UFW/iptables) sitting too high in the firewall tab bar (.seg bottom margin was only reset for Docker)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 21:29:49 +02:00
MrBlakeandClaude Opus 5.5 6f52873b69 Support assistant: fix the delete-chat confirmation opening twice (panel click handler was added again on every reload)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:50:55 +02:00
MrBlakeandClaude Opus 5.5 136e4b4e2c RDP tabs on Windows: no visible mstsc windows and resolution follows the tab size. mstsc is started with /v: instead of an unsigned .rdp file (avoids the mandatory "unknown publisher" security warning; a file is still used when the host needs drive redirection, clipboard/audio off or scaling); a WinEvent hook adopts the session window while it is still hidden (borderless, parked off-screen until logged in), keeps the "connecting" progress dialog invisible and shows real prompts (certificate, errors) centered over the tab; servers without dynamic resolution (mstsc clamps the window to the session size) are detected and reconnected with the new size after resizing, re-confirming a certificate the user already accepted for this session
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 14:35:30 +02:00
MrBlakeandClaude Opus 5.5 4176cc0a01 Support assistant across all tabs: global panel (title bar button and in terminal, Docker, firewall and network tabs) that uses the active tab as context (terminal output, container/stack view, compose editor with masked .env values, firewall rules, network config); chats are stored in the vault and can be switched, started anew and deleted; stop button while answering
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 22:44:35 +02:00
MrBlakeandClaude Opus 5.5 6ebdc5126f Docker stacks: show .env variables when editing a stack whose .env was written via sudo (root-owned, mode 600); reading now retries with sudo instead of silently showing an empty .env, which also deleted the file on the next save
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 22:12:37 +02:00
MrBlakeandClaude Opus 5.5 8c8dc0d4c0 Add support assistant via Ollama: chat panel in terminal tabs with the latest terminal output as context, 'explain last error', copy/insert suggested commands (never auto-executed), Ollama server/model in settings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 21:41:56 +02:00
MrBlakeandClaude Opus 5.5 6efa74aa7e Docker: add a Compose stack manager (Containers | Stacks toggle): list stacks in a stacks folder (default /opt/stacks) plus projects found via compose ls, create/edit compose.yaml and .env in an editor (validated with compose config), deploy/stop/restart/down/pull/logs/delete in terminal tabs, clone stacks from Git and git pull + redeploy, app templates in Portainer format (default Lissy93/portainer-templates: container templates are converted to compose, stack templates loaded from GitHub), "Set up folder" makes the stacks folder writable for the SSH user
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 14:58:50 +02:00
MrBlakeandClaude Opus 5.5 93d7130bfa Backup: export everything (hosts, groups, keys, passwords, snippets, forwards, VPNs, known hosts, history, settings), optionally encrypted with a password (scrypt + AES-256-GCM); import asks for the password, can merge or replace existing data and optionally restore settings; old backups still import; shared module for desktop, web and Android (src/core/backup.js)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 14:45:31 +02:00
MrBlakeandClaude Opus 5.5 408b4bd9d0 Snippets: add built-in templates (collapsed "Templates" section in the snippets view and the terminal snippet panel): authorize an SSH key from the keychain for a user, install the QEMU guest agent, set/remove an APT cache server (apt-cacher-ng), system update; parameters are asked for before running
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 14:37:31 +02:00
MrBlakeandClaude Opus 5.5 7d4991c99c App lock: unlock with security keys via the built-in CTAP2 client on Linux too (Chromium returned no PRF result, so adding a YubiKey failed with "does not support hmac-secret"); updates: show only one update dialog at a time (startup and manual check stacked two)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 14:22:34 +02:00
MrBlakeandClaude Opus 5.5 daff240aa6 App lock: fix registering security keys with a FIDO2 PIN on Linux (Electron has no WebAuthn PIN prompt, so Chromium failed with NotAllowedError after touching the key); register via a built-in CTAP2 client over hidraw with PIN entry in the key window
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 13:53:38 +02:00
MrBlakeandClaude Opus 5.5 32bf502ffa Web: fix SSH, SFTP and all other sessions failing over plain http:// (crypto.randomUUID only exists in secure contexts), add a clipboard fallback without HTTPS
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 15:03:55 +02:00
MrBlakeandClaude Opus 5.5 45b0be8557 Add MrTerm Web: self-hosted browser version (Docker Compose) with user accounts, per-user vaults encrypted by the login password, the desktop UI over WebSocket, SFTP upload/download over HTTP; share backend channels between Android and web (src/core/backend.js)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 14:52:26 +02:00
MrBlakeandClaude Opus 5.5 58709e09f2 Themes: share app theme colors between desktop and Android (app-themes.css), add theme picker and accent color to the Android app, and add Windows XP, Windows 11, macOS (Liquid Glass) and Cyberpunk 2077 themes with matching terminal schemes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 14:31:51 +02:00
MrBlakeandClaude Opus 5.5 4542aff75f Add Android app: phone UI for hosts, SSH terminal with extra key row, keys, snippets, LAN sync and app lock (password + fingerprint), reusing the desktop Node modules via capacitor-nodejs; APKs per ABI in releases for Obtainium
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 23:56:39 +02:00
MrBlakeandClaude Opus 5.5 98d8cfa993 Network: confirm a change only after it has been fully applied, keep the session when the old connection times out, and retry reloading so changes show up without reopening the tab
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 23:22:16 +02:00
MrBlakeandClaude Opus 5.5 eba3e38620 Sync: warn CachyOS/UFW/firewalld users to open the sync ports with copyable commands; ask before sharing newly created SSH keys, passwords and VPN configurations
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 23:15:49 +02:00
MrBlakeandClaude Opus 5.5 41717b2d07 Add encrypted LAN sync between MrTerm devices: UDP discovery, X25519 pairing with short authentication code, mutually authenticated AES-256-GCM sessions, last-writer-wins merge with deletions, and per-item opt-in for SSH keys, passwords and VPN configurations
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 23:05:39 +02:00
MrBlakeandClaude Opus 5.5 487ed069fc Fix main-process crash on SSH connection errors: handle repeated ssh2 error events, use the Windows OpenSSH agent only when it is running, show uncaught errors as a toast
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 22:51:33 +02:00
MrBlakeandClaude Opus 5.5 352a887a67 Add network management over SSH for Ubuntu (netplan) and Debian/Proxmox (ifupdown): interfaces, IPs, DHCP, gateway, DNS, bonds with LACP, bridges, VLANs, hostname and config files, applied with automatic rollback; UFW shows a hint when disabled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 22:40:58 +02:00
MrBlakeandClaude Opus 5.5 128ca98030 Add firewall management over SSH for UFW and iptables/ip6tables: view and edit rules and default policies, persist iptables rules, SSH lockout protection
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 22:21:04 +02:00
MrBlakeandClaude Opus 5.5 70a15eddbc Add Docker/Podman container management over SSH: container list with status, ports, CPU and memory; shell and live logs in terminal tabs; start, stop, restart and remove
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 22:11:26 +02:00
MrBlakeandClaude Opus 5.5 b38837d4e0 VPN: WireGuard-/OpenVPN-Konfigurationen verwalten, Hosts zuordnen, automatischer Aufbau vor dem Verbinden (Linux: NetworkManager, Windows: WireGuard-Dienst/OpenVPN GUI)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 19:05:33 +02:00
MrBlakeandClaude Opus 5.5 b33af709aa App-Sperre mit Passwort und/oder FIDO2-Sicherheitsschlüssel (PRF/hmac-secret): Vault zusätzlich verschlüsselt, Sperrbildschirm, Strg+Shift+L, automatische Sperre
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 18:54:17 +02:00
MrBlakeandClaude Opus 5.5 29fef7cb33 Updater (pacman): pkexec/sudo über systemd-run --user starten, da Electron NO_NEW_PRIVS setzt und Kindprozesse keine Root-Rechte erlangen können
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 18:43:38 +02:00
MrBlakeandClaude Opus 5.5 e8fefe4ebe Terminal: schwarzen Rand im Innenabstand entfernt (xterm-viewport transparent, Hintergrund in Terminalfarbe)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 18:36:51 +02:00
MrBlakeandClaude Opus 5.5 0cefd5a21f Updater (pacman): pkexec mit absolutem Pfad; bei fehlendem Polkit-Agent/abgebrochener Abfrage (126/127) Installation per sudo im Terminal
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 18:27:26 +02:00
MrBlakeandClaude Opus 5.5 d53bd1a4c1 Terminal: Innenabstand ans xterm-Element verschoben, damit FitAddon nicht eine Zeile/Spalte zu viel berechnet (Konsole unten/rechts abgeschnitten)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 18:22:32 +02:00
MrBlakeandClaude Opus 5.5 2890844c81 Mehrsprachigkeit (Englisch/Deutsch, Systemsprache oder Auswahl in den Einstellungen), README auf Englisch für Nutzer, Version 0.4.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 18:18:03 +02:00
MrBlakeandClaude Opus 5.5 4b1738aae8 Linux: Neustart mit --ozone-platform=x11 statt appendSwitch (GPU-Prozess stürzte ab, kein Fenster im installierten Paket)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 16:44:12 +02:00
MrBlakeandClaude Opus 5.5 b6b93aa240 Sidebar: Menü ein-/ausklappbar (eingeklappt als Symbolleiste, Zustand wird gemerkt)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 15:45:55 +02:00
MrBlakeandClaude Opus 5.5 b81a7bd794 Sidebar: Verzeichnisbaum mit Ordnern und Verbindungen (auf-/zuklappbar, Doppelklick verbindet, Drag & Drop in Ordner)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 15:44:36 +02:00
MrBlakeandClaude Opus 5.5 4361d747f3 Drawer-Schatten ragte im geschlossenen Zustand ins Fenster
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 15:36:25 +02:00
MrBlakeandClaude Opus 5.5 8b708c338b RDP-Tab unter Windows: mstsc als owned window statt Kindfenster (war hinter DirectComposition unsichtbar); dynamische Auflösung als Standard, Skalieren pro Host wählbar
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 15:34:24 +02:00
MrBlakeandClaude Opus 5.5 d49e7d3654 Updater: meldet fehlendes Release statt 'aktuell', vergleicht zusätzlich mit Version im Repository
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 15:23:08 +02:00
MrBlakeandClaude Opus 5.5 aa31e753c2 RDP-Verbindungen als Tabs (mstsc/FreeRDP eingebettet); App-Kürzel im Terminal auf Strg+Shift, damit Strg+W/K/T bei nano & Co. ankommen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 15:20:04 +02:00
MrBlakeandClaude Opus 5.5 b1c6141264 SFTP: Laufwerksauswahl-Escaping korrigiert
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 15:04:32 +02:00
MrBlakeandClaude Opus 5.5 972fe0d316 RDM-Import, App-Designs, Auto-Update über Gitea, Logo; SFTP-Namensspalte repariert
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 15:04:19 +02:00
MrBlakeandClaude Opus 5.5 a5eccc7764 MrTerm: SSH/SFTP/RDP-Client im Termius-Stil (Electron)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 14:43:32 +02:00