Skip to content

refactor(inspector): separate inspector app from dashboard#4227

Closed
jog1t wants to merge 1 commit into02-16-feat_add_database_inspectorfrom
02-18-refactor_inspector_separate_inspector_app_from_dashboard
Closed

refactor(inspector): separate inspector app from dashboard#4227
jog1t wants to merge 1 commit into02-16-feat_add_database_inspectorfrom
02-18-refactor_inspector_separate_inspector_app_from_dashboard

Conversation

@jog1t
Copy link
Contributor

@jog1t jog1t commented Feb 18, 2026

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

  • New feature (non-breaking change which adds functionality)
  • 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:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • New and existing unit tests pass locally with my changes

@railway-app railway-app bot temporarily deployed to rivet-frontend / rivet-pr-4227 February 18, 2026 23:52 Destroyed
@railway-app
Copy link

railway-app bot commented Feb 18, 2026

🚅 Deployed to the rivet-pr-4227 environment in rivet-frontend

Service Status Web Updated (UTC)
website 😴 Sleeping (View Logs) Web Feb 19, 2026 at 4:33 pm
mcp-hub ✅ Success (View Logs) Web Feb 18, 2026 at 11:54 pm
frontend-inspector ❌ Build Failed (View Logs) Web Feb 18, 2026 at 11:54 pm
frontend-cloud ❌ Build Failed (View Logs) Web Feb 18, 2026 at 11:53 pm
ladle ❌ Build Failed (View Logs) Web Feb 18, 2026 at 11:53 pm

@jog1t jog1t marked this pull request as ready for review February 18, 2026 23:52
Copy link
Contributor Author

jog1t commented Feb 18, 2026

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more


How to use the Graphite Merge Queue

Add the label merge-queue to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@graphite-app
Copy link
Contributor

graphite-app bot commented Feb 18, 2026

Graphite Automations

"Test" took an action on this PR • (02/18/26)

1 assignee was added to this PR based on Kacper Wojciechowski's automation.

@pkg-pr-new
Copy link

pkg-pr-new bot commented Feb 18, 2026

More templates

@rivetkit/virtual-websocket

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/virtual-websocket@4227

@rivetkit/cloudflare-workers

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/cloudflare-workers@4227

@rivetkit/framework-base

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/framework-base@4227

@rivetkit/next-js

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/next-js@4227

@rivetkit/react

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/react@4227

rivetkit

pnpm add https://pkg.pr.new/rivet-dev/rivet/rivetkit@4227

@rivetkit/sql-loader

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/sql-loader@4227

@rivetkit/sqlite-vfs

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/sqlite-vfs@4227

@rivetkit/traces

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/traces@4227

@rivetkit/workflow-engine

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/workflow-engine@4227

@rivetkit/engine-runner

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/engine-runner@4227

@rivetkit/engine-runner-protocol

pnpm add https://pkg.pr.new/rivet-dev/rivet/@rivetkit/engine-runner-protocol@4227

commit: 84d3f2b

@@ -0,0 +1 @@
/Users/kwojciechowski/Documents/Projects/rivet.gg/rivet/frontend/public No newline at end of file
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file contains an absolute path to a local machine (/Users/kwojciechowski/Documents/Projects/rivet.gg/rivet/frontend/public). This will break for:

  • Other developers checking out the code
  • CI/CD pipelines
  • Production deployments

Fix: Use a relative path for the symlink instead:

ln -s ../../public frontend/apps/inspector/public

Or configure the build tool to handle the public directory appropriately rather than committing a symlink.

Suggested change
/Users/kwojciechowski/Documents/Projects/rivet.gg/rivet/frontend/public
../../public

Spotted by Graphite Agent

Fix in Graphite


Is this helpful? React 👍 or 👎 to let us know.

@claude
Copy link

claude bot commented Feb 18, 2026

PR Review: refactor(inspector): separate inspector app from dashboard

Good separation of concerns overall — moving the inspector into its own standalone app makes the codebase cleaner. A few issues need addressing before merge.


🔴 Critical: Broken symlink with absolute local path

File: frontend/apps/inspector/public

The public directory is a symlink pointing to an absolute path on the developer's local machine:

/Users/kwojciechowski/Documents/Projects/rivet.gg/rivet/frontend/public

This breaks on every machine that isn't the author's. It should be a relative symlink, e.g. ../../../public (or whatever the correct relative path to frontend/public is). Additionally, the path contains rivet.gg — while that's the local directory name rather than a URL, all references should use rivet.dev per CLAUDE.md conventions.


🔴 Bug: Reconnect button calls disconnect()

File: frontend/apps/inspector/src/app/layout.tsx, lines ~342–348

When the connection status is "disconnected", the button with tooltip "Reconnect" calls disconnect():

onClick={() => disconnect()}
<Icon icon={faLink} />
// ...
content="Reconnect"

This does the opposite of what the tooltip says. The button should trigger a reconnect (or call connect() with the existing URL), not a disconnect.


🟡 Bug: Modal enum mismatch in _context.tsx

File: frontend/apps/inspector/src/routes/_context.tsx

The search schema defines:

modal: z.enum(["go-to-actor", "feedback", ...])

But the Modals component checks for:

search.modal === "create-actor"

"go-to-actor" in the schema vs "create-actor" in the component — one of these is a typo. The schema should be updated to match the actual modal key used.


🟡 Missing package.json for the new app

The frontend/apps/inspector/ directory has no package.json in this PR (none appears in the file list). Without it, the inspector can't be managed as a proper workspace package with its own scripts (dev, build, preview). Other apps in frontend/apps/ should be checked for how they define their own package.json.


🟡 HTTP links instead of HTTPS

File: frontend/apps/inspector/src/app/layout.tsx, lines ~202, 219

href="http://www.rivet.dev/discord"   // should be https://rivet.dev/discord
href="http://github.com/rivet-dev/rivet"  // should be https://github.com/rivet-dev/rivet

Both links use HTTP and the Discord URL uses www.rivet.dev — CLAUDE.md specifies using rivet.dev without the www prefix. The same links already correctly use HTTPS elsewhere in the codebase.


🟡 Missing noreferrer on external links

File: frontend/apps/inspector/src/app/layout.tsx

The Discord and GitHub links use rel="noopener" but not rel="noreferrer". For cross-origin target="_blank" links, the recommended and secure combination is rel="noopener noreferrer" (already used on the Documentation link in the same file).


🟢 Typo in UI text

File: frontend/apps/inspector/src/app/layout.tsx

<a href="https://www.rivet.dev/changelog" ...>
    Whats new?
</a>

Missing apostrophe: "Whats new?""What's new?"


🟢 Minor: Logo component ambiguity

Files: frontend/apps/inspector/src/app/layout.tsx, frontend/apps/inspector/src/app/inspector-root.tsx

layout.tsx exports its own Logo component, while inspector-root.tsx imports Logo from "@/app/logo". Given the tsconfig path alias @/* → ["./src/*", "../../src/*"], this could resolve to either the local inspector source or the main frontend source. It would be clearer to either use the layout.tsx export consistently, or explicitly alias the import to avoid ambiguity.


Summary

Severity Issue
🔴 Critical Broken absolute-path symlink for public/
🔴 Bug Reconnect button calls disconnect()
🟡 Bug "go-to-actor" in schema vs "create-actor" in component
🟡 Missing package.json for the new inspector app
🟡 Quality HTTP links (should be HTTPS) and www. prefix on rivet.dev URLs
🟡 Security Missing noreferrer on external links
🟢 Minor Typo: "Whats new?" → "What's new?"
🟢 Minor Logo import ambiguity

The symlink and reconnect button issues need to be fixed before merge. The rest are smaller but worth addressing in this PR since they're in new code.

@graphite-app
Copy link
Contributor

graphite-app bot commented Feb 19, 2026

Merge activity

  • Feb 19, 11:17 PM UTC: NathanFlurry added this pull request to the Graphite merge queue.
  • Feb 19, 11:18 PM UTC: CI is running for this pull request on a draft pull request (#4244) due to your merge queue CI optimization settings.
  • Feb 19, 11:19 PM UTC: Merged by the Graphite merge queue via draft PR: #4244.

graphite-app bot pushed a commit that referenced this pull request Feb 19, 2026
# 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
@graphite-app graphite-app bot closed this Feb 19, 2026
@graphite-app graphite-app bot deleted the 02-18-refactor_inspector_separate_inspector_app_from_dashboard branch February 19, 2026 23:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant