Skip to content

Feat/grpc#8

Open
markovejnovic wants to merge 5 commits intostagedfrom
feat/grpc
Open

Feat/grpc#8
markovejnovic wants to merge 5 commits intostagedfrom
feat/grpc

Conversation

@markovejnovic
Copy link
Collaborator

No description provided.

@mesa-dot-dev
Copy link

mesa-dot-dev bot commented Feb 17, 2026

Mesa Description

This PR introduces a new gRPC client to interact with the Mesa VCS data plane, enabling efficient, change-based file operations. It also refactors the existing REST client configuration for better consistency.

Key Changes

  • gRPC Client Implementation:

    • Introduced a new ChangeClient that uses gRPC for fine-grained file manipulations (create, modify, delete, move) within a "change" context.
    • Added vcs.proto to define the gRPC services (ControlService, DataService, BlobTransferService).
    • Integrated tonic and prost dependencies for the gRPC stack and updated the build script to compile the new protobuf definitions.
  • Client Configuration Refactoring:

    • Centralized configuration access in the main MesaClient.
    • Updated all existing clients (Commits, Branches, Diffs, etc.) to access configuration via self.repo.org.client.config instead of their own copies, simplifying state management.
  • Updated Client Initialization:

    • Modified MesaClientBuilder to support configuring a gRPC endpoint alongside the existing REST configuration.

Testing

  • Added a new suite of high-level integration tests to validate the ChangeClient functionality, covering creating changes and performing file operations.
  • Updated the test harness to initialize the MesaClient with a gRPC channel for these new tests.

Description generated by Mesa. Update settings

Copy link

@mesa-dot-dev mesa-dot-dev bot left a comment

Choose a reason for hiding this comment

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

Performed full review of 0141cd1...7b17121

Analysis

  1. Build script requires proto sources at compile time, but these sources are not versioned, which will break downstream builds.
  2. gRPC runtime dependencies are added unconditionally without feature gates, forcing all consumers to inherit a heavy async stack before any gRPC API surface exists.
  3. The PR leaves the application-layer implementation incomplete - needs either committed proto definitions with generated bindings or feature-gated build steps.
  4. Current implementation will prevent the existing REST client from building until the gRPC components are fully implemented.

Tip

Help

Slash Commands:

  • /review - Request a full code review
  • /review latest - Review only changes since the last review
  • /describe - Generate PR description. This will update the PR body or issue comment depending on your configuration
  • /help - Get help with Mesa commands and configuration options

0 files reviewed | 1 comments | Edit Agent SettingsRead Docs

markovejnovic and others added 5 commits February 25, 2026 14:36
Wire in the tonic-generated proto types via `tonic::include_proto!`
in a new `grpc` module. Add `prost-types` and `tonic-prost` as
runtime dependencies required by the generated code.
@markovejnovic markovejnovic changed the base branch from main to staged February 25, 2026 22:40
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