Commit graph

30 commits

Author SHA1 Message Date
Peter Steinberger
d21210163b formatting 2025-06-20 20:01:06 +02:00
Peter Steinberger
3d775afaaa Improve file browser to have back button 2025-06-20 19:06:40 +02:00
Peter Steinberger
f197e26fb0 Improve error handling 2025-06-20 19:04:09 +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
e5a7d22bf4 Add file preview 2025-06-20 18:32:40 +02:00
Peter Steinberger
bf3be6af47 clean up halucinations 2025-06-20 18:32:34 +02:00
Peter Steinberger
d702d1c390 update ios feature list 2025-06-20 17:45:15 +02:00
Peter Steinberger
d1ecdaac8e improve network monitor 2025-06-20 16:35:45 +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
bec49c86e1 feat(cli): Improve CLI installation to copy both vt and vibetunnel
- Update CLIInstaller to install both vt script and vibetunnel binary
- Remove duplicate replacement dialog for better UX
- Check versions of both files and use lowest version for updates
- Prioritize finding vibetunnel in same directory as vt script
- Bump vt version to 1.0.6
- Add comprehensive CLI versioning documentation
2025-06-20 15:22:37 +02:00
Peter Steinberger
a9fd66c291 refactor: major project restructuring - move macOS app to mac/ directory
- Move all macOS-specific code from root to mac/ directory
- Move app icons and assets to dedicated assets/ directory
- Update GitHub workflows for new structure
- Consolidate documentation files
- Clean up root directory for better multi-platform organization
2025-06-20 13:20:01 +02:00
Peter Steinberger
1ca7bbdfa5 cleanup 2025-06-20 12:54:51 +02:00
Peter Steinberger
31d9e3e839 comment iOS + CI 2025-06-20 12:32:59 +02:00
Peter Steinberger
95aa5f9637 add ios xcodeproj file 2025-06-20 11:55:19 +02:00
Peter Steinberger
adf0646960 fix iOS app 2025-06-20 11:55:19 +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
a56682f44c make file browser compat 2025-06-20 07:39:54 +02:00
Peter Steinberger
b3a7e3a110 fix deprecation 2025-06-20 07:38:48 +02:00
Peter Steinberger
fa4c1b3815 Declare that we open files in place 2025-06-20 07:38:28 +02:00
Peter Steinberger
856a581608 Modernize SwiftUI on iOS 2025-06-20 07:29:46 +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
bb23cbcc32 feat(ios): Make 'claude' the default command in session creation
- Add 'claude' as the first quick start command
- Set 'claude' as the default command instead of 'zsh'
- Add sparkle icon for Claude command
- Remove 'irb' to make room for Claude in the grid
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
22b946d76c feat(ios): Add file browser and modernize Xcode project structure
- Implement beautiful file browser matching web frontend design
  - Directory navigation with parent directory support
  - Create folder functionality
  - File/folder icons and visual distinction
  - Loading states and error handling
  - Smooth animations and haptic feedback

- Update Xcode project to use folder synchronization (objectVersion 77)
  - Automatic file inclusion from filesystem
  - No manual file management needed in Xcode
  - Matches vibetunnel3 project structure

- Add file system API integration
  - Browse directory endpoint
  - Create directory endpoint
  - FileEntry model for API responses

- Integrate file browser with session creation
  - Browse button in working directory field
  - Sheet presentation of file browser
  - Default to home directory (~)

- Improve session creation UI
  - Transparent navigation bar with blur effect
  - Better spacing and visual hierarchy
  - Enhanced error display styling
  - Convert directory buttons to horizontal scroll
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
d68d5e5dae feat: Add Xcode project and asset catalogs
- Add xcodegen project specification (project.yml)
- Configure for iOS 18.0+ deployment target
- Add SwiftTerm package dependency
- Create asset catalogs:
  - App icon placeholder
  - Accent color (terminal blue)
  - Terminal background color
- Configure proper Info.plist settings
- Set up build configurations and schemes

The project is now ready to open in Xcode.
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