RVBuildHelper VS Code Extension
An automated development environment orchestrator and high-fidelity script runner for two workspace profiles: RVRite Standalone and RVRite Integrated. Driven by an elegant, responsive React-based webview dashboard utilizing VS Code Native Aesthetics, Tailwind CSS, and optimized terminal virtualizations.
🚀 Key Features
- Dual Mode Orchestration:
- Flow A (RVRite Standalone): Auto-compiles workspace assets via
./init.sh -cbm and provisions custom Nginx reverse proxy layouts pointing to http://rvrite.local.
- Flow B (RVRite Integrated): Auto-checks local MongoDB databases, lists running Docker microservices, starts PM2 ES Review Hub instances, and compiles with the correct sequential build options.
- 60FPS Log Buffer Streaming: Implements a custom debouncing algorithm (16ms batches) on backend subprocess streams (
child_process.spawn) to prevent webview thread flooding, keeping your CPU cool.
- 100k+ Line Virtual Log Terminal: Integrates
react-window inside the dashboard console, enabling effortless 60fps scrolling even with massive script compile logs.
- WSL Paths Translation Engine: Detects Windows runtimes and translates NTFS drives (e.g.
C:\Users\...) to POSIX WSL mount-paths (e.g. /mnt/c/Users/...) seamlessly.
- Secure Sudo Portals: Safely spawns password-sensitive operations (like booting MongoDB via systemctl) inside native VS Code terminals, bypassing process stdin security blocks.
- ANSI Terminal Color Decoder: Parses standard shell color directives in real time using
ansi-to-html.
- Keyboard Accelerators: Esc cancels active processes instantly;
Ctrl+R restarts failed or completed steps.
🛠️ Requirements & Installation
- System OS: Linux, macOS, or Windows (requires Windows Subsystem for Linux - WSL2).
- Dependencies:
- Docker Desktop (or equivalent command CLI).
- MongoDB (local service name:
mongod).
- PM2 daemon (
npm install -g pm2).
- Nginx installed and configured for reverse-proxy overrides.
Manual Installation
- Compile the
.vsix archive:
npm run build
npm run package
- Install the package in VS Code:
- Open VS Code and press
Ctrl+Shift+P
- Select Extensions: Install from VSIX...
- Select the generated
rvbuildhelper-0.0.1.vsix file.
⚙️ Path Configuration Walkthrough
When launching the dashboard for the first time, you will be prompted to enter the absolute paths to your development directories:
| Configuration Field |
Target Validation Marker |
Purpose |
| RVRite Source Directory |
Must contain ./init.sh |
Core standalone code workspace |
| Nginx Server Setup Directory |
Must contain ./make_nginx_server.sh |
Reverse proxy mapping scripts |
| Review Work Directory |
Must contain ./build_script.sh |
Flow B integration scripts |
| ES Review Hub Directory |
Must contain server.js |
Express PM2 server codebase |
| Dockerfile Path (Optional) |
Absolute path to Dockerfile |
Parsed to discover target container images |
| Docker Identifiers (Optional) |
Comma-separated labels (e.g. redis, postgres) |
Docker status matcher overrides |
📋 Workspace Flows
Flow A: Build RVRite Standalone
graph TD
Start[Click Standalone Mode] --> PathCheck{Paths Configured?}
PathCheck -- Yes --> Init[1. Spawn ./init.sh -cbm]
PathCheck -- No --> Config[Open Settings Panel]
Init -- Exit 0 --> Nginx[2. Spawn ./make_nginx_server.sh with input '1']
Nginx -- Exit 0 --> Success[Show URL: http://rvrite.local]
Flow B: Build RVRite Integrated
graph TD
Start[Click Integrated Mode] --> CheckMongo{MongoDB Active?}
CheckMongo -- No --> Warning[Show Warn: Boot Mongo Service]
CheckMongo -- Yes --> CheckDocker{Required Docker Containers Running?}
CheckDocker -- No --> FlowB2[Flow B.2: Build Script Option 1 -> PM2 Hub]
CheckDocker -- Yes --> FlowB1[Flow B.1: PM2 Hub -> Build Script Option 2]
FlowB2 --> Success[Show URL: http://review.local]
FlowB1 --> Success
🛠️ Diagnostics & Troubleshooting
- Docker Connection Fails: Verify that Docker is running (
docker info). If using Windows, make sure Docker Desktop integration with your default WSL2 distribution is enabled in settings.
- MongoDB Starting Prompt: Clicking "Start MongoDB" will spawn a VS Code terminal executing
sudo service mongod start (or WSL equivalent). Enter your user password directly inside the secure VS Code editor terminal.
- WSL Path Errors: The extension translates drive mappings automatically. If paths fail to resolve, double-check that you can access the path using
cd inside your WSL shell directly.
🧪 Development & Architecture
Built with strict TypeScript compile standards:
- Backend extension host bundle: Compiled via
esbuild.
- Webview dashboard bundle: Built via
Vite + React + Tailwind CSS.
- Testing: Virtual process lifecycle mocking validated via
Vitest.
- Linting: Custom rules checking explicit type checking parameters.
📄 License
MIT. Developed for advanced RVRite workspace integration workflows.