[Graphite MQ] Draft PR GROUP:spec_3ed000 (PRs 4168, 4170, 4211, 4227, 4228, 4243)#4244
Conversation
# Description Added Ladle component development environment to the frontend. This PR: 1. Adds Ladle as a dependency to the frontend package 2. Creates a Docker setup for building and serving the Ladle environment 3. Configures Railway deployment files for PR and staging environments 4. Adds a sample workflow component story 5. Updates `.gitignore` to exclude the Ladle build directory 6. Adds npm scripts for Ladle development and building Ladle provides an isolated environment for developing and testing UI components, making it easier to build and maintain a consistent component library. ## Type of change - [x] New feature (non-breaking change which adds functionality) ## How Has This Been Tested? Tested locally by running the Ladle development server and verifying that components can be viewed and interacted with in isolation. ## Checklist: - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my code - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] New and existing unit tests pass locally with my changes
# Description Added a workflow visualization component using XYFlow to render workflow history data as interactive node graphs. This implementation includes: - Custom node types for different workflow entry types (step, loop, sleep, message, etc.) - Support for nested structures like loops and parallel branches - Visual indicators for node status (completed, running, failed, retrying) - Duration display and timing gaps between nodes - Dark theme styling for all XYFlow components The implementation includes example data for various workflow patterns (linear, loops, joins, races) and Ladle stories to showcase each node type and complete workflow examples. ## Type of change - [x] New feature (non-breaking change which adds functionality) ## How Has This Been Tested? Tested through Ladle stories that demonstrate: - Individual node types with different statuses - Simple linear workflows - Workflows with loops - Workflows with parallel branches (join) - Workflows with racing branches - Complex workflows with multiple patterns - In-progress, retrying, and failed workflows ## Checklist: - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes
# Description Implemented the database inspector feature for actors, allowing users to browse and query SQLite databases within the actor inspector UI. This feature enables viewing table schemas, browsing data with pagination, and exploring foreign key relationships. The implementation includes: - New database table component with column resizing and sorting capabilities - Database schema retrieval API in the actor inspector - Table row pagination with configurable limits - Foreign key relationship visualization - UI integration in the actor details panel This feature requires RivetKit version 2.0.42 or higher, which includes the new actor inspector protocol v3 with database inspection capabilities. ## Type of change - [x] New feature (non-breaking change which adds functionality) ## How Has This Been Tested? Tested with various SQLite database schemas and data types, including tables with foreign key relationships. Verified pagination works correctly with large datasets and that the UI properly handles different column types. ## Checklist: - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes
# Description Created a dedicated Inspector app in the frontend directory structure. This change moves the Inspector functionality from being embedded in the main frontend application to its own standalone app, allowing for better separation of concerns and more focused development. The new Inspector app includes: - A complete application structure with its own routing, components, and configuration - Dedicated HTML entry point and styling - Inspector-specific context providers and data handling - UI components for connecting to and interacting with local RivetKit instances This refactoring removes Inspector-related code from the main frontend codebase, including context providers, routes, and UI components that were previously shared. ## Type of change - [x] New feature (non-breaking change which adds functionality) - [x] Breaking change (fix or feature that would cause existing functionality to not work as expected) ## How Has This Been Tested? The Inspector app has been tested by verifying it can: - Connect to local RivetKit instances - Display actor information - Handle connection status appropriately - Maintain all previous functionality in its new standalone form ## Checklist: - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my code - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] New and existing unit tests pass locally with my changes
…#4228) # Description This PR adds support for serving the inspector UI directly from the Rivet manager server, making it accessible at `/ui/` instead of requiring a separate deployment. This simplifies the inspector setup and improves the developer experience. Key changes: - Added a new endpoint in the manager router to serve the inspector UI static files - Created a script to package the inspector UI into a tarball for distribution - Updated the inspector URL generation to use the local `/ui/` path - Added browser-safe exports for the inspector client code - Fixed imports in the frontend to use the new browser-safe paths - Updated the build configuration to properly handle browser vs. Node.js code ## Type of change - [ ] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) - [ ] This change requires a documentation update ## How Has This Been Tested? The changes have been tested by: - Building the inspector UI and verifying it can be served from the manager - Testing the browser-safe exports to ensure they work correctly in frontend code - Verifying the inspector functionality works with the new URL structure ## Checklist: - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes
# Description Please include a summary of the changes and the related issue. Please also include relevant motivation and context. ## Type of change - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) - [ ] This change requires a documentation update ## How Has This Been Tested? Please describe the tests that you ran to verify your changes. ## Checklist: - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [ ] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes
|
This PR was not deployed automatically as @graphite-app[bot] does not have access to the Railway project. In order to get automatic PR deploys, please add @graphite-app[bot] to your workspace on Railway. |
PR Review: Graphite MQ Group (PRs #4168, #4170, #4211, #4227, #4228, #4243)This is a large batch covering: Ladle component environment, XYFlow workflow visualization, database inspector, inspector app separation, inspector-from-manager serving, and a setupDatabase merge fix. Overall the work is solid, but there are a few issues worth addressing before merging. CriticalAbsolute symlink committed to version control ( The symlink target is an absolute path on a specific developer's machine: This will silently break builds on every other machine (and in CI). It should be a relative symlink ( SignificantDuplicate Two independent implementations of the same class were added. The version in Incomplete column metadata in Column info is derived from
SQLite provides Extraction target is unscopable ( The tarball always extracts to
Suggested mitigations: include the package version in the dest path (e.g., MinorCommented-out code left in ( The Missing newline at end of file ( The diff shows Leading blank line in new file ( There's an extra blank line before the first Indentation in new files ( These new files use 4-space indentation. The project convention (per Observations (not blocking)
The previous code mapped "traces" → 3, "queue" → 4. This PR collapses that to just "database" → 3. If there are old clients that reported version 4 in the field, the mapping change might cause incorrect downgrade behavior. Worth a quick sanity check that the version ladder is intentional.
The increment before action dispatch and decrement in the
Switching from Inspector now served locally at Removing the dependency on XYFlow workflow visualizer refactor The 1882-line component replaced by ~100 lines + dedicated layout/node files is a big improvement for maintainability. |
This draft PR was created by the Graphite merge queue.
Trunk will be fast forwarded to the HEAD of this PR when CI passes, and the original PRs will be closed.
The following PRs are included in this draft PR: