ref(projectKeys): Migrate forms to scraps form system#116516
Conversation
|
bugbot run |
📊 Type Coverage Diff✅ No new type safety issues introduced. Coverage: 93.60% |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 932a49e. Configure here.
| !hasAccess || !supportsPerformance | ||
| ? t('You do not have permission to edit this setting') | ||
| : undefined | ||
| } |
There was a problem hiding this comment.
Incorrect disabled reason shown for version-incompatible features
Medium Severity
The disabled prop on field.Switch for Performance, Replay, Logs, and Feedback fields uses !hasAccess || !supportsPerformance (or !supportsLogs) as the condition to show "You do not have permission to edit this setting". When hasAccess is true but the SDK version doesn't support the feature, the user sees a misleading permissions message instead of a version-compatibility explanation. The Debug field correctly checks only hasAccess for this message.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit 932a49e. Configure here.


Migrates all project key settings forms (credentials, key settings, rate limits, loader settings) from the legacy form system (
JsonForm,FieldGroupwithPanel/PanelBody/PanelHeader,RangeSlider) to the new TanStack-based scraps form system.Rate limits form refactored to explicit submit
The rate limits form now uses
useScrapsFormwith Save/Reset buttons instead of auto-save. Cross-field validation ensures count and window are either both set or both empty, preventing partial submissions that the backend would silently discard.Legacy Panel components replaced with FieldGroup
All
Panel/PanelBody/PanelHeader/PanelAlertusage replaced withFieldGroupandAlert.FieldGroupgains ahasButtonsprop to support header buttons (used by loader script).Credentials simplified
Removed unused props (
showDsn,showDsnPublic,showOtlpTraces,showOtlpLogs) that were always defaulted or always passed. OTLP tab is now always visible. Read-only fields useTextCopyInputinsidefield.Layout.Stack.