Commit Graph
170 Commits
Author SHA1 Message Date
Ali Waseem 89e0fe4f28 feature: Explain tab in SQL editor that shows output of explain analyze (#41569)
* wip: explain tab in results editor

* updated to add sql explain

* updated to default back to results

* updated explain function

* updated case with multiple statements

* updated to reset explain query results

* added tests for semi colon comments

* feature: add explain w/ AI on pretty-explain tab (#41588)

* wip: added explain with AI

* wip: updated header with new buttons

* updated prompt

* remove any types

* removed unused flag

* updated header

* formatted code
2025-12-24 10:14:53 -07:00
Ivan Vasilov f3af2c3d3c feat: SQL Snippets (#41112)
* Use the .sql suffix when generating ids.

* Fix a bug where a new snippet would not show up in the snippet list until refresh.

* Add API routes which serve file snippets.

* Refactor the renameSnippet and moveSnippet to work with file snippets.

* Change the link to the SQL Editor.

* Minor fixes from CodeRabbit.

* Check the file/folder name for invalid chars.

* More fixes from CodeRabbit review.

* Fix minor issues.

* Use zod to parse the snippet ids when deleting.

* Try to fix snyk issue.

* Add validation to the GET content index route.

* Minor fixes.

* Show create a new folder, it was hidden by mistake.

* Add SNIPPETS_MANAGEMENT_FOLDER env var.

* Add snippets folder in the docker-compose.

* Add error toasts if the env var is not set.

* Add snippets management folder to the generateLocalEnv script.

* Revert the docker-compose changes, will be done in a followup PR.

* Revert also the snippets volume folder.

* Remove unneeded line.
2025-12-23 12:09:37 +01:00
Ivan VasilovandJoshen Lim a36b65e7a3 fix: Refactor all Table Editor links to include sorts and filters (#41075)
* Possible solution with building the URL from local storage.

* Refactor the local storage for tabs to use table ids.

* Fix the saving table state to local storage.

* Minor fixes.

* Open the correct schema when following the link.

* Minor fixes from CodeRabbit.

* Address charis' feedbacks

* Clean

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-12-18 10:21:09 +01:00
Ali WaseemandJoshen Lim 1f26ac3429 fix: use refs for rows, don't create proxy object for each row (#41445)
* use refs for rows, don't create proxy object for each row

* Update comment

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-12-18 16:15:29 +08:00
Joshen Lim be85bb405f SQL Editor MonacoEditor should invalidate when setSql on debounce called for new snippet (#41422) 2025-12-17 16:34:16 +08:00
Ivan Vasilov 539d5a31fb fix: Sort the folders in the SQL Editor (#41386)
* Sort the folders according to the selected sort approach.

* Minor fixes.

* Minor fixes and clarifications.

* Remove a useEffect dep.
2025-12-17 09:06:44 +01:00
Ivan Vasilov 581ae07120 fix: Hide favourites and share snippets on self-hosted variant (#41227)
* Hide favorite and share actions for self-hosted version.

* Rename the query on save only on platform.

* Simplify useCheckOpenAiKeyQuery.

* Rename with AI now depends if the OPENAI_API_KEY is set.

* Minor fixes.

* Fix the tests to use .skip for skipping tests. Remove extra port params.

* Make the test for favourites work only on platform variant.
2025-12-10 10:12:15 -07:00
Ali WaseemandCharis e7a4ca9b74 Feature: show index advisor in table editor (#41166)
* added table advisor query

* updated to include table editor performance

* updated JSON B

* added side panel

* updated query indexes to show highlights context

* show index advisor in table editor

* updated invalidation logic

* added color updates

* added query indexes

* updated query performance type

* updated overflow and title

* put behind flag

* remove gap

* added on close

* Update apps/studio/data/database/table-index-advisor-query.ts

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* updated styling

---------

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>
2025-12-10 09:28:45 -07:00
Ivan Vasilov 0d5be306ef chore: Bump React Query to v5 (#40174)
* Bump the deps, refactor deprecated code.

* Migrate keepPreviousData usage.

* Migrate all uses of InfiniteQuery.

* Fix refetchInterval in queries.

* Migrate all use of isLoading to isPending in mutations.

* Fix accessing location in claim-project.

* Fix a bug in duplicate query keys.

* Migrate all queries to use isPending.

* Revert "Fix accessing location in claim-project."

This reverts commit 2a07df64b5.

* Revert the rss.xml file to master.
2025-12-10 10:10:29 +01:00
Saxon Fletcher 2fa575113f Fix sidebar param (#40973)
fix sidebar param
2025-12-04 23:00:48 +00:00
Saxon FletcherandJoshen Lim 4569a24928 Fix clone object assistant (#40932)
fix clone object assistant

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-12-01 19:11:55 +10:00
Ali WaseemandJoshen Lim b04e54b38a fix: sentry errors (#40875)
* fix: SUPABASE-APP-90D

* fix: SUPABASE-APP-90C

* fix: SUPABASE-APP-6HC

* fix: SUPABASE-APP-A38

* fix: SUPABASE-APP-9JB

* Improve types for RowContextMenu.tsx

* Improve types for useChartHighlight

* Nit

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-11-28 19:17:07 +08:00
Ivan Vasilov d33fdcb4f2 fix: Refactor the temp API keys creation for oAuth Server apps (#40849)
* Remove the query for temp keys. Remove the query for supabase client. Add a function which creates a supabase client with a temp key.

* Add a new query for building the endpoint URL.

* Migrate all oAuth queries and mutations to use the new function for creating a Supabase project client.

* Use the new queries/mutations in the code.

* Use query in refetchInterval for useProjectSettings.

* Replace all uses in StorageExplorer with createProjectSupabaseClient.
2025-11-26 15:15:51 -07:00
Joshen Lim 8f096b5d7c Chore/fix storage upload sanitize duplicate name (#40813)
* Fix URL when cmd/ctrl clicking files and vector bucket row

* Fix storage upload sanitize duplicate name
2025-11-27 00:39:22 +08:00
Saxon FletcherandAlaister Young cd4d091fc0 Move chat state to project context (#40673)
* global chat manage

* support multiple chats

* multiple chat and initial message

* fix

* fix some issues

* prettier

* prettier

* Update apps/studio/state/ai-assistant-state.tsx

Co-authored-by: Alaister Young <alaister@users.noreply.github.com>

* combine ifs

---------

Co-authored-by: Alaister Young <alaister@users.noreply.github.com>
2025-11-25 15:43:39 +10:00
Ali Waseem 88c5e7cbd4 Fix: updated expiry to be 60 seconds (#40659)
* updated expiry to be 60 seconds

* updated tests

* Updated API
2025-11-20 14:00:11 -07:00
Ali WaseemandIvan Vasilov 3f6f8aa906 Fix: Use storage API for downloading files in the Dashboard (#40592)
* added ability to download files from storage api directly

* updated to rechange size

* updated test methods

* updated test suite

* updated tests

* updated to remove loops

* removed AI slop

* Updated to use single API key in mem

* Fix the memoization of the getOrRefreshTempApiKey function.

* updated imports

* updated imports

* updated to use import meta

---------

Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
2025-11-19 11:56:04 -07:00
Luca ForstnerandJoshen Lim e063783f76 refactor: Send favorite as top level value for user content (#40556)
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-11-19 15:16:58 +01:00
b164da4392 Improve time to FCP for storage files explorer (#40514)
* Improve time to FCP for storage files explorer

* fix: useEffect stale closures

---------

Co-authored-by: Ali Waseem <waseema393@gmail.com>
Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
2025-11-19 16:51:00 +08:00
Ali Waseem d9e5851467 Fix: storage throttle issues when uploading large number of files (#40445)
* WIP: storage key throttling

* updated usage

* added api key validation tets

* removed comments

* updated description
2025-11-14 07:32:01 -07:00
Charis 50a0408e60 fix(table editor): prevent unnecessary update requests (#40192)
Continues on from a0afa9e, reducing the number of unnecessary requests made when table changes are saved.

Currently, when you open the "Edit table" side panel, make zero changes, and click "Save", an unnecessary request runs to:

- Alter the table's comment to its existing comment
- Alter the table's schema to its existing schema
- Alter the table's RLS enable status to its existing RLS enable status

This PR changes the payload so we only alter what has actually changed. It also adds some refactoring to define clearer types and add type safety for the three possible kinds of table save actions (create new, duplicate, update existing).

After this, there are still a few unnecessary column update actions happening on array columns; those will be fixed in a final PR.
2025-11-11 14:54:43 +00:00
Raminder Singh dee40fe1bf feat: add stopping pipeline status in ui (#40294) 2025-11-11 07:01:32 +05:30
Saxon FletcherandAlaister Young 643e544231 default filters and state fix (#40232)
* default filters and state fix

* add created at

* text color

* small simplification

* always unregister sidebar

---------

Co-authored-by: Alaister Young <a@alaisteryoung.com>
2025-11-07 17:33:30 +10:00
c63d2a92a0 Unify Inbox and Advisor (#40026)
* sidebar-manager

* storage keys

* tests

* more ai spots

* test fix

* revert to default

* remove ref

* Update apps/studio/state/sidebar-manager-state.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/studio/components/ui/AIAssistantPanel/AIAssistant.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix ts

* fix

* fux

* fux query param

* clean

* fix

* more

* mock local storage

* simplify

* remove provider test

* remve useopensidebar

* fix(new homepage): open ai assistant on advisor card button clicks

* Update apps/studio/components/layouts/ProjectLayout/LayoutSidebar/index.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/studio/state/sidebar-manager-state.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* refine

* editor sidebar manager

* reset results

* advisor sidebar manager

* empty state and notice

* event tracking

* remove variable

* remove use effect

* open in sidebar

* use sidebar old home

* Update apps/studio/components/ui/EditorPanel/EditorPanel.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* connect hotkey

* Update apps/studio/components/layouts/AppLayout/AssistantButton.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/studio/state/advisor-state.ts

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/studio/state/advisor-state.ts

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* fix

* initial prompt

* fix(inline editor button): only show keyboard shortcut if hotkey active

* cleanup(advisor panel): minor code cleanup

* fix(advisor panel): misplaced key on list

* fix(advisor panel): add error state

* fix(advisor panel): improve a11y

* fix(advisor panel): cannot find selected item

* fix

* fix

* tooltip

* link

* sidebar move up

* merge inbox

* project/org sidebars

* panels

* clean

* fix use effect

* layoutheader export

* fix

* ts

* prettier

* tests

* remove markdown

* remove org and project filters from state

* text link

* Update apps/studio/state/sidebar-manager-state.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix

* prettier

* remove files

* bump limit

* noop

* format

* remove notifications on self hosted

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
Co-authored-by: Alaister Young <alaister@users.noreply.github.com>
2025-11-07 15:01:53 +10:00
Ivan Vasilov 4da5d019ae chore: Migrate some stray queryKeys to the RQ 5 syntax (#40086)
Fix some stray queryKeys.
2025-11-04 09:33:49 +01:00
Joshen Lim 64e3e047eb Final final cleaning up barrel files (#40018)
* Final final cleaning up barrel files

* Fix merge conflict
2025-10-31 14:02:59 +08:00
Joshen Lim b4d38fabd0 Chore/barrel files bye part 05 (#40016)
* Clean up barrel files part 4

* nit

* Part 5 of cleaning up barrel files

* Revert changes for types

* Nit
2025-10-31 13:15:31 +08:00
d10001b7a7 Advisor sidebar manager (#39889)
* sidebar-manager

* storage keys

* tests

* more ai spots

* test fix

* revert to default

* remove ref

* Update apps/studio/state/sidebar-manager-state.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/studio/components/ui/AIAssistantPanel/AIAssistant.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix ts

* fix

* fux

* fux query param

* clean

* fix

* more

* mock local storage

* simplify

* remove provider test

* remve useopensidebar

* fix(new homepage): open ai assistant on advisor card button clicks

* Update apps/studio/components/layouts/ProjectLayout/LayoutSidebar/index.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/studio/state/sidebar-manager-state.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* refine

* editor sidebar manager

* reset results

* advisor sidebar manager

* empty state and notice

* event tracking

* remove variable

* remove use effect

* open in sidebar

* use sidebar old home

* Update apps/studio/components/ui/EditorPanel/EditorPanel.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* connect hotkey

* Update apps/studio/components/layouts/AppLayout/AssistantButton.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/studio/state/advisor-state.ts

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/studio/state/advisor-state.ts

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* fix

* initial prompt

* fix(inline editor button): only show keyboard shortcut if hotkey active

* cleanup(advisor panel): minor code cleanup

* fix(advisor panel): misplaced key on list

* fix(advisor panel): add error state

* fix(advisor panel): improve a11y

* fix(advisor panel): cannot find selected item

* fix

* fix

* tooltip

* link

* sidebar move up

* LayoutSidebarProvider to only sendEvent if in a project

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-10-30 17:43:02 +10:00
e27602f629 Editor sidebar manager (#39834)
* sidebar-manager

* storage keys

* tests

* more ai spots

* test fix

* revert to default

* remove ref

* Update apps/studio/state/sidebar-manager-state.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/studio/components/ui/AIAssistantPanel/AIAssistant.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix ts

* fix

* fux

* fux query param

* clean

* fix

* more

* mock local storage

* simplify

* remove provider test

* remve useopensidebar

* fix(new homepage): open ai assistant on advisor card button clicks

* Update apps/studio/components/layouts/ProjectLayout/LayoutSidebar/index.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/studio/state/sidebar-manager-state.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* refine

* editor sidebar manager

* reset results

* Update apps/studio/components/ui/EditorPanel/EditorPanel.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* connect hotkey

* initial prompt

* fix(editor sidebar): disable hotkey based on user preference

* cleanup(inline editor): add migration for hotkey local storage key

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
2025-10-29 08:45:07 +10:00
738c568e6b Sidebar manager (#39795)
* sidebar-manager

* storage keys

* tests

* more ai spots

* test fix

* revert to default

* remove ref

* Update apps/studio/state/sidebar-manager-state.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/studio/components/ui/AIAssistantPanel/AIAssistant.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix ts

* fix

* fux

* fux query param

* clean

* fix

* more

* mock local storage

* simplify

* remove provider test

* remve useopensidebar

* fix(new homepage): open ai assistant on advisor card button clicks

* Update apps/studio/components/layouts/ProjectLayout/LayoutSidebar/index.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update apps/studio/state/sidebar-manager-state.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* refine

* FIX

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
2025-10-28 10:07:21 +10:00
Ben IsensteinandAli Waseem 5576b37a64 Fix #39827 (#39829)
fix: storage ui failing to authenticate uploads #39827

Co-authored-by: Ali Waseem <waseema393@gmail.com>
2025-10-24 12:08:00 -06:00
Sean Oliver f73ea9bd74 feat: add AI-powered table generation variant (2 of 3) (#38934)
* Add table quickstart with templates and AI generation

Implement table quickstart feature with two variants:
- Template-based: Pre-built schemas across multiple categories (social, ecommerce, content, productivity)
- AI-powered: Generate custom table schemas from natural language prompts

Key features:
- Template selector with category tabs and schema previews
- AI generation using gpt-oss-120b via Bedrock for fast response times
- Streaming responses with real-time table generation
- Quick idea chips for common use cases
- Success feedback and seamless integration with table editor
- Feature flag gated (tableQuickstart) with 7-day new project window
- Comprehensive error handling and retry logic
- ARIA labels and accessibility improvements

Technical implementation:
- Custom React hooks for AI generation and state management
- Zod schema validation for type-safe streaming
- API endpoint with structured object streaming
- localStorage-based dismissal state
- Consistent styling with existing UI patterns

* Refactor and optimize AI table generation

Refactor to use AI SDK streaming with structured object generation:
- Use streamObject() with Zod schema validation for type-safe streaming
- Add 50KB buffer limit to prevent memory issues from oversized responses
- Replace custom stream parsing with Object.assign() for efficient merging
- Use fetchHandler utility for consistent error messages across codebase
- Clean up comments and unused code

* Update quickstart widget styling to match action card

- Changed background from bg-surface-75 to bg-surface-100
- Changed hover background to bg-surface-200
- Applied to AI widget, template widget, and quick idea buttons

* Address PR review feedback

- Persist AI results to localStorage so users can create multiple tables from same generation
- Remove unnecessary isMountedRef checks before synchronous state updates
- Change Quick ideas label to semantic h4 element for accessibility
- Add TODO comment about migrating to experimental_useObject() hook

* Clean up table quickstart implementation

- Match SQL Editor ActionCard styling with circular icons
- Implement smart Generate/Regenerate button logic
- Add tooltips for column counts
- Persist prompt to localStorage
- Fix React hook dependency warnings
- Remove debugging artifacts
2025-10-23 11:35:43 -07:00
Joshen Lim 1f07439ab5 Chore/table editor stay on schema after creating table (#39758)
* Stay on schema after creating a new table if schema is not public

* Small improvement to tab closing behaviour if tab is in focused
2025-10-22 17:16:39 +08:00
Saxon FletcherandCharis 7e6796125c AI model selection (#39472)
* expose model and model selection

* tooltip

* simplify

* Update ai-assistant-state.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>

* Update ModelSelector.tsx

---------

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>
2025-10-17 11:17:43 +10:00
Joshen Lim c111fbab71 Opt to silently swallow 404 error when creating new snippet (#39389)
* Opt to silently swallow 404 error when creating new snippet

* Update comment

* Simplify comment
2025-10-10 10:30:24 +08:00
626eb30e77 Assistant action orientated approach (#38806)
* update onboarding

* update model and fix part issue

* action orientated assistant

* fix tool

* lock

* remove unused filter

* fix tests

* fix again

* update package

* update container

* fix tests

* refactor(ai assistant): break out message markdown and profile picture

* wip

* refactor(ai assistant): break up message component

* refactor: break ai assistant message down into multiple files

* refactor: simplify ReportBlock state

* fix: styling of draggable report block header

When the drag handle is showing, it overlaps with the block header.
Decrease the opacity of the header so the handle can be seen and the two
can be distinguished.

* fix: minor tweaks to tool ui

* refactor: simplify DisplayBlockRenderer state

* fix: remove double deploy button in edge function block

When the confirm footer is shown, the deploy button on the top right should be
hidden (not just disabled) to avoid confusion.

* refactor, test: message sanitization by opt-in level

Refactor the message sanitization to have more type safety and be more testable.
Add tests to ensure:

- Message sanitization always runs on generate-v4
- Message sanitization correctly works by opt-in level

* Fix conflicts in pnpm lock

* Couple of nits and refactors

* Revert casing for report block snippet

* adjust sanitised prompt

* Fix tests

---------

Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-09-29 03:57:36 +00:00
matlinandCharis Lam 172f6ba5fc Improve stability and explicitness of table editor tab state syncing between URL params and local storage (#38931)
* Improve stability and explicitness of table editor tab cache <-> url syncing

* fix: maintain filter state when using nav bar to switch back to Table Editor

---------

Co-authored-by: Charis Lam <26616127+charislam@users.noreply.github.com>
2025-09-23 13:03:56 -05:00
Jordi Enric 25abebc32e a new hope (#38893)
* a new hope

* run tests in ci against cli mode

* summary

* try vercel action to run e2e against studio self hosted preview

* believe

* debug

* gh pages artifact

* test

* rm pages step

* fix automation bypass missing

* continue on error

* only install necessary deps for CI

* fix bypass

* remove

* fail job if test fails

* disable customer query if is_platform false

* vercel check

* fix var name, make comment update instead

* check bypass on runtime

* add env var

* fix tests going to project ref instead of default

* fix

* better dates in comment

* Update E2E test workflow to include flaky test detection and improve summary output

* fix

* fix dumb mistake
2025-09-23 12:02:23 +02:00
Joshen Lim f2ba7f0270 Add self-remediation for orphan prefixes and refactor delete objects to be a singular request (#38753)
* Add self-remediation for orphan prefixes and refactor delete objects to be a singular request

* Update comment

* Update delete prefix

* Smol fix
2025-09-17 14:07:51 +08:00
Joshen LimandJordi Enric deda982074 Chore/refactor dashboard history logic (#38586)
* Shift dashboard history logic outside of app state, into its own hook

* Self remediate malformed history for sql editor

* Update apps/studio/hooks/misc/useDashboardHistory.ts

Co-authored-by: Jordi Enric <37541088+jordienr@users.noreply.github.com>

* Update apps/studio/hooks/misc/useDashboardHistory.ts

Co-authored-by: Jordi Enric <37541088+jordienr@users.noreply.github.com>

---------

Co-authored-by: Jordi Enric <37541088+jordienr@users.noreply.github.com>
2025-09-10 22:19:08 +08:00
Danny White 7e44382aec docs: storage limits (#38392)
* simply API key pills

* add tooltip to other copy button

* consistent destructive dropdown icon

* design system documentation

* update docs and naming for storage settings

* fix: remove unrelated commits

* copywriting tweaks
2025-09-03 15:33:25 +10:00
Joshen Lim da9f501013 Add comment to remove case check (#38355) 2025-09-01 23:50:59 +07:00
Riccardo Busetti 77356bf946 feat(replication): Significantly improve the replication UI behavior (#38237) 2025-08-29 12:20:51 +02:00
Jordi Enric 4328d376c0 storage explorer: fix validation in folder creation (#38033)
* fix validation

* fix crash
2025-08-19 13:16:39 +00:00
Ivan Vasilov e194c045c6 Fix: Use the state.editable instead of the semi-global editable variable in Table state (#37918)
Use the state.editable instead of the semi-global editable variable.
2025-08-14 11:01:11 +07:00
CharisandJoshen Lim e8a19faa03 feat: drop file to import data in Table Editor (#37888)
* feat: drop file to import data

In the Table Editor for an empty table, make the entire grid area a
dropzone so that files can be dropped onto the grid area for importing.
Dropping a file opens the SpreadsheetImport side panel with the dropped
file already loaded.

* refactor: drag and drop file import

Refactor logic into hooks and utility functions

* refactor: file drop import

Small changes caught in code review

* Opt to pass file through valtio store instead of event listener

* refactor: telemetry properties + cleaning up hook deps

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-08-13 11:32:06 -04:00
7e367daf73 feat: use temporary api keys for storage explorer (#37696)
* feat: use temporary api keys for storage explorer

* Remove service key from storage explorer store + some minor UI nits

* Address TS

* Another TS

* Update

* Use temp API keys in realtime inspector (#37740)

* Use temp API keys in realtime inspector

* Fix

* fix: typo from github web ui…

* fix: opps

* fix: missing import

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
Co-authored-by: Cemal Kılıç <cemalkilic@users.noreply.github.com>
Co-authored-by: Cemal Kilic <cemalkilic96@gmail.com>
2025-08-12 11:40:45 +02:00
TaishiandJoshen Lim 2976d572e1 Implement message editing functionality in AI Assistant (#37603)
* Implement message editing functionality in AIAssistant

* add functionality to delete messages in AI Assistant chat in assistant state

* remove duplicated `text-xs` class

* add a 'group' class for improved styling and refining action button visibility on hover

* Refine action button visibility in AIAssistantPanel to show only for user messages on hover, improving user experience.

* remove `"` from the message to edit

* Enhance editing message display in AIAssistantPanel by updating styling for improved visibility and user experience.

* Refactor AIAssistantPanel state management by simplifying original message content initialization and clarifying comments for better code readability.

* clean up action button rendering in AIAssistantPanel message component

* adjust the chat message layout (space)

* simplify the editing mode message

* show the edit button even when user is already in the edit mode

* Update AssistantChatForm styling for editing mode, positioning the editing message above the input field without changing the layout

* use `ButtonTooltip` for edit button to show tooltip

* simplify the condiiton to show the edit buton

* delete unnecessary `originalMessageContent` state variable

* delete `confirmEdit` and move its logic into `sendMessageToAssistant`

* add `strokeWidth={1.5}` to `Pencil` icon

* add `opacity-50` to any messages that are after the message being edited, and it cancels the edit when those messages are clicked

* add a pulse animation to the user’s message being edited

* add more space between mesages and `AssistantChatForm`

* add framer-motion animation to `Editing message` element

* cancel editing when a user clicks the edit button again or the edit button in subsequent messages

* add Pencil icon to AIAssistantPanel component and fixed duplicated tailwind class

* Update AIAssistantPanel to use the Pencil icon

* Refactor AIAssistant to set editing message content from text parts

* Minor changes

* nit

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-08-12 15:02:52 +07:00
Joshen Lim 4418e6df19 Chore/align bucket and object naming validation with storage api (#37854)
* Align bucket naming validation

* Align folder naming validation

* Remove description
2025-08-12 14:01:34 +07:00
Ivan Vasilov ec6b7709d7 fix: Handle a race condition with permissions API and the cell editors in the Table Editor (#37837)
* When updating the editable flag, the grid columns need to be recreated.

* Remove reference to gridColumn since it's the same reference as the passed in column.
2025-08-12 12:19:00 +07:00