Refactor/proxy extension seperation#5
Conversation
- Configure Lefthook for automated Git hooks following 2025 practices - Add parallel execution of formatting, linting, and testing - Include WASM-specific linting for Zed extension development - Replace manual scripts with declarative YAML configuration
BREAKING CHANGE: Bridge functionality moved to separate repository. Extension now downloads proxy binary from zed-mcp-proxy releases. - Remove crates/bridge directory and all bridge-related code - Update workspace configuration to remove bridge member - Bridge functionality is now provided by standalone zed-mcp-proxy binary - Extension will automatically download appropriate proxy binary for platform - Separates concerns: extension focuses on Zed integration, proxy on MCP protocol The zed-mcp-proxy repository contains the extracted bridge code with: - Complete commit history preserved through git-filter-repo - Modern CI/CD pipeline with cross-platform builds - Comprehensive release automation for binary distribution - Professional documentation and contribution guidelines Users should experience no functional changes as the extension will automatically manage proxy binary downloads and updates.
- Update repository reference from keshav1998/deepwiki-mcp-server to keshav1998/zed-mcp-proxy - Change binary names from deepwiki-mcp-bridge to zed-mcp-proxy - Update asset naming patterns to match new proxy repository releases - Add comprehensive BUILD.md with modern Rust practices documentation - Update README.md to reflect separated architecture - Update all tests to use new binary naming conventions - Remove references to build scripts in favor of standard cargo commands The extension now automatically downloads the proxy binary from the separated zed-mcp-proxy repository, providing better separation of concerns between the Zed extension (WASM) and MCP protocol handling (native).
…efthook - Update Lefthook configuration for extension-only repository - Remove workspace-specific commands (no longer needed after bridge separation) - Add WASM-specific linting and compilation checks - Include extension manifest validation and documentation consistency checks - Add comprehensive pre-push validation with release build verification - Support staging and production environments with different validation levels - Optimize for Zed extension development workflow with parallel execution The configuration now focuses exclusively on WASM development while maintaining high code quality standards through automated formatting, linting, testing, and extension-specific validations.
- Move configuration files to .config/ - Move documentation files to docs/ - Update file references in documentation
- Update path references in README.md to reflect new directory structure - Fix file paths in GitHub workflow files - Ensure CI/CD pipelines work with new file locations
- Fix path references in LEFTHOOK.md - Update paths in CONTRIBUTING.md - Ensure consistent documentation across files
- Add bin/ directory to .gitignore - Remove obsolete entries - Clean up irrelevant patterns
- Add rustdoc comments for all public functions and types - Include detailed API documentation for the extension - Document proxy integration methods - Add example usage in documentation comments
- Add dependabot configuration - Add CHANGELOG.md for tracking version changes - Add RELEASE.md for release process documentation
There was a problem hiding this comment.
Pull Request Overview
This pull request implements a major architectural refactoring that separates the DeepWiki MCP Server extension into two distinct components: a lightweight WASM-based Zed extension and a native proxy binary. The changes introduce comprehensive configuration management, quality assurance workflows, and documentation while removing the embedded bridge binary in favor of automatic proxy downloads from a separate repository.
- Architectural separation from monolithic to extension + auto-downloaded proxy design
- Complete documentation overhaul with comprehensive guides and API documentation
- Modern development workflow with automated quality checks and release management
Reviewed Changes
Copilot reviewed 20 out of 22 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/tests.rs | Updated test references from deepwiki-mcp-bridge to zed-mcp-proxy and added integration tests |
| src/lib.rs | Enhanced with comprehensive documentation and updated binary management for proxy architecture |
| docs/* | Added extensive documentation including build instructions, handoff guides, and architecture details |
| .config/* | Added modern development configuration for git hooks, dependency management, and releases |
| .github/workflows/* | Updated CI workflows for extension-only releases and comprehensive quality checks |
| README.md | Updated to reflect separated architecture and simplified build process |
| crates/bridge/* | Removed embedded bridge binary as it's now maintained in separate repository |
| #[test] | ||
| fn test_proxy_binary_integration() { | ||
| // Test integration with the minimal proxy binary | ||
| let proxy_path = "temp-bridge-extraction/target/debug/zed-mcp-proxy"; |
There was a problem hiding this comment.
The hardcoded path 'temp-bridge-extraction/target/debug/zed-mcp-proxy' creates a tight coupling to a specific directory structure. Consider using a configurable path or environment variable to make the test more flexible across different development environments.
| let proxy_path = "temp-bridge-extraction/target/debug/zed-mcp-proxy"; | |
| let proxy_path = std::env::var("PROXY_BINARY_PATH") | |
| .unwrap_or_else(|_| "temp-bridge-extraction/target/debug/zed-mcp-proxy".to_string()); |
| #[test] | ||
| fn test_mcp_protocol_readiness() { | ||
| // Test that the proxy binary structure supports MCP protocol | ||
| let proxy_path = "temp-bridge-extraction/target/debug/zed-mcp-proxy"; |
There was a problem hiding this comment.
Duplicate hardcoded path. This should use the same approach as the previous test to avoid maintenance issues when the directory structure changes.
| let proxy_path = "temp-bridge-extraction/target/debug/zed-mcp-proxy"; | |
| let proxy_path = PROXY_BINARY_PATH; |
| - GitHub Issues: https://github.com/keshav1998/zed-mcp-proxy/issues | ||
| - Email: me@kmsh.dev | ||
|
|
||
| For extension-related questions: | ||
| - GitHub Issues: https://github.com/keshav1998/deepwiki-mcp-server/issues |
There was a problem hiding this comment.
[nitpick] The GitHub repository URL appears to be hardcoded and may become outdated if the repository is moved or renamed. Consider using a more generic reference or ensuring this documentation is kept synchronized with any repository changes.
| - GitHub Issues: https://github.com/keshav1998/zed-mcp-proxy/issues | |
| - Email: me@kmsh.dev | |
| For extension-related questions: | |
| - GitHub Issues: https://github.com/keshav1998/deepwiki-mcp-server/issues | |
| - GitHub Issues: [zed-mcp-proxy Issues][zed-mcp-proxy-issues] | |
| - Email: me@kmsh.dev | |
| For extension-related questions: | |
| - GitHub Issues: [deepwiki-mcp-server Issues][deepwiki-mcp-server-issues] |
| // Get the latest release | ||
| let release = latest_github_release( | ||
| "keshav1998/deepwiki-mcp-server", | ||
| "keshav1998/zed-mcp-proxy", |
There was a problem hiding this comment.
The GitHub repository identifier is hardcoded. Consider making this configurable through a constant or configuration to make it easier to update if the repository location changes.
| "keshav1998/zed-mcp-proxy", | |
| GITHUB_REPOSITORY, |
This pull request introduces several configuration updates to enhance the development, quality assurance, and release processes for the
deepwiki-mcp-serverWASM-based Zed extension. The changes include adding dependency management, pre-commit hooks, release configuration, and CI workflows for quality checks. Below is a summary of the most important changes grouped by theme:Dependency and License Management
cargo-denyconfiguration file (.config/deny.toml) to enforce dependency policies, including license restrictions, advisory checks, and crate bans. Notable bans includeopensslandchronoin favor of more secure or modern alternatives..github/dependabot.yml) to automate dependency updates for Cargo and GitHub Actions, with custom grouping for the Serde ecosystem and Zed extension API.Development Workflow Enhancements
lefthookconfiguration (.config/lefthook.yml) for pre-commit and pre-push hooks, automating tasks such as formatting, linting, testing, and WASM-specific checks.Release Process Improvements
release.tomlfile (.config/release.toml) to manage semantic versioning, changelog updates, and pre-release quality checks, including formatting, linting, and building the WASM extension.CI Workflow for Quality Assurance
.github/workflows/quality.yml) to automate quality checks, including security audits, dependency policy enforcement, unused dependency detection, code quality checks, testing, build verification, and documentation validation.