mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-01-11 20:00:29 +01:00
[PR #317] [MERGED] fix(gRPC): Cache descriptor pools to avoid re-reflection; add manual “Refresh Schema” to force re-fetch #239
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/mountain-loop/yaak/pull/317
Author: @Nokinori
Created: 12/9/2025
Status: ✅ Merged
Merged: 12/10/2025
Merged by: @gschier
Base:
main← Head:nokinori/fix-grpc-server-reflection-cache📝 Commits (3)
5b89807fix: cache descriptor pools to avoid re-reflection4c23c60Simplify refetch logicbe64b30Fix loading state📊 Changes
3 files changed (+31 additions, -6 deletions)
View changed files
📝
src-tauri/src/lib.rs(+2 -0)📝
src-tauri/yaak-grpc/src/manager.rs(+24 -5)📝
src-web/hooks/useGrpc.ts(+5 -1)📄 Description
Hi! Firstly, thanks for Yaak, it’s a great tool!
I’m new to the codebase. If I got anything wrong or missed some edge cases please let me know.
While working with gRPC via server reflection, I noticed that descriptor pools were being rebuilt on every request, so I tried to fix that.
Summary:
Problem:
Previously, the app rebuilt the DescriptorPool via server reflection on every call to services()/connect(). This caused extra latency and the log “Fetching descriptors for …” to appear on every request. Users also needed a way to force a schema refresh when backend services change.
Behavior now with server reflection (no *.proto files selected):
Behavior is the same except caching reduces redundant reflection. Manual refresh path uses existing code paths after invalidation.
Issue Link: https://feedback.yaak.app/p/ability-to-disable-automatic-schema-introspection-and-reload-schema-on/comment/693867cb4b3c6b0af1c4b272
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.