Commit graph

374 commits

Author SHA1 Message Date
Peter Steinberger
30e8b86f27 Fix permission UI layout jumping and center footer text
- Added fixed height and padding to "Granted" labels to match button sizes
- Prevents layout jumping when transitioning between button and granted state
- Small buttons use height 22px, large buttons use height 38px
- Centered the footer text in DashboardSettingsView permissions section
- Consistent visual appearance across all permission UI elements
2025-06-17 23:03:21 +02:00
Mario Zechner
322658d9a9 Add smooth macOS-style momentum scrolling for mobile touch
Implemented natural momentum scrolling that feels like native macOS:
- Fixed velocity calculation to use recent movement instead of total
- Added macOS-like deceleration curve with variable friction
- Smooth start with gentle initial deceleration, then gradual slowdown
- Fractional scroll accumulation prevents small movements from being lost
- Removed debug logging for clean production code

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-17 22:57:40 +02:00
Mario Zechner
e464872b15 Fix mobile touch scrolling with pointer events and capture
Replaced touch events with pointer events using setPointerCapture() to solve
the issue where touch scrolling would break when DOM is rebuilt during scroll.
- Use pointer events with setPointerCapture() for touch devices only
- Keep wheel events for desktop trackpad/mouse scrolling
- Add touch-action: none CSS to prevent browser scroll interference
- Include 5px movement threshold to avoid interfering with text selection
- Remove momentum scrolling temporarily for simplicity

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-17 22:49:44 +02:00
Peter Steinberger
90849a11e2 Fix CLI installation animation issues in welcome dialog
- Added withAnimation wrapper to all state changes in CLIInstaller
- Added small delay before checking installation status to allow view to settle
- Updated permission text to say "AppleScript automation"
- All state transitions now animate smoothly with 0.3s easeInOut
- Fixed the "CLI tool is installed" text popping in without animation
2025-06-17 22:44:03 +02:00
Peter Steinberger
042163d3ab Simplify permissions UI in welcome screen
- Removed white bordered containers
- Simplified explanation text to be more concise
- Removed redundant labels and icons
- Made layout more compact
- Cleaner, more minimal design
2025-06-17 22:17:33 +02:00
Mario Zechner
0e4d202d71 Fix smooth scrolling on Mac trackpads with delta accumulation
- Add scroll accumulator to handle small deltaY values from slow trackpad movements
- Accumulate scroll deltas until they reach at least one line height
- Preserve fractional remainder for next scroll event
- Fixes issue where slow two-finger scrolling would not register movement

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-17 22:13:28 +02:00
Peter Steinberger
344dee2827 Fix welcome window overlaying everything
- Changed window level from .floating to .normal
- Changed NSApp.activate to not ignore other apps
- Welcome window now behaves like a normal window
2025-06-17 22:12:31 +02:00
Mario Zechner
5ca8acb676 Improve DOM terminal renderer and add rich test content
- Fix DOM terminal rendering with proper innerHTML generation
- Add comprehensive test content including logs, tables, git history, docker status
- Implement proper ANSI color code handling for wide character compatibility
- Add auto-scroll to bottom functionality
- Replace individual line element management with bulk innerHTML updates
- Fix \r\n line ending handling for proper terminal behavior

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-17 22:10:48 +02:00
Mario Zechner
b4d63fc922 New terminal renderer WIP 2025-06-17 22:10:48 +02:00
Peter Steinberger
9e0b4b8b3c Fix AppleScript issues and add accessibility permissions UI
- Fixed quote escaping for AppleScript commands (single quotes now properly escaped)
- Added separate escaping for keystroke commands vs regular AppleScript
- Created AccessibilityPermissionManager to handle accessibility permission requests
- Updated WelcomeView to show both Automation and Accessibility permissions
- Updated DashboardSettingsView permissions section with both permission types
- Added proper system dialog triggering using AXIsProcessTrustedWithOptions
- Added NSAppleEventsUsageDescription to Info.plist
- Improved error handling with specific messages for accessibility permission errors
- Clear UI differentiation between which terminals need which permissions
2025-06-17 22:09:22 +02:00
Peter Steinberger
b4f8600ffd Also request accessibility 2025-06-17 22:09:02 +02:00
Peter Steinberger
ee1a48848c Finally fix settings foreground issue 2025-06-17 22:09:02 +02:00
Peter Steinberger
cf4bf494a0 no longer needed 2025-06-17 22:09:02 +02:00
Peter Steinberger
6a0fe1a8af Improve Applescript logic 2025-06-17 22:09:02 +02:00
Peter Steinberger
0e4cacc69d Add note about local signing 2025-06-17 22:09:02 +02:00
Armin Ronacher
9e67150d71 Merge branch 'feature/event-refactor' 2025-06-17 21:18:24 +02:00
Armin Ronacher
4fa8229b6f Add multiplex streaming 2025-06-17 21:18:15 +02:00
Armin Ronacher
f52001d831 Refactored into SSE helper 2025-06-17 20:31:34 +02:00
Armin Ronacher
e8b22949c8 Clean up parser 2025-06-17 20:16:28 +02:00
Armin Ronacher
78a5d1a77e Refactor thread spawning 2025-06-17 19:47:04 +02:00
Armin Ronacher
1b41fac4cf Cleanup reading of existing content 2025-06-17 18:43:22 +02:00
Armin Ronacher
19b545d8ba Simplify startup handling for the stream 2025-06-17 18:41:50 +02:00
Armin Ronacher
58932a535b Initial work for streaming refactor 2025-06-17 18:30:25 +02:00
Peter Steinberger
52eebd2031 Use shared.xcconfig 2025-06-17 18:13:38 +02:00
Mario Zechner
113786a35b Add responsive mobile terminal component with viewport scaling
- Created ResponsiveTerminal Lit component with mobile touch scrolling
- Implements XTerm.js with custom scaling algorithm for different viewport sizes
- Added setViewportSize() method for testing content reflow without regeneration
- Fixed mobile viewport issues using 100dvh for proper height calculation
- Added debounced ResizeObserver to prevent resize loops
- Component uses Tailwind classes and aggressive XTerm CSS constraints
- Test page allows switching viewport dimensions to observe content reflow
- Touch handlers scoped only to terminal content, not affecting external UI

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-17 16:09:09 +02:00
Peter Steinberger
dc642f9e40 Try Applescript to raise settings 2025-06-17 14:06:17 +02:00
Peter Steinberger
5ea5394e59 refactor apple script executor into separate file 2025-06-17 14:06:05 +02:00
Peter Steinberger
c31d8c7250 Use AppleScript API directly and improve error handling for AppleScript. 2025-06-17 14:01:07 +02:00
Peter Steinberger
babcc068fc He's the AppleScript Permission Manager. 2025-06-17 14:00:50 +02:00
Peter Steinberger
244903b701 Add a new step into Welcome Dialog for AppleScript. 2025-06-17 14:00:44 +02:00
Peter Steinberger
2f4950524b Add permission handling. 2025-06-17 14:00:37 +02:00
Peter Steinberger
887186e0cc Better AppleScript explanation. 2025-06-17 14:00:09 +02:00
Peter Steinberger
c8684739b3 Replace distributed notifications with CLI invocation for terminal spawning
- Add CLI command handling to VibeTunnelApp.swift for spawn-terminal command
- Remove all distributed notification code from TerminalLauncher
- Update Rust tty-fwd to invoke VibeTunnel CLI instead of sending notifications
- Add --vibetunnel-path parameter to tty-fwd server
- Update RustServer to pass VibeTunnel executable path to tty-fwd
- Fix terminal launcher improvements from user updates
- Add timeout handling for CLI spawn operations

This approach bypasses macOS 15 distributed notification restrictions and provides more reliable terminal spawning.
2025-06-17 13:52:58 +02:00
Peter Steinberger
9642c7ed85 Add app-calling logic 2025-06-17 13:52:58 +02:00
Peter Steinberger
d557055978 Simpler test 2025-06-17 13:52:58 +02:00
Peter Steinberger
cc06a6fcf4 delete garbage file 2025-06-17 13:52:58 +02:00
Peter Steinberger
513e0dc3a0 Size tweaks 2025-06-17 13:52:58 +02:00
Peter Steinberger
9d35443f7f Ignore rust codecov stuff 2025-06-17 13:52:58 +02:00
Peter Steinberger
fd5e8b1357 Support direct command execution 2025-06-17 13:52:58 +02:00
Peter Steinberger
f10b90224a Settings focus ballistic mode 2 2025-06-17 13:52:58 +02:00
Peter Steinberger
974eb06b56 Add shared Xcode scheme with OS_ACTIVITY_MODE
- Force add shared scheme to track OS_ACTIVITY_MODE=disable setting
- Update .gitignore to allow shared schemes while ignoring user schemes
- This suppresses network framework log spam for all developers
2025-06-17 13:52:58 +02:00
Armin Ronacher
9e564fef00 Fixed unicode slicing 2025-06-17 13:28:58 +02:00
Armin Ronacher
11cc34d003 Refactor output writing 2025-06-17 13:02:17 +02:00
Armin Ronacher
9cbe77f12c Fix vt 2025-06-17 12:57:02 +02:00
Peter Steinberger
36735223af adjust distributed message 2025-06-17 12:49:43 +02:00
Peter Steinberger
5c9f9720dc Settings battle stations vs macOS idiocracy 2025-06-17 12:49:36 +02:00
Peter Steinberger
12151c2c43 Create new window for terminal session open 2025-06-17 12:45:27 +02:00
Peter Steinberger
33ae876edb Improve term logic 2025-06-17 12:33:56 +02:00
Peter Steinberger
9fb45d09c1 Fix annoying keychain dialog on app start 2025-06-17 12:33:25 +02:00
Peter Steinberger
325351865c add wezterm and tests 2025-06-17 12:20:50 +02:00