- Add vitest integration test for vt command functionality
- Add shell script test for build-time validation
- Include vt tests in main check script to run in CI
- Tests cover: syntax validation, help functionality, error handling, npm package config
- Add pnpm run test:vt script for easy testing
- Exclude vt symlink from package.json bin section to avoid conflicts with other vt installations
Co-authored-by: hewigovens <360470+hewigovens@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
- Modified postinstall script to extract authenticate-pam prebuilds when npm skips optional deps
- Updated authenticate-pam-loader to load from optional-modules directory
- Prepared beta.12 release with all fixes consolidated
- Moved Docker test script to scripts folder
- Updated documentation in npm.md
This commit addresses the Ubuntu installation issues reported in issue 380:
**PAM Module Fix:** - Fix .npmignore to include authenticate-pam module in npm package - Previously node_modules/ exclusion prevented
authenticate-pam from being packaged - Resolves \"PAM Authentication Warning: The native authenticate-pam module isn't found\"
**npm_config_prefix Conflict Detection:** - Add detection for npm_config_prefix conflicts with NVM in postinstall script - Warn users when
npm_config_prefix overrides NVM's per-version configuration - Provide clear instructions to resolve the conflict - Document
troubleshooting steps in docs/npm.md
- Handle Windows paths with forward slashes (C:/Users/username)
- Support case-insensitive Windows drive letters (c:\ vs C:\)
- Fix multiple home directory pattern replacement using single regex
- Add comprehensive tests for all edge cases
- Update JSDoc comments with proper formatting
- 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
- 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
- Add POST /api/sessions/:sessionId/reset-size endpoint to reset terminal size when clients disconnect
- Implement reset-size control pipe command in PTY manager
- Update session-view component to call reset-size on unmount
- Add terminal resize event listener in fwd.ts to track terminal size changes
- Fix source maps configuration for development mode:
- Set inline source maps with embedded sources in esbuild config
- Add source map settings to TypeScript configs
- Set NODE_ENV to development for dev builds
This ensures external terminals resize back to their actual size when the last web client disconnects.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Rename terminal test bundle to generic test bundle (test.js)
- Create organized test structure in src/client/test/
- Move test HTML files to src/client/assets/test/
- Fix terminal-test component API usage and styling
- Fix Monaco editor worker loading issues by disabling workers
- Use AMD loader approach for Monaco initialization
- Apply Tailwind classes instead of inline CSS
The test infrastructure now supports isolated component testing with
individual HTML pages for each component. Monaco editor works with
syntax highlighting using the default vs-dark theme.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 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>
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.
- 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>
- Rename index.ts to cli.ts as single entry point
- Merge app.ts and shutdown-state.ts into server.ts
- Update all imports and references to use new structure
- Update e2e tests and dev script to spawn via cli.ts
- Remove execution code from server.ts (only cli.ts executes)
- Clean up tsconfig.client.json exclude path
This creates a cleaner separation where cli.ts is the only entry
point that decides whether to run server or forward mode.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Replace shell commands that fail on Windows with Node.js scripts:
- mkdir -p / cp -r → scripts/copy-assets.js
- rm -rf → scripts/clean.js
- Add scripts/ensure-dirs.js for directory creation
This resolves "A subdirectory or file -p already exists" errors
when running npm scripts on Windows with Git Bash.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>