Commit graph

76 commits

Author SHA1 Message Date
Peter Steinberger
68e6456aef
docs: Add Linux setup instructions and authentication documentation (#344)
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-15 02:47:25 +02:00
Peter Steinberger
93ba0064bd feat: add compression, security headers, and caching optimizations
Implement several performance and security improvements for Express 5:

Performance:
- Add compression middleware with Brotli support for all responses
- Enable WebSocket compression (perMessageDeflate) for terminal data
- Exclude compression for SSE streams (/api/sessions/:id/stream) to prevent asciicast issues
- Add intelligent caching headers for static assets:
  - Immutable assets (JS, CSS, fonts, images): 1 year cache
  - HTML files: 1 hour cache
  - Enable ETags and Last-Modified headers

Security:
- Add Helmet middleware for security headers
- Disable CSP and COEP to maintain compatibility with terminal features

Additional improvements:
- Remove obsolete @ts-expect-error directives (Express 5 properly types res.flush)
- Balanced compression level (6) for optimal performance

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-12 19:42:54 +02:00
Peter Steinberger
c2d9039e45 chore: update all dependencies to latest versions (except Tailwind)
Update all project dependencies to their latest versions while keeping
Tailwind CSS at v3.4.17 to avoid breaking changes.

Notable updates:
- Express: 4.19.2 → 5.1.0 (major version upgrade)
- Chalk: 4.1.2 → 5.4.1 (major version upgrade to ESM)
- CodeMirror packages: Updated to latest v6 versions
- TypeScript types: Updated to latest versions
- Development tools: Biome, Playwright, Puppeteer, etc.

All code quality checks pass successfully after the updates.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-12 19:30:47 +02:00
Peter Steinberger
e3d0d9655b
Add professional light mode with theme toggle (#314) 2025-07-12 01:42:42 +02:00
Peter Steinberger
0c617aed8d
Fix mobile terminal resize loop (#305) 2025-07-11 08:23:47 +02:00
Peter Steinberger
83fa3a22b8
Replace Microsoft node-pty with vendored fork to fix crashes (#304) 2025-07-11 07:19:32 +02:00
Peter Steinberger
76e16e94c6
refactor: extract preventAndStopEvent helper + support alt+nav on mobile (#290) 2025-07-09 21:07:20 +02:00
Peter Steinberger
43c98cac4b bump to b9 2025-07-09 09:18:08 +02:00
Peter Steinberger
6b93fdbf41
Fix Homebrew library dependencies in release builds (#269) 2025-07-08 09:55:52 +01:00
Helmut Januschka
f3b2022d48
Integrate screencap functionality for remote screen sharing (#209)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2025-07-06 03:31:34 +01:00
Igor Tarasenko
9fad6301a0
feat: Add Bonjour/mDNS service discovery for iOS app (#226)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2025-07-05 11:34:36 +01:00
Peter Steinberger
0c67a89622 feat: expand Playwright test coverage with comprehensive test suite
- Add 50+ new Playwright tests covering key features
- Implement test helpers for session management and data cleanup
- Add page objects for better test maintainability
- Improve test stability with better selectors and wait strategies
- Fix flaky tests with proper timing and synchronization
- Add comprehensive coverage for:
  - Session creation and management
  - Terminal interactions
  - File browser operations
  - Keyboard shortcuts
  - Authentication flows
  - Activity monitoring
  - Search functionality
  - UI responsiveness
- Update test infrastructure for better CI/CD integration
- Fix linting issues and improve code quality

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-04 05:08:34 +01:00
Peter Steinberger
ba372b09de
feat(tauri): Implement full feature parity with Mac app (#213) 2025-07-04 04:52:00 +01:00
Peter Steinberger
45d8f97a30
Improve release scripts and add git app integration (#208) 2025-07-03 12:40:09 +01:00
Peter Steinberger
74a364d1ba
Fix modal backdrop pointer-events issues (#195)
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-03 01:03:15 +01:00
Peter Steinberger
122253f947 feat: Add vt title command for dynamic session naming
- Add 'vt title' command that updates session names from within terminal sessions
- Implement file watcher in PtyManager to detect session.json changes
- Integrate title updates with all 4 title modes (none, filter, static, dynamic)
- Updates terminal titles in real-time when session name changes
- Works by directly editing session.json using the VIBETUNNEL_SESSION_ID env var

This allows users to easily set descriptive names for their terminal sessions,
making it easier to manage multiple VibeTunnel windows.
2025-07-01 13:41:09 +01:00
Jeff Hurray
66998b0672 use pnpm in chained commands 2025-07-01 12:19:13 +01:00
Jeff Hurray
f16536a823 Add precommit command for web app 2025-07-01 12:19:13 +01:00
Jeff Hurray
28913cd490
Fix port argument passthrough for web dev (#163) 2025-07-01 06:50:20 +01:00
Helmut Januschka
8d85c26a84
feat: Add image upload functionality with camera/gallery picker (#140)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2025-07-01 06:47:08 +01:00
devin-ai-integration[bot]
1d9112b9d3
Add SwiftLint and SwiftFormat Husky pre-commit hooks for iOS and mac (#165)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2025-07-01 06:24:59 +01:00
Peter Steinberger
cd4e783f32
Add husky pre-commit hooks for code quality enforcement (#157) 2025-07-01 03:49:00 +01:00
Helmut Januschka
f2f5f5f67d
feat: add sleep prevention option to keep Mac awake during sessions (#146)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2025-06-30 11:13:21 +01:00
Peter Steinberger
f1c0554644
Add Playwright E2E test framework (#120) 2025-06-30 02:51:21 +01:00
Peter Steinberger
627599fb02 Fix race condition risks in code quality tools
- Keep parallel execution for read-only checks (format:check, lint, typecheck)
- Make check:fix run sequentially to prevent file write conflicts
- Add documentation explaining why sequential execution is needed
- Based on best practices: lint-staged and JavaScript community recommendations
2025-06-28 15:22:05 +02:00
Peter Steinberger
18e4648904 Add comprehensive tests and improve code quality workflow
- Add tests for formatPathForDisplay covering all platforms
- Create parallel code quality check script (pnpm run check)
- Add auto-fix command for format and lint issues (pnpm run check:fix)
- Document the improved workflow in DEVELOPMENT.md
- Update CLAUDE.md with the new commands
2025-06-28 15:22:05 +02:00
Mario Zechner
4788afb7ed Clean-up of web/, updated spec.md 2025-06-27 21:13:55 +02:00
Peter Steinberger
4a63305cbf add postinstall step to patch native libs 2025-06-27 00:18:20 +02:00
Helmut Januschka
f839822a01 build before dev for native modules 2025-06-26 23:31:53 +02:00
Peter Steinberger
c70330bcfd
Migrate to Microsoft node-pty v1.1.0-beta34 (#87) 2025-06-26 23:10:05 +02:00
Helmut Januschka
5a4b939564
Fix URL link detection for wrapped URLs on mobile terminals (#85)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2025-06-26 22:37:49 +02:00
Peter Steinberger
1105b54137 ocx compiler for prettier for 3x speed 2025-06-25 12:22:13 +02:00
Peter Steinberger
b22d8995dd
Add comprehensive server tests and switch to Biome linter (#73) 2025-06-24 18:51:38 +02:00
Mario Zechner
e6e3173244 NPM distribution prep work and minor fixes in session-view/fwd logging. 2025-06-24 13:36:42 +02:00
Mario Zechner
498eb4f3fc Unfuck tsconfigs + VS Code + eslint + tsc, fix type errors 2025-06-24 01:51:46 +02:00
Helmut Januschka
e9b395b726
Implement comprehensive user authentication with SSH key management (#43)
* Implement comprehensive user authentication system

- Add SSH-first authentication with password fallback
- Implement JWT token-based session management (24h expiry)
- Create browser-based SSH agent with key storage and signing
- Add challenge-response SSH authentication protocol
- Integrate PAM for system password authentication
- Build comprehensive authentication UI components
- Add SSH key manager for key generation and management
- Update middleware to support JWT tokens alongside existing auth
- Maintain backwards compatibility with existing HQ/remote auth
2025-06-24 00:31:13 +02:00
Mario Zechner
7669d33d65 Fix tsconfig.json to include Node types, fix typecheck script to include server code checks (again ...) 2025-06-24 00:06:40 +02:00
Peter Steinberger
61b97ee234 fix ts dom issues 2025-06-23 15:18:45 +02:00
Armin Ronacher
0ac9f81b90 Added push notifications for bells 2025-06-23 13:51:49 +02:00
Mario Zechner
eb4f358fa2 Merge main into monaco branch 2025-06-23 05:59:04 +02:00
Mario Zechner
762ebc0196 feat: Replace CodeMirror with Monaco Editor
- Add Monaco Editor (v0.52.2) as dependency
- Create MonacoEditor Lit component with normal and diff modes
- Support inline/side-by-side diff switching with responsive behavior
- Replace CodeMirror in file browser with Monaco
- Add /api/fs/diff-content endpoint for fetching original/modified content
- Update build system to use esbuild with Monaco plugin
- Add proper Monaco asset handling and bundling
- Style Monaco with VibeTunnel dark theme

Note: There are rendering artifacts that need to be addressed

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-23 03:14:45 +02:00
Peter Steinberger
685562112b lint 2025-06-23 03:01:10 +02:00
Mario Zechner
92b7819fc7 FIX SHIT 2025-06-23 01:33:32 +02:00
Peter Steinberger
44fb40bfc3 Move uuid from devDependencies to dependencies
The uuid package is used in runtime code (server.ts, hq-client.ts,
pty-manager.ts) so it needs to be in dependencies, not devDependencies.
This fixes the esbuild bundling errors during the build process.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-23 01:06:34 +02:00
Peter Steinberger
fe5f4eaa23 Fix build script to handle missing hash file gracefully
- Change error to warning when hash file is not found
- Force full rebuild instead of failing when hash is missing
- This fixes build failures when the hash calculation phase hasn't run

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-23 01:03:51 +02:00
Armin Ronacher
a8f96f8129 Replace monaco with codemirror for previews (works now) 2025-06-23 00:52:50 +02:00
Peter Steinberger
4876b472b5 fix: Use verbose test reporter in CI for better debugging
Added test:ci script with verbose reporter to help diagnose test
failures in CI environment. Also set CI environment variable.
2025-06-22 07:38:29 +02:00
Peter Steinberger
163e1b6f03 fix: Add CI-specific build script to skip native executable build
The Node.js CI build was failing because it tried to build the native
executable which requires postject and other tools that may not be
available in all CI environments. Created a separate build:ci script
that skips the native build step for CI.
2025-06-22 07:34:59 +02:00
Peter Steinberger
bef58a61d9 add postject 2025-06-22 01:13:23 +02:00
Mario Zechner
5180298bb5 Clean up build system and remove unused dependencies
- Remove all Jest-related dependencies (using Vitest)
- Remove pre-commit hooks (husky, lint-staged) and related files
- Consolidate test configuration into single vitest.config.ts
- Fix build-native.js to use correct entry point (src/cli.ts)
- Add bun.lock to .gitignore (generated during native build)
- Update README.md with simplified, accurate documentation
- Make npm run build include native executable build
- Remove unused type declarations and test setup files

The build system is now minimal, clean, and consistent.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-21 17:04:52 +02:00