Commit graph

42 commits

Author SHA1 Message Date
Peter Steinberger
cce2ea6343 Fix final Swift formatting issue 2025-06-17 01:47:56 +02:00
Peter Steinberger
e77fdfe909 Fix Swift formatting issues (trailing spaces) 2025-06-17 01:46:25 +02:00
Peter Steinberger
fc27f84756 Fix platform-specific CI issues
- Include CreditLink component directly in AboutView.swift
- Fix Swift 6 concurrency issue with NSRunningApplication
- Remove Windows build from Rust workflow (tty-fwd is Unix-only)
- tty-fwd uses Unix-specific PTY features not available on Windows
2025-06-17 01:45:07 +02:00
Peter Steinberger
454cfbe7a1 better align item 2025-06-17 01:41:55 +02:00
Peter Steinberger
411b79832d add docs 2025-06-17 01:41:49 +02:00
Peter Steinberger
5d6d630c61 Fix Swift trailing space lint error 2025-06-17 01:39:09 +02:00
Peter Steinberger
aadc65f2cc remove dupe 2025-06-17 01:38:42 +02:00
Peter Steinberger
fd9eb47b85 add docs 2025-06-17 01:38:38 +02:00
Peter Steinberger
e8f65b9121 Fix CI failures: platform-specific Rust code and Swift formatting 2025-06-17 01:36:12 +02:00
Peter Steinberger
722402d116 Set up comprehensive CI workflows for Swift, Rust, and Node.js
- Create separate workflow files for each language
- Swift: macOS-15 runner with SwiftLint/SwiftFormat, build, and test
- Rust: Multi-platform build with rustfmt/clippy and coverage
- Node.js: TypeScript linting, build, test, and security audit
- Update main CI workflow to use the new language-specific workflows
- Remove old lint.yml workflow (integrated into language workflows)
- Apply code formatting to ensure CI passes
2025-06-17 01:33:48 +02:00
Peter Steinberger
9f0792eefe linting 2025-06-17 01:31:02 +02:00
Peter Steinberger
3e3bca0fb2 Add terminal logic 2025-06-17 01:30:43 +02:00
Peter Steinberger
f4a4f6b16b align version 2025-06-17 01:30:23 +02:00
Peter Steinberger
cb081a08af fixes a whoopsie 2025-06-17 01:12:27 +02:00
Peter Steinberger
1a88583825 Improve password experience 2025-06-17 01:02:55 +02:00
Peter Steinberger
4a383a28c9 Wording tweaks in settings 2025-06-17 01:02:47 +02:00
Peter Steinberger
84e0c03707 Tweak about 2025-06-17 01:02:34 +02:00
Peter Steinberger
d7f6aa41be Use pointingHandCursor() extension instead of cursor modifier
Replace .cursor(.pointingHand) with .pointingHandCursor() for consistency
with the codebase's cursor handling approach.
2025-06-17 00:38:02 +02:00
Peter Steinberger
09d6b8c578 Split settings into many subviews 2025-06-17 00:32:14 +02:00
Peter Steinberger
fc31cac55f Show computer IP when network is enabled 2025-06-17 00:28:39 +02:00
Peter Steinberger
929808dbb2 Make sure menu has icons 2025-06-17 00:28:39 +02:00
Peter Steinberger
c26be3eefd Update to version 1.0.0 build 100 and fix all linting issues
- Set version to 1.0.0 and build number to 100
- Run SwiftFormat to format all Swift files
- Fix all SwiftLint warnings and errors:
  - Replace force unwrapping with safe optional handling
  - Fix redundant string enum values
  - Replace print statements with proper Logger
  - Fix identifier names (w→width, h→height, a→first, b→second)
  - Fix attributes formatting
  - Fix vertical whitespace issues
  - Fix multiple closures with trailing closure syntax
- Configure SwiftFormat and SwiftLint for Swift 6 compatibility:
  - Disable redundantSelf rule to preserve required self references
  - Set --self insert to maintain Swift 6 compliance
  - Add comments about Swift 6 requirements
- Ensure linting and formatting tools don't create conflicts
2025-06-16 23:45:44 +02:00
Peter Steinberger
38c5b2dc5f Add menu icons and improve UI polish
- Add separator before About VibeTunnel menu item
- Update README to use new banner image
- Add high-resolution app icons and banner assets
- Improve menu bar icon visibility
2025-06-16 21:49:21 +02:00
Peter Steinberger
0f5f264f0b Explain user field 2025-06-16 20:56:23 +02:00
Peter Steinberger
2086850759 Add password service for Dashboard 2025-06-16 20:56:23 +02:00
Peter Steinberger
2821c399a8 Update welcome screen text and fix Observable pattern usage
- Update dashboard access text for clarity
- Fix ServerManager to work with @Observable macro
- Update CLIInstaller to use @Observable instead of ObservableObject
- Update SettingsView to use @State with ServerManager
- Fix ServerConsoleView to work with async streams
- Update WindowSizeAnimator to use @Observable pattern
2025-06-16 19:52:24 +02:00
Peter Steinberger
2951b157c2 Add welcome tutorial screen
- Create 3-page onboarding experience for new users
- Page 1: Welcome message with app overview
- Page 2: VT command explanation with CLI installer
- Page 3: Dashboard access with tunneling options
- Add "Show Tutorial" option in Help menu
- Add button in Debug settings to reopen tutorial
- Welcome screen opens Settings on finish
- Support for marking tutorial as seen

The tutorial provides a smooth introduction to VibeTunnel's
key features and helps users get started quickly.
2025-06-16 19:48:36 +02:00
Peter Steinberger
f14ad81733 Add cleanup on startup setting and fix build issues
- Add "Clean up old sessions on startup" toggle in Advanced settings (defaults to ON)
- Trigger cleanup API automatically after server starts if enabled
- Fix settings window activation for menu bar apps by temporarily switching activation policy
- Enhanced window focusing with deminiaturize and floating level
- Auto-restore menu bar mode when settings window closes
- Change "Purge All" button to use borderedProminent style with red tint
- Fix build errors: MainActor isolation in SettingsOpener
- Fix Package.swift to exclude all non-source files (xcconfig, assets, etc.)
- Move debug mode toggle to last position in Advanced settings
2025-06-16 18:51:35 +02:00
Peter Steinberger
46408a387c Fix server startup coordination and health endpoint consistency
- Fix server health check to use /api/health endpoint consistently
- Improve ServerManager error handling to properly sync state
- Fix async/await warning in DebugSettingsView
- Ensure server state is properly reported even if initial check fails
2025-06-16 18:18:24 +02:00
Peter Steinberger
b5d043cba8 Fix build script and input handling
- Change npm build to npm bundle in Xcode build script
- Update session JSON parsing to handle dictionary format
- Make input text optional in InputRequest struct
- Add ctrl_enter and shift_enter to special keys list
2025-06-16 17:23:33 +02:00
Armin Ronacher
420ec3117c Added health endpoint 2025-06-16 17:17:40 +02:00
Peter Steinberger
f6893e1a61 Improve server mode description clarity 2025-06-16 16:38:16 +02:00
Peter Steinberger
34d868e5c6 Reorganize view files for better project structure
- Move SettingsView.swift to Presentation/Views/
- Move MenuBarView.swift to Presentation/Views/
- Remove redundant Sources folder
- Consolidate all views under Presentation/Views for consistency
2025-06-16 16:16:04 +02:00
Peter Steinberger
6199a256ca Add server mode architecture with Hummingbird and Rust options
- Implement ServerProtocol for abstracting server implementations
- Create ServerManager to orchestrate server switching
- Add HummingbirdServer wrapper around existing TunnelServer
- Implement RustServer to run tty-fwd with --serve option
- Add server mode selector in debug settings UI
- Create ServerConsoleView for real-time server log viewing
- Update ServerMonitor to work with ServerManager
- Add heartbeat monitoring for server health checks
- Support hot-swapping between server modes
- Stream server logs (stdout/stderr) to console view
2025-06-16 16:16:04 +02:00
Peter Steinberger
520cf9641d Add Help menu to menu bar with website and issue links
- Add Help submenu with links to website and GitHub issues
- Include Check for Updates functionality (using Sparkle stub)
- Display app version (0.1.3) in Help menu
- Move About option from main menu to Help submenu
- Update About description to "Turn any browser into your Mac's terminal."
2025-06-16 05:23:56 +02:00
Peter Steinberger
7bffb2ae7b Add tty-fwd universal binary build step to release process
- Integrate tty-fwd universal binary build into build.sh
- Automatically build and copy tty-fwd-universal to Resources folder
- Ensure binary is executable and included in app bundle
- Update release process to build universal binary for Intel and Apple Silicon
2025-06-16 03:19:17 +02:00
Peter Steinberger
fe6f6a1299 Fix remaining build errors
- Remove HTTPTypesFoundation import from TunnelClient2.swift
- Replace APIKeyManager usage with hardcoded demo key in TunnelServerDemo
- Add WSMessage and WSMessageType definitions to TunnelClient.swift
- Remove TunnelClient2.swift to avoid duplicate TunnelClientError definitions
2025-06-16 01:29:24 +02:00
Peter Steinberger
7ea32cfff0 Merge branch 'mac-v1' into main
- Integrated mac-v1 features including:
  - Sparkle updater integration with update channels
  - Menu bar app functionality
  - Settings window with General, Advanced, and About tabs
  - Authentication middleware for API security
  - Terminal and WebSocket handling
  - Launch at login functionality
  - Enhanced UI with custom view modifiers and About view

- Updated to use Hummingbird 2.x with ResponseCodable protocol
- Removed .DS_Store files
- Resolved all merge conflicts
2025-06-16 00:13:20 +02:00
Peter Steinberger
702b623d7f Fix settings window not appearing from menu bar
Replace deprecated showSettingsWindow: selector with NSApp.openSettings() to properly show the Settings window when clicking "Settings..." in the menu bar. This aligns with the correct SwiftUI pattern used in VibeMeter.
2025-06-15 23:54:17 +02:00
Peter Steinberger
b80c710c08 Add SwiftLint and SwiftFormat configuration for Swift 6
- Configure SwiftLint with Swift 6 compatible rules
- Disable conflicting self-related rules (implicit_self, redundant_self)
- Set up SwiftFormat to avoid self-rewrite conflicts
- Add custom rules for print statements and async/await patterns
- Create lint script and GitHub Actions workflow
- Add Package.swift for SPM dependencies
- Ensure proper exclusions for build directories and tests
2025-06-15 23:48:30 +02:00
Peter Steinberger
b5644d2b17
Add macOS app foundation with release infrastructure (#1) 2025-06-15 23:14:29 +02:00
Peter Steinberger
888f5693c4 Add macOS app foundation with release infrastructure
## Summary
- Initial SwiftUI macOS app structure with menubar and settings
- Complete release automation scripts adapted from VibeMeter
- Sparkle framework integration for automatic updates (stable/pre-release channels)
- Launch at login functionality
- Single instance detection
- About window with version info and links

## Features Added
- Settings window with General and Advanced tabs
- Update channel switching (stable/pre-release)
- Launch at login toggle
- Debug mode and server port configuration
- Interactive About window with app info
- Single app instance enforcement

## Infrastructure
- Complete release automation (build, sign, notarize, DMG, GitHub release)
- Version 0.1 (build 100)
- Bundle ID: com.amantus.vibetunnel
- Domain: vibetunnel.sh
- GitHub: https://github.com/amantus-ai/vibetunnel

## Next Steps
- Add Sparkle framework dependency
- Generate EdDSA keys for update signing
- Set up appcast hosting on vibetunnel.sh
2025-06-15 21:59:09 +02:00