mirror of https://github.com/usememos/memos
release-please--branches--main--components--memos
main
v0.0.1
v0.1.0
v0.1.1
v0.1.2
v0.1.3
v0.10.0
v0.10.1
v0.10.2
v0.10.3
v0.11.0
v0.11.1
v0.11.2
v0.12.0
v0.12.1
v0.12.2
v0.13.0
v0.13.1
v0.13.2
v0.14.0
v0.14.1
v0.14.2
v0.14.3
v0.14.4
v0.15.0
v0.15.1
v0.15.2
v0.16.0
v0.16.1
v0.17.0
v0.17.1
v0.18.0
v0.18.1
v0.18.2
v0.19.0
v0.19.1
v0.2.0
v0.2.1
v0.2.2
v0.20.0
v0.20.1
v0.21.0
v0.22.0
v0.22.1
v0.22.2
v0.22.3
v0.22.4
v0.22.5
v0.23.0
v0.23.0-rc.0
v0.23.0-rc.1
v0.23.0-rc.2
v0.23.0-rc.3
v0.23.1
v0.24.0
v0.24.1
v0.24.2
v0.24.3
v0.24.4
v0.25.0
v0.25.1
v0.25.2
v0.25.3
v0.26.0
v0.26.1
v0.26.2
v0.27.0
v0.27.0-rc.1
v0.27.0-rc.2
v0.27.1
v0.28.0
v0.29.0
v0.29.1
v0.3.0
v0.3.1
v0.4.0
v0.4.1
v0.4.2
v0.4.3
v0.4.4
v0.4.5
v0.5.0
v0.6.0
v0.6.1
v0.7.0
v0.7.1
v0.7.2
v0.7.3
v0.8.0
v0.8.1
v0.8.2
v0.8.3
v0.9.0
v0.9.1
${ noResults }
2 Commits (10a955fd6241f82424cefc2cf3c25a13021f5af6)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
65a19df4be |
fix(backend): correct generic type parameter in withHeaderCarrier helper
Problem: The withHeaderCarrier generic function had a type mismatch that caused compilation errors in CI. The function used `T proto.Message` constraint, but Connect's Response type expects the non-pointer message type while protobuf methods return pointers. Error from CI: type T of resp does not match *T (cannot infer T) This occurred because: - Connect methods expect: *connect.Response[v1pb.CreateSessionResponse] - Service methods return: (*v1pb.CreateSessionResponse, error) - Old signature: fn func(context.Context) (T, error) with T proto.Message - This caused T to be inferred as *v1pb.CreateSessionResponse - Leading to return type: *connect.Response[*v1pb.CreateSessionResponse] (wrong!) Solution: Changed generic signature to explicitly handle the pointer/non-pointer distinction: - New signature: fn func(context.Context) (*T, error) with T any - T is now the non-pointer type (e.g., v1pb.CreateSessionResponse) - fn returns *T (e.g., *v1pb.CreateSessionResponse) - Return type is correctly: *connect.Response[T] (e.g., *connect.Response[v1pb.CreateSessionResponse]) Also removed unused "google.golang.org/protobuf/proto" import and improved documentation to clarify the T vs *T distinction. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> |
6 months ago |
|
|
3d893a7394 |
fix(backend): implement protocol-agnostic header setting for dual gRPC/Connect-RPC support
Problem: The codebase supports both native gRPC and Connect-RPC protocols, but auth service was using grpc.SetHeader() which only works for native gRPC. This caused "failed to set grpc header" errors when using Connect-RPC clients (browsers using nice-grpc-web). Solution: - Created HeaderCarrier pattern for protocol-agnostic header setting - HeaderCarrier stores headers in context for Connect-RPC requests - Falls back to grpc.SetHeader for native gRPC requests - Updated auth service to use SetResponseHeader() instead of grpc.SetHeader() - Refactored Connect wrappers to use withHeaderCarrier() helper to eliminate code duplication Additional fixes: - Allow public methods when gRPC metadata is missing in ACL interceptor - Properly handle ParseSessionCookieValue errors instead of ignoring them - Fix buildSessionCookie to gracefully handle missing metadata Files changed: - server/router/api/v1/header_carrier.go: New protocol-agnostic header carrier - server/router/api/v1/auth_service.go: Use SetResponseHeader, handle missing metadata - server/router/api/v1/connect_services.go: Use withHeaderCarrier helper - server/router/api/v1/acl.go: Allow public methods without metadata - server/router/api/v1/connect_interceptors.go: Handle ParseSessionCookieValue errors 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> |
6 months ago |