Skip to content

Refactor/proxy extension seperation#5

Open
kmshdev wants to merge 12 commits into
mainfrom
refactor/proxy-extension-seperation
Open

Refactor/proxy extension seperation#5
kmshdev wants to merge 12 commits into
mainfrom
refactor/proxy-extension-seperation

Conversation

@kmshdev

@kmshdev kmshdev commented Jul 24, 2025

Copy link
Copy Markdown
Owner

This pull request introduces several configuration updates to enhance the development, quality assurance, and release processes for the deepwiki-mcp-server WASM-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

  • Added a cargo-deny configuration file (.config/deny.toml) to enforce dependency policies, including license restrictions, advisory checks, and crate bans. Notable bans include openssl and chrono in favor of more secure or modern alternatives.
  • Configured Dependabot (.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

  • Introduced a lefthook configuration (.config/lefthook.yml) for pre-commit and pre-push hooks, automating tasks such as formatting, linting, testing, and WASM-specific checks.

Release Process Improvements

  • Added a release.toml file (.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

  • Added a GitHub Actions workflow (.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.

kmshdev added 11 commits July 23, 2025 23:38
- 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
Copilot AI review requested due to automatic review settings July 24, 2025 04:29

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Comment thread src/tests.rs
#[test]
fn test_proxy_binary_integration() {
// Test integration with the minimal proxy binary
let proxy_path = "temp-bridge-extraction/target/debug/zed-mcp-proxy";

Copilot AI Jul 24, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
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());

Copilot uses AI. Check for mistakes.
Comment thread src/tests.rs
#[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";

Copilot AI Jul 24, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicate hardcoded path. This should use the same approach as the previous test to avoid maintenance issues when the directory structure changes.

Suggested change
let proxy_path = "temp-bridge-extraction/target/debug/zed-mcp-proxy";
let proxy_path = PROXY_BINARY_PATH;

Copilot uses AI. Check for mistakes.
Comment thread docs/handoff-prompt.md
Comment on lines +309 to +313
- 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

Copilot AI Jul 24, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[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.

Suggested change
- 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]

Copilot uses AI. Check for mistakes.
Comment thread src/lib.rs
// Get the latest release
let release = latest_github_release(
"keshav1998/deepwiki-mcp-server",
"keshav1998/zed-mcp-proxy",

Copilot AI Jul 24, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
"keshav1998/zed-mcp-proxy",
GITHUB_REPOSITORY,

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants