Commit graph

15 commits

Author SHA1 Message Date
Peter Steinberger
b22d8995dd
Add comprehensive server tests and switch to Biome linter (#73) 2025-06-24 18:51:38 +02:00
Peter Steinberger
baaaa5a033 fix: CI and linting issues across all platforms
- Fix code signing in Mac and iOS test workflows
- Fix all SwiftFormat and SwiftLint issues
- Fix ESLint issues in web code
- Remove force casts and unwrapping in Swift code
- Update build scripts to use correct file paths
2025-06-23 19:40:53 +02:00
Peter Steinberger
7531e6f12b lots of work on iOS 2025-06-23 14:58:11 +02:00
Peter Steinberger
a5b0354139 Burn everything with fire that is not node or swift. 2025-06-21 14:39:44 +02:00
Peter Steinberger
2a63599ce0 Various iOS improvements, remove halucinated bearer, make project sync based 2025-06-20 18:33:01 +02:00
Peter Steinberger
428cb37708 towards feature parity on iOS 2025-06-20 16:34:41 +02:00
Peter Steinberger
eee508c36d towards featire parity on iOS 2025-06-20 16:01:04 +02:00
Peter Steinberger
31d9e3e839 comment iOS + CI 2025-06-20 12:32:59 +02:00
Peter Steinberger
8bb22f291f format+lint 2025-06-20 11:40:18 +02:00
Peter Steinberger
610e3c0c43 lint+format 2025-06-20 11:33:03 +02:00
Peter Steinberger
d7dd436b2e bring iOS to feture parity with frontend 2025-06-20 07:06:00 +02:00
Peter Steinberger
5142cf1eb6 fix(ios): Fix iOS session creation and file browser issues
- Fix working directory validation to fall back to home directory when iOS sends invalid paths
- Fix file browser API client to handle correct response format (absolutePath + files)
- Improve session creation header design with translucent material and fixed height
- Add authentication support placeholder for future API protection
- Add better error logging for debugging API issues
- Move TerminalTextFieldStyle to SessionCreateView for better organization

The iOS app can now create sessions successfully and browse directories without errors.
2025-06-20 05:45:48 +02:00
Peter Steinberger
ed14aee481 fix(ios): Update Connect button to use dark background with accent border
- Change from bright accent fill to dark terminal background
- Add accent color border that gets thicker when active
- Use accent color for text instead of terminal foreground
- Better visual consistency with the dark terminal aesthetic
2025-06-20 05:45:48 +02:00
Peter Steinberger
8ddde1d6c2 feat(ios): Fix iOS build and integrate SwiftTerm for terminal emulation
Major improvements to the iOS VibeTunnel app:

SwiftTerm Integration:
- Properly integrated SwiftTerm 1.2.5 for terminal emulation
- Fixed naming conflicts and API compatibility issues
- Added proper actor isolation with @preconcurrency
- Terminal data now feeds correctly via SSE streams

Session Management:
- Fixed session model to match Go server's JSON response format
- Added CodingKeys mapping for field name differences (cmdline, cwd, etc.)
- Support for "starting" session status
- Enhanced date parsing for both ISO8601 and RFC3339 formats

Working Directory Fixes:
- Changed default working directory from iOS sandbox to server paths
- Now uses ~/ as default (matching web frontend)
- Added common server directories as quick options
- Server expands ~ to actual home directory

Terminal Streaming:
- Implemented Asciinema cast v2 format parsing
- SSE client properly handles output, resize, and exit events
- Added terminal snapshot loading for existing sessions
- Fixed special key handling with proper ANSI escape sequences

UI Improvements:
- Updated session list to grid layout (2 columns)
- Added session count and "Kill All" functionality
- Redesigned session cards with inline kill/clean buttons
- Shows command and working directory in session preview

Error Handling:
- Added comprehensive logging for debugging
- Enhanced error messages for better user experience
- Detailed API request/response logging
- Network error descriptions (connection refused, timeout, etc.)

Server Configuration:
- Set default server address to 127.0.0.1:4020
- Sessions now created with spawn_terminal: false for PTY mode
- Both web and iOS clients can share terminal sessions

The iOS app now provides a full terminal experience using SwiftTerm,
mirroring the web frontend's functionality with proper server integration.
2025-06-20 05:45:48 +02:00
Peter Steinberger
e69dbda538 feat: Add complete native iOS/iPadOS app for VibeTunnel
- Beautiful terminal-inspired UI design with custom theme
- Full SwiftUI implementation targeting iOS 18+
- SwiftTerm integration for terminal emulation
- Real-time session management with SSE streaming
- Complete feature parity with web frontend:
  - Server connection management
  - Session list with auto-refresh
  - Create, kill, and cleanup sessions
  - Full terminal emulation with input/output
  - Keyboard toolbar with special keys
  - Font size adjustment
  - Haptic feedback throughout
- Comprehensive error handling and loading states
- iPad optimizations (basic, split view pending)
- Complete documentation and setup instructions

The app provides a native, performant alternative to the web interface
with a stunning dark theme and smooth animations.
2025-06-20 05:45:48 +02:00