Skip to content

Remove gRPC implementation#237

Merged
dkhalife merged 1 commit intomainfrom
remove_grpc
Mar 8, 2026
Merged

Remove gRPC implementation#237
dkhalife merged 1 commit intomainfrom
remove_grpc

Conversation

@dkhalife
Copy link
Owner

@dkhalife dkhalife commented Mar 8, 2026

Will proceed with the REST & Websocket implementations

Copilot AI review requested due to automatic review settings March 8, 2026 22:16
@codecov
Copy link

codecov bot commented Mar 8, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@dkhalife dkhalife merged commit 0ce1ecd into main Mar 8, 2026
11 checks passed
@dkhalife dkhalife deleted the remove_grpc branch March 8, 2026 22:18
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Removes the legacy gRPC/protobuf implementation from Task Wizard to proceed with the REST + WebSocket architecture (simplifying both backend and frontend and dropping gRPC-Web support).

Changes:

  • Deleted protobuf contract files and proto code generation scripts.
  • Removed generated gRPC client/server code and related dependencies (TS + Go).
  • Updated API server HTTP wiring and documentation to reflect the HTTP/WebSocket direction.

Reviewed changes

Copilot reviewed 28 out of 30 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
proto/user.proto Removed user-related protobuf message definitions.
proto/task_service.proto Removed gRPC service definitions (Task/Label/User/Token/Auth).
proto/task.proto Removed task-related protobuf message definitions.
proto/label.proto Removed label-related protobuf message definitions.
proto/common.proto Removed shared protobuf enums/messages (frequency/notifications/scopes).
proto/generate.ps1 Removed proto generation orchestrator script.
proto/generate-ts.ps1 Removed TypeScript gRPC client generation script.
proto/generate-go.ps1 Removed Go protobuf/gRPC generation script.
frontend/package.json Dropped grpc-web / ts-proto / bufbuild protobuf dependencies.
frontend/yarn.lock Updated lockfile to reflect removed gRPC/protobuf dependencies.
frontend/src/grpc/client.ts Removed gRPC-Web client implementation.
frontend/src/grpc/common.ts Removed generated TS protobuf types/helpers for common.proto.
frontend/src/grpc/label.ts Removed generated TS protobuf types/helpers for label.proto.
frontend/src/grpc/task_service.ts Removed generated TS service descriptors for gRPC services.
frontend/src/grpc/user.ts Removed generated TS protobuf types/helpers for user.proto.
apiserver/main.go Dropped h2c/http2 handler wiring and served Gin directly over net/http.
apiserver/go.mod Removed gRPC module dependency and updated remaining indirect requirements.
apiserver/go.sum Cleaned sums to reflect removed gRPC/protobuf-related modules.
apiserver/internal/grpc/common.pb.go Removed generated Go protobuf code for common.proto.
apiserver/internal/grpc/label.pb.go Removed generated Go protobuf code for label.proto.
apiserver/internal/grpc/task.pb.go Removed generated Go protobuf code for task.proto.
apiserver/internal/grpc/task_service.pb.go Removed generated Go protobuf code for task_service.proto.
apiserver/internal/grpc/user.pb.go Removed generated Go protobuf code for user.proto.
apiserver/internal/grpc/label.go Removed Go gRPC service implementation for labels.
apiserver/internal/grpc/task.go Removed Go gRPC service implementation for tasks.
apiserver/internal/grpc/user.go Removed Go gRPC service implementation for users.
.github/copilot-instructions.md Updated contributor instructions to reflect HTTP-based approach and removed proto workflow.
.agents/architecture.md Updated architecture doc to remove protobuf layer and describe REST + WebSocket transport.

Comment on lines 3 to 26
import (
"context"
"flag"
"fmt"
"log"
"net/http"

"dkhalife.com/tasks/core/backend"
"dkhalife.com/tasks/core/config"
"dkhalife.com/tasks/core/frontend"
auth "dkhalife.com/tasks/core/internal/middleware/auth"
"dkhalife.com/tasks/core/internal/migrations"
database "dkhalife.com/tasks/core/internal/utils/database"
"dkhalife.com/tasks/core/internal/utils/email"
utils "dkhalife.com/tasks/core/internal/utils/middleware"
ws "dkhalife.com/tasks/core/internal/ws"
"github.com/gin-contrib/cors"
"github.com/gin-gonic/gin"
"go.uber.org/fx"
"go.uber.org/fx/fxevent"
"go.uber.org/zap/zapcore"
"golang.org/x/net/http2"
"golang.org/x/net/http2/h2c"

"gorm.io/gorm"

Copy link

Copilot AI Mar 8, 2026

Choose a reason for hiding this comment

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

The import block ordering/grouping in this file doesn’t match the Go import grouping convention used elsewhere in the codebase (stdlib → internal dkhalife.com/tasks/... → external). Since this hunk touches the imports, consider running goimports/gofmt to regroup/sort them to keep consistency and avoid future churn (e.g., compare with apiserver/internal/apis/task.go import grouping).

Copilot uses AI. Check for mistakes.
## Project Overview

Task Wizard is a self-hosted, privacy-focused task management app: React frontend communicates via gRPC-Web/HTTP → Go API server handles business logic and persistence → SQLite/MySQL via GORM. A .NET MCP server exposes tools for AI assistants.
Task Wizard is a self-hosted, privacy-focused task management app: React frontend communicates via HTTP → Go API server handles business logic and persistence → SQLite/MySQL via GORM. A .NET MCP server exposes tools for AI assistants.
Copy link

Copilot AI Mar 8, 2026

Choose a reason for hiding this comment

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

This overview now says the frontend communicates via HTTP only, but the codebase still includes a WebSocket transport/path (and this PR description mentions WebSocket). Consider updating this sentence to explicitly mention WebSocket (e.g., “HTTP + WebSocket”) to keep the high-level docs accurate/consistent with .agents/architecture.md.

Suggested change
Task Wizard is a self-hosted, privacy-focused task management app: React frontend communicates via HTTP → Go API server handles business logic and persistence → SQLite/MySQL via GORM. A .NET MCP server exposes tools for AI assistants.
Task Wizard is a self-hosted, privacy-focused task management app: React frontend communicates via HTTP + WebSocket → Go API server handles business logic and persistence → SQLite/MySQL via GORM. A .NET MCP server exposes tools for AI assistants.

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