-
Notifications
You must be signed in to change notification settings - Fork 129
fix(fe): show connect page when there are no runner configs but runner names #3298
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
2 Skipped Deployments
|
PR ReviewSummaryThis PR fixes a bug where the connect page wasn't displaying properly when there are runner names but no runner configs. The fix changes the conditional logic from checking runnerConfigsCount to checking runnerNamesCount. Code Quality ✅Positive Changes:
Logic Analysis 🔍Looking at the data provider implementation (engine-data-provider.tsx:460-489), I can confirm:
The fix makes sense because:
Potential Concerns
|
Graphite Automations"Test" took an action on this PR • (10/31/25)1 assignee was added to this PR based on Kacper Wojciechowski's automation. |
a4f3a81 to
a86af0a
Compare
PR ReviewSummaryThis PR fixes a bug where the connect page wasn't being displayed when there were runner names registered but no runner configs present. The fix changes the conditional logic to check for Code Quality ✅Positive aspects:
Potential Issues 🔍Minor concerns:
Testing Recommendations 🧪Please verify these scenarios:
Performance Considerations ⚡No significant performance concerns. The change actually improves efficiency slightly since Security 🔒No security concerns identified. The change is purely frontend logic for display conditions. Final Verdict ✅Approved. This is a clean, focused bug fix that correctly addresses the issue. The code is well-structured and the logic is sound. The unused imports cleanup is a nice bonus. Suggestion: Consider whether using the flattened const { data: runnerNames, isLoading } = useSuspenseInfiniteQuery({
...useEngineCompatDataProvider().runnerNamesQueryOptions(),
refetchInterval: 5000,
});
const hasRunnerNames = runnerNames !== undefined && runnerNames.length > 0;This would check all pages instead of just |
PR Review - Code Quality & Best PracticesSummaryThis PR fixes a UI state management issue by switching from checking ✅ Positive Aspects
🔍 Observations & Considerations1. Data Structure DifferencesThe change switches between two different data structures:
While the change looks correct, it's worth noting that
This suggests the original logic may have been checking the wrong condition. ✅ This is the core fix. 2. Potential Edge CaseConsider the scenario:
In this case, the new code will show the main connect page (with Providers and Runners tables), but the 3. Loading StateThe 4. Performance ConsiderationThe query now fetches 🧪 Testing RecommendationsWhile I don't see test files for this component, consider manually testing these scenarios:
📝 Minor Suggestions
🔒 Security & Performance
Final VerdictApprove ✅ This is a clean, focused fix that addresses a specific UI state management issue. The code quality is good, imports are properly cleaned up, and the logic is sound. The change is minimal and low-risk. Recommendation: Merge after manual testing of the edge cases mentioned above. |
More templates
@rivetkit/actor
@rivetkit/cloudflare-workers
@rivetkit/core
@rivetkit/db
@rivetkit/framework-base
@rivetkit/next-js
@rivetkit/react
rivetkit
@rivetkit/sql-loader
@rivetkit/engine-runner
@rivetkit/engine-runner-protocol
commit: |
a86af0a to
d264e1f
Compare
248a1ce to
74dfc47
Compare
Code ReviewSummaryThis PR fixes a bug where the connect page was incorrectly checking for runner configs instead of runner names to determine whether to show the onboarding flow. This is a good fix that addresses the issue described in the title. Positive Changes ✅
Observations & Suggestions 💡
Security & Performance 🔒
VerdictApproved ✅ - This is a straightforward bug fix that correctly addresses the issue. The logic change makes sense and the implementation is clean. Minor SuggestionConsider extracting the runner check logic into a custom hook for reusability: const useHasConnectedRunners = () => {
const { data: runnerNamesCount } = useSuspenseInfiniteQuery({
...useEngineCompatDataProvider().runnerNamesQueryOptions(),
select: (data) => data.pages[0].names.length,
refetchInterval: 5000,
});
return runnerNamesCount > 0;
};But this is optional and the current implementation is fine. Review generated by Claude Code |
Pull Request ReviewSummaryThis PR fixes a UX issue where the connect page wasn't showing when there are runner names but no runner configs. The fix correctly changes the conditional logic to check for runner names instead of runner configs. AnalysisThe Fix is Correct: The change from checking runnerConfigsQueryOptions() to runnerNamesQueryOptions() is the right approach because:
Why the old code was buggy: The original code could incorrectly show the getting started page in this scenario:
Code QualityStrengths:
Minor Observations:
Testing RecommendationsConsider testing these scenarios:
Scenario 3 might need verification - when a user adds a serverless config (Vercel, Railway), should they still see the getting started page until runners spawn? Or should they see the connect page immediately? The current fix would show the getting started page until the first runner spawns. Security and Performance
ConclusionRecommendation: APPROVE with minor suggestion to verify scenario 3 behavior This is a solid bug fix that correctly addresses the UX issue. The code is clean, removes unnecessary imports, and follows existing patterns in the codebase. The only consideration is whether the UX should show the connect page immediately when a serverless config is added (before runners spawn), but that may be the correct behavior since there is nothing to connect until runners are actually running. Great work on identifying and fixing this edge case! |
d264e1f to
92c4ed5
Compare
de6599b to
b14522c
Compare
2633432 to
a1e6014
Compare
PR ReviewSummaryThis PR fixes a bug where the connect page wouldn't show when there are runner names but no runner configs. The change switches from checking Code Quality ✅Positive aspects:
Potential Issues
|
Code ReviewSummaryThis PR fixes a logic issue where the connect page wasn't displaying correctly when runner names exist but no runner configs are present. The change correctly switches from checking runner configs to checking runner names. Positive Aspects ✅
Concerns & Suggestions1. Variable Naming Consistency 🔍The variable is named select: (data) => data.pages[0].names.length,This means const { data: runnerNamesLength, isLoading } = useSuspenseInfiniteQuery({
...useEngineCompatDataProvider().runnerNamesQueryOptions(),
select: (data) => data.pages[0].names.length,
refetchInterval: 5000,
});
const hasRunnerNames = runnerNamesLength !== undefined && runnerNamesLength > 0;2. Potential Data Accuracy Issue
|
b14522c to
f51b221
Compare
Code ReviewSummaryThis PR fixes a bug where the connect page was incorrectly determining when to show the onboarding UI. The fix changes from checking Positive Aspects ✅
Potential Concerns
|
Merge activity
|
f51b221 to
d5c5825
Compare
0acf499 to
9798eaf
Compare
Code ReviewSummaryThis PR fixes a bug where the connect page was not showing when there are runner names but no runner configs. The fix changes the logic to check for Positive Feedback ✅
Code Quality Observations 📋Good practices:
Potential improvements (non-blocking):
Potential Issues 🔍None identified - The change is safe and addresses the stated problem correctly. Performance Considerations ⚡
Security Concerns 🔒None identified - No security implications from this change. Test Coverage 🧪Recommendation: Consider adding or verifying the following test scenarios:
Additional NotesThe PR title mentions "when there are no runner configs but runner names" - this fix correctly prioritizes runner names as the source of truth for determining if runners are connected. Runner configs represent cloud provider configurations, while runner names represent actual active runner processes, so this is the correct logic. VerdictLGTM! ✅ This is a solid bug fix with good refactoring. The code quality is good and follows repository conventions. The suggested improvements above are optional refinements, not blockers. |
PR Review: Fix FE Connect Page Display LogicSummaryThis PR fixes a bug where the connect page wasn't showing when there were runner names registered but no runner configs. The fix correctly switches from checking ✅ Positive Findings1. Correct Fix for the Bug
This fix ensures the connect page is displayed when runner names exist, which is the correct condition. 2. Proper Cleanup
3. Variable Naming 📝 Observations1. Loading State Behavior 2. Data Selection select: (data) => data.pages[0].names.length,This only checks the first page. If runner names could span multiple pages, this might miss names on subsequent pages. However, for this use case (just checking if any exist), checking the first page is likely sufficient and more performant. 3. Potential Edge Case const hasRunnerNames =
runnerNamesCount !== undefined && runnerNamesCount > 0;With 🎯 Code QualityStyle Compliance:
Best Practices:
🔒 Security & PerformanceSecurity: No concerns - this is a frontend display logic change with no security implications. Performance:
🧪 TestingConsiderations:
📊 Overall AssessmentRating: ✅ Approved This is a clean, focused bug fix that:
Minor Suggestions (Optional)If you want to make the code even more explicit, you could simplify the loading check since const { data: runnerNamesCount } = useSuspenseInfiniteQuery({
...useEngineCompatDataProvider().runnerNamesQueryOptions(),
select: (data) => data.pages[0].names.length,
refetchInterval: 5000,
});
const hasRunnerNames = runnerNamesCount > 0;
// Remove the isLoading check and skeleton entirelyHowever, keeping the defensive checks doesn't hurt, so this is purely optional. Recommendation: ✅ Approve and merge - This is a solid bug fix with no issues. |

No description provided.