mirror of
https://github.com/samsonjs/vibetunnel.git
synced 2026-07-01 05:59:37 +00:00
* Add Shift+Tab support for Claude Code planning mode (GitHub #100) Added proper Shift+Tab key sequence handling to enable Claude Code mode switching. Changes: - Added 'shift_tab' to SpecialKey type definition - Updated input-manager.ts to detect Shift+Tab combination (e.shiftKey) - Updated direct-keyboard-manager.ts for mobile Shift+Tab support - Added shift_tab mapping to PTY manager (sends \x1b[Z escape sequence) This allows users to press Shift+Tab in VibeTunnel to switch between Claude Code modes (autoaccept, planning, regular) as expected. Technical Details: - Shift+Tab sends the standard terminal escape sequence \x1b[Z (CSI Z) - Both desktop and mobile input handlers now support the key combination - Maintains backward compatibility with regular Tab functionality 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * Fix Shift+Tab not being sent as special key Added 'shift_tab' to the special keys list in input-manager.ts so it gets sent as {"key": "shift_tab"} instead of {"text": "shift_tab"}. This was the missing piece - the frontend was correctly detecting Shift+Tab but then sending it as text instead of a special key, so the server couldn't map it to the \x1b[Z escape sequence. Now Shift+Tab will properly send {"key": "shift_tab"} in the API request. * Fix failing CI test in session-list.test.ts Updated test expectation to check for 'compactMode' instead of non-existent 'showCreateModal' property. This was a stale test that was unrelated to the Shift+Tab changes but was blocking CI. All tests now pass. --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| .claude | ||
| docs | ||
| scripts | ||
| src | ||
| .gitignore | ||
| .npmrc | ||
| .prettierignore | ||
| .prettierrc.json | ||
| biome.json | ||
| build-custom-node.js | ||
| build-native-clean.sh | ||
| build-native.js | ||
| CLAUDE.md | ||
| coverage-results.json | ||
| coverage-summary-formatted.json | ||
| coverage.json | ||
| custom-node.md | ||
| FRONTEND_LOGGING_UPDATE_PROMPT.md | ||
| fwd-test.ts | ||
| LOGGING_STYLE_GUIDE.md | ||
| package.json | ||
| pnpm-lock.yaml | ||
| postcss.config.js | ||
| README.md | ||
| SECURITY.md | ||
| spec.md | ||
| tailwind.config.js | ||
| test-results.json | ||
| tsconfig.base.json | ||
| tsconfig.client.json | ||
| tsconfig.json | ||
| tsconfig.server.json | ||
| tsconfig.sw.json | ||
| tsconfig.test.json | ||
| vitest.config.ts | ||
VibeTunnel Web
Web terminal interface and server for VibeTunnel.
Quick Start
Production users: Use the pre-built VibeTunnel executable from the main app.
Development
pnpm install
pnpm run dev # Watch mode: server + client
pnpm run dev:client # Watch mode: client only (for debugging server)
Build Commands
pnpm run clean # Remove build artifacts
pnpm run build # Build everything (including native executable)
pnpm run lint # Check code style
pnpm run lint:fix # Fix code style
pnpm run typecheck # Type checking
pnpm run test # Run all tests (unit + e2e)
pnpm run format # Format code
Production Build
pnpm run build # Creates Node.js SEA executable
./native/vibetunnel # Run standalone executable (no Node.js required)
Architecture
See spec.md for detailed architecture documentation.
Key Features
- Terminal sessions via node-pty
- Real-time streaming (SSE + WebSocket)
- Binary-optimized buffer updates
- Multi-session support
- File browser integration