Commit graph

113 commits

Author SHA1 Message Date
Peter Steinberger
2c276fc67c Ensure server restarts on password change. 2025-06-19 18:15:44 +02:00
Peter Steinberger
1464b1f19a Fix server startup 2025-06-19 14:42:42 +02:00
Peter Steinberger
e281ce7d72 lint 2025-06-19 14:32:14 +02:00
Peter Steinberger
720c81c704 Add resize feature to Hummingbird 2025-06-19 14:32:14 +02:00
Peter Steinberger
7707e6db3d Add port conflict resolver logic. 2025-06-19 14:32:14 +02:00
Peter Steinberger
87a9053833 whatever 2025-06-19 14:32:14 +02:00
Peter Steinberger
098cdf642d Up error logging 2025-06-19 14:32:14 +02:00
Peter Steinberger
10598a1305 Fix race condition in session creation
The server now waits for tty-fwd to fully register the session before
returning the response. This prevents the frontend from querying for a
session that doesn't exist yet in the session list.

Also removed the problematic frontend fallback that would select the
"most recent" session when the exact ID wasn't found, which was causing
it to open the previous session.
2025-06-19 02:47:50 +02:00
Peter Steinberger
37f1c124ff be more careful with applescript 2025-06-19 02:11:30 +02:00
Peter Steinberger
83a4bf0f75
fix: apply formatters to pass CI checks (#19) 2025-06-19 01:39:27 +02:00
Peter Steinberger
ce4b67a258 update hummingbird 2025-06-18 20:44:54 +02:00
Peter Steinberger
a2d38edbe9 test compat 2025-06-18 20:11:51 +02:00
Peter Steinberger
4b4aa3eda9 Fix zero session bug 2025-06-18 19:29:03 +02:00
Peter Steinberger
0f8299c7a0 Automatically restart server 2025-06-18 19:29:03 +02:00
Peter Steinberger
6a8f472832 feat: adopt Blacksmith CI runners and comprehensive updates
- Migrate GitHub Actions to Blacksmith runners for faster CI
  - Update ubuntu-latest to blacksmith-4vcpu-ubuntu-2404
  - Update actions/setup-node@v4 to useblacksmith/setup-node@v5
  - Update Swatinem/rust-cache@v2 to useblacksmith/rust-cache@v3

- Fix all linting warnings across all platforms
  - TypeScript: Fix any type warnings with proper type annotations
  - Rust: All clippy warnings resolved
  - Swift: Fix SwiftLint violations and format code

- Update all dependencies to latest versions
  - npm: Major updates including Express 5 compatibility fixes
  - Rust: Update 7 crates to latest compatible versions
  - Swift: Dependencies already up-to-date

- Add comprehensive test suite using Vitest
  - API endpoint tests for session CRUD operations
  - WebSocket connection and streaming tests
  - Session management lifecycle tests
  - Frontend component tests (terminal, session-list)
  - Critical functionality tests covering core features
  - Test infrastructure with proper mocking and utilities

- All tests passing, ready for production use
2025-06-18 19:10:03 +02:00
Peter Steinberger
fbfc4c57dd Remove periodic permission status logging
- Removed info logs for Accessibility permission status checks
- Removed info logs for AppleScript permission status checks
- These were being logged repeatedly and cluttering the console
2025-06-18 16:56:01 +02:00
Peter Steinberger
5804790ae1 recover lost commits 2025-06-18 16:49:39 +02:00
Peter Steinberger
daf455ec9a show welcome dialog on update + lint 2025-06-18 12:57:53 +02:00
Peter Steinberger
e7480c3f59 Spawn new Terminal 2025-06-18 04:52:11 +02:00
Peter Steinberger
b4f8600ffd Also request accessibility 2025-06-17 22:09:02 +02:00
Peter Steinberger
6a0fe1a8af Improve Applescript logic 2025-06-17 22:09:02 +02:00
Peter Steinberger
5ea5394e59 refactor apple script executor into separate file 2025-06-17 14:06:05 +02:00
Peter Steinberger
babcc068fc He's the AppleScript Permission Manager. 2025-06-17 14:00:50 +02:00
Peter Steinberger
9642c7ed85 Add app-calling logic 2025-06-17 13:52:58 +02:00
Peter Steinberger
9fb45d09c1 Fix annoying keychain dialog on app start 2025-06-17 12:33:25 +02:00
Peter Steinberger
cbe5f87aed Fix trailing spaces 2025-06-17 03:49:53 +02:00
Peter Steinberger
f52c410fe9 Replace async NotificationCenter with traditional observer pattern
Swift 6 has issues with NotificationCenter's AsyncSequence returning
non-Sendable types. Use traditional selector-based observer to avoid
concurrency issues.
2025-06-17 03:48:19 +02:00
Peter Steinberger
8856916ccc Fix NotificationCenter async sequence usage
Remove incorrect .values accessor - NotificationCenter.Notifications
is already an AsyncSequence
2025-06-17 03:43:20 +02:00
Peter Steinberger
6b0f7764bf Fix Swift 6 concurrency issues
- Use .values on NotificationCenter notifications AsyncSequence
- Replace openApplication with open to avoid non-Sendable return type
- Properly handle async operations within MainActor context
2025-06-17 03:38:11 +02:00
Peter Steinberger
33371bffb8 Fix Swift formatting issues
- Remove trailing spaces
- Fix line wrapping
- Correct indentation
- Fix else statement positioning

Automated formatting with swiftformat to pass CI linting
2025-06-17 03:27:14 +02:00
Peter Steinberger
648286a63c Fix build issues for release
- Fix duplicate tty-fwd file error by removing copy from build.sh
- Add VibeTunnel/Resources/tty-fwd to .gitignore
- Fix SparkleUpdaterManager compilation error
2025-06-17 02:30:31 +02:00
Peter Steinberger
97da1f6a90 Fix Sparkle API compatibility for v2.7.0 2025-06-17 02:24:35 +02:00
Peter Steinberger
7b02733207 Use modern Swift 2025-06-17 02:17:52 +02:00
Peter Steinberger
63545714c1 Move blog post link to more prominent position in README
- Relocated "The Story" section with blog post link to appear right after "Why VibeTunnel?"
- Makes the full story more discoverable for readers interested in the project's background
- Also includes Swift concurrency improvements for LazyBasicAuthMiddleware
2025-06-17 02:00:04 +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
4e1b59105d docs 2025-06-17 01:41:59 +02:00
Peter Steinberger
411b79832d add docs 2025-06-17 01:41:49 +02:00
Peter Steinberger
ff5696d515 fixes menu not updating on server state change 2025-06-17 01:38:20 +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
5d47d66b65 Improve server 2025-06-17 01:30:04 +02:00
Peter Steinberger
6226c69c27 upgrade swift server 2025-06-17 01:12:40 +02:00
Peter Steinberger
2779cd834c Add missing router 2025-06-17 01:02:26 +02:00
Peter Steinberger
88d0504af8 Fix all build warnings
- Remove unused fileMonitor capture in TunnelServer.swift
- Fix deprecated String(cString:) usage in NetworkUtility.swift by using String(cString: &hostname)
- All warnings resolved, build completes cleanly
2025-06-17 00:41:56 +02:00
Mario Zechner
edf8f9ee26 Fix terminal cursor visibility and improve paste functionality
- Remove CSS that was hiding XTerm helper textarea, allowing cursor to display properly
- Configure XTerm with visible green cursor (block style, blinking)
- Add paste event handling directly to session-view component
- Improve font scaling with Unicode support in ScaleFitAddon
- Temporarily disable file monitor cancel to prevent crashes

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-17 00:20:48 +02:00
Peter Steinberger
7172840fa5 better docs 2025-06-16 23:57:17 +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
0f84d1f08a fix bundle id 2025-06-16 20:56:23 +02:00
Peter Steinberger
57e2d457be Escape pw for shell 2025-06-16 20:56:23 +02:00