93 Commits

Author SHA1 Message Date
Luke Gustafson 6c40d2f0cc v1.4.0 (#31)
* fix: register physical Tab key on iPadOS/iOS hardware keyboards (#14)

The native module only registered Shift+Tab but not bare Tab, so iOS
intercepted it for UI focus navigation. Register an unmodified Tab
UIKeyCommand with wantsPriorityOverSystemBehavior and handle both
Tab and Shift+Tab in the same JS branch.

Fixes Termix-SSH/Support#557

* fix: pass jumpHosts, forceKeyboardInteractive, and overrideCredentialUsername to terminal connection (#15)

These fields were defined on SSHHost but omitted from the terminal
hostConfig passthrough. Without jumpHosts the backend cannot route
through jump servers; without forceKeyboardInteractive hosts that
require keyboard-interactive auth fail silently; without
overrideCredentialUsername shared credentials use the wrong username.

Fixes Termix-SSH/Support#422
Fixes Termix-SSH/Support#638

* fix: improve mobile terminal scroll recovery (#17)

* Add mobile remote desktop sessions (#18)

* feat: add mobile remote desktop sessions

* feat: add remote desktop input controls

* feat: polish remote desktop controls

* feat: add mobile terminal font selection (#19)

* feat: add mobile shift tab hotkey (#20)

* feat: initial UI redesign

* feat: revamp server login system

* chore: update app icon/background color

* fix: remove unused fields in the settings tab

* feat: improve the user pin system and update all settings modals to use new ui

* fix: active server not updating unless app restarts

* feat: add version in settings

* feat: improve host page UI (updated host form and added credential management)

* fix: preserve composed iOS terminal input

* ci: restore mobile checks

* feat: rewrite of connection system for all types

* fix: preserve mobile jump hosts (#30)

* fix: guard android user ca trust (#29)

* fix: capture ios hardware tab key (#27)

* fix: reset terminal input after special keys (#28)

* fix: open oidc in system browser (#26)

* fix: preserve websocket auth context (#25)

* fix: keep none-auth terminal prompts alive (#23)

* fix: allow local network SSL in Android app (#21)

* feat: allow oidc passkeys

* feat: bundeled xterm into app and added docker loading screen

* feat: add 2fa, api key, and active sessions to settings and addressed multiple bug fixes and inconsistencies with termix web

* chore: update repo images and readme

* chore: update readme to split table for screenshots

* chore: rename ios to apple in build workflow

* fix: android build failure

* feat: add snippet management and fix several bugs

* fix: web login and oidc incorrect logic

* chore: run linter

---------

Co-authored-by: ZacharyZcR <zacharyzcr1984@gmail.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 16:49:50 -05:00
ZacharyZcR 031809ed47 fix: improve iOS terminal scroll speed with touch-driven scrollLines (#12)
iOS WebView does not generate wheel events from touch gestures, so
xterm's built-in scroll was limited to the native viewport scroll which
moves only one line at a time. Add a touchmove listener that maps
vertical swipe distance to terminal.scrollLines() for responsive
scrolling, and enable -webkit-overflow-scrolling: touch on the viewport.

Fixes Termix-SSH/Support#551
2026-05-28 23:11:17 -05:00
Luke Gustafson 385ae29a35 v1.3.2 (#10)
* feat: SSH session persistence across app background/foreground (#8)

* fix: ipad keyboard issue + paste key not wokring and disabled auto correct

* fix: ipad keyboard issues

* fix: ipad styling issues, emoji/voice dictation support, android keyboard issues

* fix: ipad styling issues

* feat: add debuging to fix ipad keyboard margins

* fix: handle physical keyboard special keys in terminal (#6)

* feat: add iPadOS build workflow without EAS dependency (#4)

* fix: handle physical keyboard special keys in terminal

Tab, Escape, and arrow keys from physical keyboards were filtered out
by the key.length === 1 check. Add explicit handling like Enter/Backspace.

* feat: add iOS native Shift+Tab support via UIKeyCommand

Add Expo native module that uses UIKeyCommand + method swizzling
to intercept Shift+Tab on iOS hardware keyboards and forward
the backtab escape sequence (\x1b[Z]) to the active terminal.

---------

Co-authored-by: swing <bestswngs@gmail.com>
Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com>

* feat: improve ipad ui logic and improve external keyboard handling

* feat: fix arrow keys and modifier keys on hardware keybords

* fix: fix arrow keys and modifier keys on hardware keybords

* feat: add voice over support and improved terminal background conneciton

* feat: add missing files

* feat: add host key verification support

* fix: dictation issues + android IME multi character input issues on android

* fix: none auth hosts

* chore: clean

* chore: update readme

* feat: add SSH session persistence for background/foreground transitions

Adapt the mobile client to the server-side session persistence protocol
(Termix PR #594). When the app goes to background and the WebSocket dies,
the server keeps the SSH session alive. On foreground return, the client
sends attachSession instead of connectToHost, reattaching to the existing
session with buffered output replay.

- Track server sessionId from sessionCreated messages
- Send attachSession on reconnect when a sessionId exists
- Handle sessionExpired with automatic fallback to fresh connectToHost
- Handle sessionTakenOver for multi-device scenarios
- Send explicit disconnect on destroy to clean up server sessions
- Skip terminal clear and post-connection setup on reattach

---------

Co-authored-by: LukeGus <bugattiguy527@gmail.com>
Co-authored-by: swing <bestswngs@gmail.com>
Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com>

* fix: clear terminal after reconnecting and fix letter duplcation

* chore: increment ver

* fix: use new 2.0.0 api routes and filter non ssh hosts

* chore: increment ver

---------

Co-authored-by: ZacharyZcR <PayasoNorahC@protonmail.com>
Co-authored-by: swing <bestswngs@gmail.com>
2026-03-14 20:16:27 -05:00
Luke Gustafson f37f4813f3 v1.3.1 (#9)
* feat: SSH session persistence across app background/foreground (#8)

* fix: ipad keyboard issue + paste key not wokring and disabled auto correct

* fix: ipad keyboard issues

* fix: ipad styling issues, emoji/voice dictation support, android keyboard issues

* fix: ipad styling issues

* feat: add debuging to fix ipad keyboard margins

* fix: handle physical keyboard special keys in terminal (#6)

* feat: add iPadOS build workflow without EAS dependency (#4)

* fix: handle physical keyboard special keys in terminal

Tab, Escape, and arrow keys from physical keyboards were filtered out
by the key.length === 1 check. Add explicit handling like Enter/Backspace.

* feat: add iOS native Shift+Tab support via UIKeyCommand

Add Expo native module that uses UIKeyCommand + method swizzling
to intercept Shift+Tab on iOS hardware keyboards and forward
the backtab escape sequence (\x1b[Z]) to the active terminal.

---------

Co-authored-by: swing <bestswngs@gmail.com>
Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com>

* feat: improve ipad ui logic and improve external keyboard handling

* feat: fix arrow keys and modifier keys on hardware keybords

* fix: fix arrow keys and modifier keys on hardware keybords

* feat: add voice over support and improved terminal background conneciton

* feat: add missing files

* feat: add host key verification support

* fix: dictation issues + android IME multi character input issues on android

* fix: none auth hosts

* chore: clean

* chore: update readme

* feat: add SSH session persistence for background/foreground transitions

Adapt the mobile client to the server-side session persistence protocol
(Termix PR #594). When the app goes to background and the WebSocket dies,
the server keeps the SSH session alive. On foreground return, the client
sends attachSession instead of connectToHost, reattaching to the existing
session with buffered output replay.

- Track server sessionId from sessionCreated messages
- Send attachSession on reconnect when a sessionId exists
- Handle sessionExpired with automatic fallback to fresh connectToHost
- Handle sessionTakenOver for multi-device scenarios
- Send explicit disconnect on destroy to clean up server sessions
- Skip terminal clear and post-connection setup on reattach

---------

Co-authored-by: LukeGus <bugattiguy527@gmail.com>
Co-authored-by: swing <bestswngs@gmail.com>
Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com>

* fix: clear terminal after reconnecting and fix letter duplcation

* chore: increment ver

---------

Co-authored-by: ZacharyZcR <PayasoNorahC@protonmail.com>
Co-authored-by: swing <bestswngs@gmail.com>
2026-03-09 15:52:19 -05:00
Luke Gustafson 2fef85c35c v1.3.0 (#7)
* fix: ipad keyboard issue + paste key not wokring and disabled auto correct

* fix: ipad keyboard issues

* fix: ipad styling issues, emoji/voice dictation support, android keyboard issues

* fix: ipad styling issues

* feat: add debuging to fix ipad keyboard margins

* fix: handle physical keyboard special keys in terminal (#6)

* feat: add iPadOS build workflow without EAS dependency (#4)

* fix: handle physical keyboard special keys in terminal

Tab, Escape, and arrow keys from physical keyboards were filtered out
by the key.length === 1 check. Add explicit handling like Enter/Backspace.

* feat: add iOS native Shift+Tab support via UIKeyCommand

Add Expo native module that uses UIKeyCommand + method swizzling
to intercept Shift+Tab on iOS hardware keyboards and forward
the backtab escape sequence (\x1b[Z]) to the active terminal.

---------

Co-authored-by: swing <bestswngs@gmail.com>
Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com>

* feat: improve ipad ui logic and improve external keyboard handling

* feat: fix arrow keys and modifier keys on hardware keybords

* fix: fix arrow keys and modifier keys on hardware keybords

* feat: add voice over support and improved terminal background conneciton

* feat: add missing files

* feat: add host key verification support

* fix: dictation issues + android IME multi character input issues on android

* fix: none auth hosts

* chore: clean

* chore: update readme

---------

Co-authored-by: ZacharyZcR <zacharyzcr1984@gmail.com>
Co-authored-by: swing <bestswngs@gmail.com>
2026-02-19 00:48:49 -06:00
Luke Gustafson 0b6d9e8ea4 v1.2.0 (#3)
* feat: Add landscape laayout, file manager, and server stats (squash)

* fix: Improve UI issues

* feat: Greatly improve UI consistency, improve UI for all components (local squash)

* feat: Improved file manager editor/styling

* fix: Run npm linter and improve styling/UI bugs

* feat: Fix tab bar height issues, and bein fixing terminal kb dismissal

* fix: Fix the snippets bar visibility and general issues with landscape styling

* chore: Format and clean up files

* Update app.json

* fix: Updated types

* feat: Clean up files, add new termainl customization/tunnel system/new server stats (local squash commit)

* feat: Add terminal customization, totp/auth dialog support, and overall UI improvements (local squash commit)

* feat: Add auto mosh support

* fix: HTTP issues on iOS

* fix: increment ver

* chore: Update readme

* fix: iOS not loading HTTP hosts

* feat: allow scrolling, backgrounddsiconnect fixes, http fixes, etc.

* fix: Remove all bg conneciton bloat

* fix: improve reocnnection logic

* feat: improve copying and run cleanup

* fix: http on ios

* fix: http on ios

* fix: build error with axios fetch

* feat: improe scrolling and htpp on ios

* fix: ios http

* fix: ui issues + cleanup for release cantidate
2025-12-17 01:25:57 -06:00
LukeGus 4767eaa1c2 fix: Wrong Android userAgent 2025-11-03 19:12:46 -06:00
LukeGus 74880ebb3e fix: iOS http failure security fixes 2025-11-03 15:20:19 -06:00
LukeGus fe325017ff fix: Run linter 2025-11-02 23:56:11 -06:00
LukeGus 908e1ff9e0 fix: Auto login and iOS security issues 2025-11-02 23:14:13 -06:00
LukeGus bb4d3fd991 fix: Incorrect user agent and logout method 2025-11-01 00:47:13 -05:00
LukeGus 040304a45f fix: Rename app workflow and remove customize in settings 2025-10-30 19:29:28 -05:00
LukeGus 163cfe7094 fix: Various android keyboard problems 2025-10-30 17:50:51 -05:00
LukeGus 0488901398 fix: Keyboard disapears 2025-10-30 17:11:01 -05:00
LukeGus e81f42fb1e fix: Random letter 2025-10-30 16:57:46 -05:00
LukeGus 10d97d4461 fix: Incorrect Android keyboard height 2025-10-30 16:56:13 -05:00
LukeGus 61333f44b4 fix: Android keyboard issues 2025-10-26 22:37:22 -05:00
LukeGus e8c9a9ca21 fix: Android keyboard issues + run linter 2025-10-26 21:42:17 -05:00
LukeGus e60ad9d85c feat: Close keyboard and fix OIDC 2025-10-26 18:25:52 -05:00
LukeGus d69afb0d10 fix: clear terminal sessions after logging out 2025-10-26 02:32:19 -05:00
LukeGus 539a4f669c feat: add custom font size 2025-10-26 02:23:40 -05:00
LukeGus 5a4fb20b96 fix: Allowing users to move section to section. Possible release cantidate. 2025-10-25 19:35:13 -05:00
LukeGus 622bcfc79d fix: Inability to scroll in keyboard customization 2025-10-25 19:19:24 -05:00
LukeGus 97b9a2daae fix: Code cleanup 2025-10-25 16:43:01 -05:00
LukeGus 3db9af3fe0 fix: Let keys in this row be draggable 2025-10-25 16:02:52 -05:00
LukeGus 6339f9fcef fix: Inability to drag keyboard customization options 2025-10-25 15:55:50 -05:00
LukeGus a8654f03bc fix: Inability to drag keyboard customization options 2025-10-25 03:09:41 -05:00
LukeGus c20d14ad0a fix: Keyboard customization UI issues and UI inconsistencies. 2025-10-25 03:04:36 -05:00
LukeGus 7ec71bf88e feat: Add terminal customization 2025-10-25 02:25:58 -05:00
LukeGus dd7d88a874 General connectivity/security improvements, terminal zoom, and customizable terminal 2025-10-24 00:32:55 -05:00
LukeGus 93b379833c Fix HTTP iOS issues. 2025-10-17 00:12:48 -05:00
LukeGus b629d4b1ce Fix HTTP and storage issues. 2025-10-16 22:03:07 -05:00
LukeGus a8d08086cf Fix login/security issues 2025-10-16 17:58:43 -05:00
Karmaa 66bde2c092 Update GitHub API URL for latest releases 2025-10-12 01:14:54 -05:00
LukeGus 43789969af Update version 2025-10-11 00:44:00 -05:00
LukeGus b7a6d7f0e9 Cleanup files and run linter. Ready for test release for 1.1.0. 2025-10-11 00:43:43 -05:00
LukeGus b8908ef836 Hide install mobile app 2025-10-11 00:30:11 -05:00
LukeGus dce363504b Fix issues with logging in for some serers 2025-10-11 00:27:46 -05:00
LukeGus f0f68a61ea Fix issues with logging in for some serers 2025-10-11 00:11:09 -05:00
LukeGus bb440a68c8 Run lint cleaner 2025-10-09 17:43:04 -05:00
LukeGus 5bc2e87022 Improved serform form UI 2025-10-09 17:10:23 -05:00
LukeGus 0662aba598 Fix auto login 2025-10-09 17:03:18 -05:00
LukeGus 61b9ac0742 Use webview for login 2025-10-09 16:57:18 -05:00
LukeGus d8d455844c Fix tab issues, fix apple complaining, and possibly Tailscale issues. 2025-10-05 21:19:53 -05:00
LukeGus 3a2a907516 Fix TOTP failures and HTTPS failures 2025-10-01 21:00:55 -05:00
LukeGus 2a4bdb591c Fix old API for folder stats 2025-10-01 14:38:32 -05:00
LukeGus e8f2c69e52 Fix keyboard hiding 2025-09-30 19:19:36 -05:00
LukeGus 58b050d3a1 Support session locking 2025-09-30 17:29:26 -05:00
LukeGus b027a3e85e Code cleanup 2025-09-30 17:14:27 -05:00
LukeGus 91c7f5755c Fix SSL issues 2025-09-30 17:11:22 -05:00