Remove unnecessary abstraction layers and dead code:
- Combine handler and handlePost into single function
- Remove shouldStream function and non-streaming path
- Always stream responses (only path client uses)
- Clean up imports in TableEditor
- Remove isForeign and references fields from Zod schema
- Remove relationships from TableSchema
- Update system prompt to not generate foreign key constraints
- Remove TableRelationship type and relationships from TableSuggestion
- Clean up all FK handling in conversion logic
- Simplify getColumnDescription to only handle primary keys
- Display icons inline with text using flex layout in quick ideas
- Pass loading prop to Generate button icon for animated state during generation
- Quick ideas icons remain static (no loading animation)
* Use useLocalStorage hook for quickstart dismiss state
* Standardize varchar to text and remove local storage keys
* Remove gen_random_uuid() defaults from templates
* feat(studio): flatten table quickstart selector; show for any new table\n\n- Flattened category→template flow into single-step with category chips\n- Removed first-table-only guard so panel appears for all new tables when flag is on
* add comments to clarify diff btwn false and undefined in feature flag response type
* refactor: improve performance and type safety in table quickstart
- Memoize categories and displayed templates to prevent unnecessary re-renders
- Use generic type parameter instead of type assertion for feature flag
- Simplify dismiss handler with inline function
- Add JSDoc comment explaining feature flag return states
* Mark variant param as intentionally unused for future PR
* chore: clean up unused import in TableEditor
Remove unused useTablesQuery import after switching to localStorage-based dismissal.
* add 7 day project creation gate and fixed uuid default
* Improve table template selector UX with success feedback and clearer copy
- Add success toast when template is applied
- Update heading from "Quickstart: choose a template" to "Start faster with a table template"
- Improve subheading to explain time-saving benefit
- Use monospace font for table names to match code convention
- Update template rationales to be more descriptive and specific
- Increase font sizes for better readability
- Remove redundant category display
- Reorder imports alphabetically
* Apply prettier formatting to TableTemplateSelector
* fix(support form): fetch projects on mount
The OrganizationProjectSelector was updated to only fetch when opened to
save on API requests. This causes a problem for the Support Form, which
expects the projects to be fetched immediately so it can fall back to
the first project if no project was paused in the URL.
Added a fetchOnMount prop to OrganizationProjectSelector, which defaults
to false, so we can override this behaviour for the Support Form.
* fix(tests): increase timeout on support form tests
* feat: optimized users page
* Update UI
* Reinstate footer with count if mode is freeform
* Simplify disabled sort in performance mode
* Clean
* Small fix
* Final fixes
* Shift users SQL query to packages/pg-meta
* Nit unrelated: Clear query params from useLogsUrlState when going to logs tab of a selected user
* Shift user count SQL and get count estimate SQL into packages/pg-meta
* Fix
* Nit
* Nit
* Minor nits
* Refactor UX for searching
---------
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
* refactor: refactor support form
Refactor support form to make it easier to maintain:
- Split up large components into smaller components and hooks
- Lift state up so we don't have to do complex child/parent
state-syncing via useEffect
- Use nuqs parsing for consistent serialization/deserialization of
support form prefilled fields
* test: support form
Add comprehensive tests for support form
* fix(support form): project and org empty state
* Nit clean up
* More clean up
* cleannnn
* fix(support form): allow case-insensitive category in url
* clean(support form tests): remove unused param
* fix(support form): incorrect logic for sending affected services in payload
* clean(support form): use NO_ORG_MARKER and NO_PROJECT_MARKER instead of strings
* fix(support form): don't show upgrade cta if already on enterprise
---------
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
- Improve error messages with more user-friendly language
- Convert all functions to arrow functions for consistency
- Extract duplicate logic into helper functions (isPrimaryColumn, getColumnDescription)
- Remove unnecessary try-catch wrapper
- Simplify user-facing copy for better clarity
- Align coding patterns with project conventions
- Switch from OpenAI gpt-5-mini to AWS Bedrock gpt-oss-120b-1:0 for faster response times (~5s vs ~67s)
- Update Zod schema to handle model's inconsistent output formats (relationships can be array or object)
- Add automatic retry logic for intermittent empty model responses
- Improve error messages for better user experience
- Clean up validation logic and remove verbose logging
Replace gpt-5-mini (reasoning model) with openai.gpt-oss-120b-1:0 via Bedrock provider to improve generation performance from ~67s to ~5-10s while maintaining quality.
- Restore simple templates variant with category tabs (no dropdown navigation)
- Add AI variant with direct input field and quick idea chips
- Remove complex multi-view navigation system
- Delete 5 unnecessary component files (Initial/Category/AIInput/Results/Shared)
- Remove ViewMode enum from types
- Consolidate all logic into single TableTemplateSelector component
* basic fixes
* improve form contents
* fix border clipping
* remove redundant animation and classes
* polish confirm org
* improvements
* fix header rounding
* prevent password managers from appearing
* Fix the handling of token when redirecting back. Use nuqs for getting URL params. Simplify some logic.
* Minor fix to the useEffect for org name.
---------
Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
* CmdK OrgProjectSwitcher to swap useProjectsQuery with useProjectsInfiniteQuery
* Remove usage of useProjectsQuery in ProjectDropdown
* Remove usage of useProjectsQuery in NotificationsPopover
* Remove usage of useProjectsQuery in NotificationsFilter
* Remove usage of useProjectsQuery from LoadingState
* Clean
* Remove usage of getProjects from org-ai-details and fix missing key props in AIOnboarding
* Remove useAutoProjectsPrefetch from org/[slug]/index
* Fix TS + clean up
* Clean
* Remove usage of useProjectsQuery in NewOrgForm
* Remove usage of useProjectsQuery in SupportForm -> AIAssistantOption
* Remove usage of useProjectsQuery in PlanUpdateSidePanel
* Remove usage of useProjectsQuery in NoProjectsOnPaidPlan
* Remove useProjectsQuery in IntegrationPanels
* Remove useProjectsQuery from IntegrationPanels 2
* Remove useProjectsQuery from IntegrationConnection
* Remove useProjectsQuery from ProjectLinker, SidePanelVercelProjectLinker, and choose-project
* Clean up
* Remove useProjectsQuery in AwsMarketplaceLinkExistingOrg
* Clean
* chore/projects pagination part 08 (#39355)
Optimize useProjectsQuery for Team settings
* Remove console log
Combines view system and AI generation into a unified PR for better reviewability.
This adds a flexible view system that supports both template selection and
AI-powered table generation variants:
- View config architecture for managing different UI flows
- Template selection via category dropdown
- AI generation with prompt input and quick ideas
- Shared UI components (template lists, navigation)
- API endpoint for AI schema generation using OpenRouter
The view system architecture is justified by supporting both variants with
their distinct UIs while sharing common components.
Related: #38933 (basic templates), #38932 (telemetry tracking)
- Add useAITableGeneration hook for AI-powered table generation
- Implement AI input view with prompt handling and quick ideas
- Add API endpoint for generating table schemas with OpenAI
- Extend view configuration to support AI-specific views
- Update feature flag to support both 'templates' and 'ai' variants
- Add error handling and loading states for AI generation