-
Notifications
You must be signed in to change notification settings - Fork 0
Implement rpc services and ts client #223
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR implements gRPC services on the backend (Go) and a corresponding TypeScript gRPC-web client on the frontend. The implementation includes services for tasks, labels, users, tokens, and authentication, with no live connection enabled yet (to be feature-flagged in a future PR).
Key changes:
- Added TypeScript gRPC-web client with authentication middleware and token refresh logic
- Implemented Go gRPC server handlers for Task, Label, User, Token, and Auth services
- Added type conversion functions between gRPC protobuf types and internal models
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 10 comments.
| File | Description |
|---|---|
| frontend/src/grpc/client.ts | Implements gRPC-web client factory and exports typed API methods for all services with authentication metadata provider |
| apiserver/internal/grpc/user.go | Implements UserGRPCServer with profile retrieval, notification settings, and password change handlers |
| apiserver/internal/grpc/task.go | Implements TaskGRPCServer with full CRUD operations, task completion/skipping, and history retrieval plus model conversion utilities |
| apiserver/internal/grpc/label.go | Implements LabelGRPCServer with CRUD operations for user labels |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
No live connection yet, will enable behind a FF in an upcoming PR