feat(vscode): add VS Code extension for remote delta uploads#22
feat(vscode): add VS Code extension for remote delta uploads#22m1rl0k merged 1 commit intoContext-Engine-AI:testfrom
Conversation
mikahoy045
commented
Nov 19, 2025
- Add context-engine-uploader extension with auto-sync and watch mode capabilities
- Include standalone upload client bundled within extension for portability
- Add nginx reverse proxy configuration for RMCP services and upload endpoints
- Provide extension documentation covering build, packaging, and configuration
- Support auto-detection of workspace folder as default target path
- Add status bar integration with indexing spinner an
- Add context-engine-uploader extension with auto-sync and watch mode capabilities - Include standalone upload client bundled within extension for portability - Add nginx reverse proxy configuration for RMCP services and upload endpoints - Provide extension documentation covering build, packaging, and configuration - Support auto-detection of workspace folder as default target path - Add status bar integration with indexing spinner an
|
I will review and provide some feedback where appropriate when I have time @mikahoy045 - I have only quickly glance at the large vscode folder diff - this extension, assumes you're always running a project, with the Context Engine repo in workdir? Or is it self contained? (Since, the standalone remote upload client is 100% self contained, so that script can run anywhere to upload to the upload service (which would plop files into the watcher service's watch location for processing.... |
|
we can say yes, it is self contained, so you can install it basically on any pc (I tested with windsurf). You dont need to clone the Context Engine repository, it would run as the command you explained to me. The only drawback is, you need to have python installed in the pc where you installed the vscode extension, just the python because the dependency already 100% self contained. You can choose to auto init + watcher at start up, or manual. it would read the folder path automatically (tested on mac). |
|
@mikahoy045 immediate things that standout:
Proper Architecture: // Instead of bundling everything, just: // Call the actual upstream script: CI/CD can build/bundle the required scripts, instead of duplicating upstream. Plan of actions: Current Behavior:
Recommended Refactoring Plan Option 1: External Dependency Model (Cleanest) Extension Logic: Option 2: CI/CD Bundle Model (Robust) Recommended Architecture Cleanup (Immediate)
Phase 2: Dependency Resolution Phase 3: CI/CD Pipeline TL;DR vscode-extension/ CI/CD Pipeline (.github/workflows/build.yml): Keep source repo focused, uncluttered, instruct user to Do you agree with the ideas to make this cleaner/maintainable? And if so, can you do it? Or should I help? |
|
See if you can I am at capacity the next few weeks, but your changes are merged! Thanks for this awesome feature!! |
|
Hi @voarsh2 , Sorry I was just check on this. That's a great cleaner approach, but I have some question for this snippets. // Instead of bundling everything, just:
const { spawn } = require('child_process');
const path = require('path');
// Call the actual upstream script:
spawn('python3', [path.join(upstreamRepo, 'scripts/standalone_upload_client.py'), ...args]);Wouldn’t that code cause the file to be excluded when I build the extension? Please correct me if I’m wrong, but as far as I know, the VS Code extension build process only packages the files inside the extension folder. So on another PC, one that hasn’t cloned this repository, the extension would fail because it won’t be able to find It’s the same idea as bundling Python libraries. You don’t want users to install Python or run any pip install commands (sorry, in previous post I said that a person must install python; which it's not necessary). I even have a friend who’s a full-stack JavaScript developer and refuses to deal with anything related to Python. So the plugin should be completely self-contained and work for a broader range of users without requiring them to install anything. |
Hi @mikahoy045, You're absolutely correct about the VSCode packaging constraints - I should have clarified the CI/CD approach more clearly. The code snippet I showed would indeed fail in a distributed extension since external files aren't accessible. To clarify the architecture: the standalone script remains in the upstream repository, and the CI/CD build process fetches and bundles it during package creation. The VSCode extension source folder remains clean. Here's the corrected approach: Build Process (.github/workflows/build.yml): Extension Logic: Key Benefits:
The only change needed in your current approach is removing the bundled Python libraries, since users requiring Python can install basic HTTP dependencies via pip if needed. This maintains the self-contained nature while fixing the architectural bloat. Does this refined approach address your concerns about distribution and packaging? |
|
Yes, I agree that this should be built by CI/CD (GitHub Actions). Your idea is: during the build pipeline, we copy the required Python files into the extension directory and produce the final packaged extension there. That way we always ship the latest dependencies. Thanks for pointing this out, @voarsh2 Key Benefits:
I can implement this. Regarding this part :
My concern is: wouldn’t this require users to have Python installed on their OS? For many general users, this isn’t acceptable. Some hardcore JS developers don’t want Python at all, and users with Miniconda often don’t want anything altering their My vision for the extension is that users should be able to download it from the VS Code Marketplace and use it immediately, without needing to install or configure Python manually. If the goals only to make the maintained code clean, I can do some work around by publishing the - name: Bundle upstream scripts
run: |
# Copy from same repository, no external fetch needed
cp scripts/standalone_upload_client.py vscode-extension/context-engine-uploader/
cd vscode-extension/context-engine-uploader
# copy python libs before build
git clone https://github.com/myrepo/vscex-python-lib.git
# Build
vsce packageWhat do you think about this approach? |
|
I'm doing a cleanup now and will submit a PR. 90% done - just tweaking some issues where I found it wasn't working on Windows (I normally use Linux) |
|
See #24 for the proposed cleanup - I opted to keep build to .sh/.bat/Dockerfile without CI/CD at this time - allows build and publish - can do GitHub workflows or other CI/CD (I use Bamboo personally) in another follow up. |
feat(vscode): add VS Code extension for remote delta uploads
