feat(FAS-9): implement gRPC communication layer, Deck Configurator UI, and desktop app shell#4
Open
ar022 wants to merge 2 commits into
Open
Conversation
- Define DeckService and ActionService proto files in protos/proto/services/. - Generate TypeScript bindings via buf + bufbuild/es + connectrpc/es into protos/gen/es/services/. - Refactor Axum server from mesh-networking model to gRPC DeckService implementation. - Remove obsolete mesh handlers, room_registry, time_sync, and topology modules. - Add build.rs for tonic/prost proto compilation in the server crate. - Wire generated proto types into shared client service layers (apiClient, hooks, meshConnection). - Distribute generated TS types into shared/client-common and shared/desktop-host workspaces. - Add test_client.rs scaffolding for server integration testing. - Update package.json, Cargo.toml dependencies, and yarn.lock for gRPC stack. - Addresses FAS-9 requirement: establish typed gRPC contract as the single source of truth for FastDeck client–server communication.
…pdates - Add DeckConfigurator screen with interactive N×M grid, profile tabs, page navigation, and Property Inspector panel supporting all 7 action types. - Add MultiActionEditor screen for composing ordered sequences of single actions with configurable delays. - Add PluginsMarketplace screen for browsing and installing plugin action packs. - Add ProfilesAndDevices screen for managing profiles and connected mobile clients. - Add persistent Sidebar (navigation), TopBar (window controls), and ScreenLayout wrapper used across all desktop screens. - Add DisconnectedScreen component shown when the gRPC server is unreachable, with retry mechanism. - Register all new screens in the desktop-host router (publicScreens + Routes). - Update TitleBar in client-common and desktop-host to align with new layout structure. - Update CI workflows (.github/workflows/) to reflect FastDeck rebranding and new build targets. - Update Electron desktop app config (craco.config.js, electron-builder.json, index.html, manifest.json, icons). - Rebrand Tauri mobile app (Android package name com.fastdeck.mobile, iOS scheme, tauri.conf.json). - Update CLAUDE.md agent guide with accurate stack documentation. - Update scripts/rename.js, makefile, and scripts/setup.sh for new tooling. - Addresses FAS-9 requirement: deliver complete desktop configurator experience for V1.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description of changes
This PR introduces the foundational gRPC communication layer between the FastDeck desktop host and the mobile client, alongside the complete desktop configurator UI — the core of the V1 product. It replaces the previous mesh-networking server model with a typed, streaming gRPC implementation and delivers all primary desktop screens for configuring the deck.
Requirement
Implementation
DeckServiceandActionServiceproto files defined inprotos/proto/services/. TypeScript bindings generated via buf + bufbuild/es + connectrpc/es intoprotos/gen/es/services/and distributed intoshared/client-commonandshared/desktop-hostworkspaces.apps/server/src/lib.rsnow implements the full gRPCDeckServicewith profile management and action execution.build.rsadded for prost/tonic proto compilation.useSwitchProfile/useUpdateCellhooks.Sidebar,TopBar, andScreenLayoutcomponents introduced inshared/desktop-host/src/components/layout/.DisconnectedScreenshown when gRPC server is unreachable.publicScreens.tsxandRoutes.tsx.Ticket: FAS-9
Author: Amit Raikwar