- Added a new `LinkFieldLabel` component to display link fields with their relationship and direction labels.
- Integrated `LinkFieldLabel` into various components including `MetaCheckPanel`, `PlaygroundRecordRoute`, `RecordCreateDialog`, and `SchemaCheckPanel` to improve the user interface for link fields.
- Updated related components to handle optional relationship and direction properties, ensuring accurate display of link field information.
These changes enhance the clarity and usability of link fields across the application, providing users with better context and understanding of their relationships.
- Changed the `required` property of several schema rules from `true` to `false`, allowing for more flexibility in schema definitions.
- Updated the `SchemaChecker` logic to yield warnings for optional rules when dependencies are not satisfied, enhancing error handling.
- Modified the `StatusBadge` component to reflect a more accurate status label for errors, changing 'Error' to 'Fatal'.
- Improved test coverage for schema validation scenarios, ensuring that both required and optional fields are correctly validated.
These changes enhance the schema validation process, making it more adaptable to various use cases while maintaining clarity in error reporting.
- Introduced several new skills for the Teable v2 framework, including `teable-v2-devtools`, `teable-v2-package-guide`, `teable-v2-table-template`, and `teable-v2-test-debug`, providing comprehensive documentation and usage guidelines.
- Updated the GitHub Actions workflow to improve unit testing processes, including parallel execution and enhanced reporting.
- Added new end-to-end tests for computed fields, formulas, and link operations, ensuring robust validation of functionality across various scenarios.
- Enhanced the Playground components to support new features and improve user experience, including better handling of explain results and metadata display.
These changes significantly enhance the testing capabilities and documentation for the Teable v2 framework, improving developer experience and code reliability.
- Added a non-blocking worker dispatch for retrying tasks in the computed tasks API, allowing for immediate response while processing tasks in the background.
- Introduced a yieldToEventLoop function in the SSE handler to improve responsiveness by yielding control back to the event loop, enhancing the streaming experience.
- Updated the IDomainEvent interface and related event classes to include an optional requestId for better tracing of request flows through the event bus.
These changes improve the efficiency and traceability of task management and event handling within the playground, enhancing overall user experience.
- Introduced a new ComputedTasksPanel component for displaying computed task statuses and details.
- Created API routes for managing computed tasks, including retrying tasks, fetching dead letters, and handling outbox tasks.
- Updated PlaygroundShell to include a link to the new Computed Tasks section, enhancing navigation within the playground.
- Enhanced the database schema to support trace data for computed updates, improving tracking and debugging capabilities.
These changes significantly enhance the functionality of the playground by providing users with a comprehensive view and management options for computed tasks.
- Added support for realtime record subscriptions in PlaygroundRecordRoute and PlaygroundTableRoute, allowing for live updates of record data.
- Introduced RealtimeRecordCard and RealtimeStatusBadge components to display the status and details of realtime records.
- Enhanced the caching mechanism to sync realtime data with TanStack Query, ensuring that updates are reflected in the UI seamlessly.
- Updated TableMetaPage to include realtime record snapshots, status, and error handling, improving the overall user experience in the playground.
These changes significantly enhance the interactivity and responsiveness of the playground, providing users with real-time insights into record data.
- Updated TableMetaPage to use the Link component from react-router instead of the navigate function for record navigation.
- Removed the handleOpenRecord function and adjusted the button to a Link for improved routing and user experience.
- This change enhances the clarity of navigation within the playground component, aligning with best practices for routing in React applications.
- Integrated field type icons into the RecordDetailCard component for improved visual representation of fields.
- Updated the layout to include icons alongside field names, enhancing user experience and clarity in data presentation.
These changes improve the usability of the playground by providing a more informative and visually appealing record detail view.
- Added commands for creating, updating, and deleting records via the application layer, improving data manipulation options.
- Updated the records command group to include new subcommands for record mutations, enhancing usability.
- Introduced a RecordMutation service to handle record operations, streamlining the process and improving code organization.
These changes significantly enhance the functionality of the devtools, allowing for more comprehensive record management.
- Introduced SqlStepCard component to display SQL execution steps with detailed information and copy functionality for SQL and parameters.
- Enhanced SqlBlock component to include a copy button for formatted SQL, improving user experience.
- Removed redundant code from ExplainResultPanel, streamlining the component structure.
These changes enhance the usability of the playground by allowing users to easily copy SQL steps and parameters.
Add base domain, repository, and HTTP handlers with playground base selection and creation UI, and improve lookup computed updates using db field metadata casting.
- Updated RecordCreateDialog and RecordUpdateDialog components to improve layout responsiveness and user experience.
- Modified dialog content to ensure proper flexbox usage, allowing for better handling of dynamic content.
- Enhanced normalization logic for select field values in RecordUpdateDialog, improving data handling for both single and multiple select fields.
- Updated instructional text for clarity in RecordCreateDialog.
These changes enhance the usability and functionality of the record creation and update dialogs in the playground.
- Introduced MetaCheckPanel component for validating metadata in the playground, providing visual feedback on schema and reference issues.
- Updated PlaygroundShell and PlaygroundTableRoute to integrate new database connection handling and local storage management.
- Enhanced TableMetaPage to include a new 'meta' tab for displaying metadata validation results.
- Implemented API endpoint for streaming meta check results, improving user experience during metadata validation.
- Refactored various components to improve layout and responsiveness, ensuring a better user interface.
These changes significantly enhance the playground's capabilities for managing and validating metadata, improving overall usability and functionality.
- Added support for advisory locks on linked records during insert and update operations to prevent deadlocks in concurrent transactions.
- Introduced new types and utility functions for managing linked record locks, enhancing the overall reliability of database operations.
- Updated relevant components and analyzers to incorporate linked record lock information in explain results.
- Added end-to-end tests to verify the effectiveness of advisory locks in preventing deadlocks during concurrent operations.
These changes significantly improve the robustness of the system when handling linked records in a multi-transaction environment.
- Added support for dirty record filtering in ComputedTableRecordQueryBuilder, allowing for INNER JOIN with the dirty table to optimize query planning.
- Updated ComputedFieldUpdater and UpdateFromSelectBuilder to utilize the new dirty filter configuration, ensuring efficient record updates.
- Enhanced RecordUpdateDialog to normalize select field values, improving data handling for single and multiple select fields.
- Added tests to verify the correct application of dirty filters and the order of record insertions.
These changes improve the performance and reliability of computed field updates and enhance the overall developer experience.
- Introduced a new command for importing .tea structures into the devtools, enhancing the ability to manage table and field definitions.
- Added DotTeaImporter service to handle the import process, ensuring validation and normalization of the structure.
- Updated the AppLayer to include the new DotTeaImporter, allowing for seamless integration within the existing command structure.
- Enhanced documentation to reflect the new command and its usage.
This update significantly improves the developer experience by enabling easy import of DotTea structures, streamlining the setup of table schemas.
- Added a new package for debug data access, providing read-only access to base/table/field metadata.
- Implemented field relationship reporting using dependency graph data.
- Created CLI for executing debug queries and generating reports.
- Established service and adapter layers for metadata and field relation graph access.
- Integrated with existing core services and updated dependency management.
- Enhanced documentation and architecture notes for clarity on package responsibilities.
- Implemented a dialog for setting and testing a PostgreSQL database URL in the Playground.
- Introduced local storage management for persisting the database URL across sessions.
- Enhanced the SchemaCheckPanel to utilize the database URL for schema validation.
- Added API endpoint for checking database connection validity.
- Updated UI components to reflect database connection status and provide user feedback.
- Refactored related components to support the new database URL functionality.
- Introduced advisory locks for computed updates to manage concurrency, preventing conflicts during record updates.
- Added configuration options for lock settings, including maximum record locks and lock modes.
- Enhanced the ComputedFieldUpdater to acquire locks before executing update plans, ensuring serialized access to resources.
- Updated explain command analyzers to include computed update lock information in the output.
- Added utility functions to build and manage lock information for better integration with existing explain functionality.
- Enhanced tests for the ComputedUpdateWorker and related components to validate lock behavior and ensure correct handling of concurrent updates.
- Added a new context menu component using Radix UI for improved user interactions in the playground.
- Updated various UI components to utilize the new context menu, including data tables and sidebar elements.
- Enhanced styling and layout of the playground header, base page, and table cards for better visual consistency.
- Introduced new dependencies for context menu functionality and updated existing packages to ensure compatibility.
- Added a new adapter for PostgreSQL table repository, including necessary configurations and types.
- Implemented various utility functions and query builders to enhance database interactions.
- Updated existing packages to integrate with the new adapter, ensuring compatibility and improved functionality.
- Removed obsolete files and configurations from the previous adapter to streamline the codebase.
- Refactored CSS variables for improved color consistency and accessibility.
- Introduced new background patterns and glassmorphism effects in styles.
- Updated UI components in PlaygroundShell, ExplainResultPanel, and TableMetaPage for better visual hierarchy and responsiveness.
- Enhanced DataTable with pinned column support and improved styling.
- Added animations for various UI elements to enhance user experience.
- Improved ScrollArea component to support horizontal and vertical scrolling.
- Added `sql-formatter` dependency for SQL formatting.
- Implemented `ExplainResultPanel` component for displaying SQL explain results.
- Enhanced `RecordCreateDialog` and `RecordUpdateDialog` to include explain functionality.
- Introduced command explain service and analyzers for create, update, and delete operations.
- Updated HTTP contract to include explain endpoints for create, update, and delete commands.
- Registered command explain module in the container node setup.
- Add URL source type to CsvSource for streaming CSV import from remote URLs
- Implement parseAsync method with fetch + ReadableStream for true streaming
- Add createRecordsStreamAsync for async record batch creation
- Support AsyncIterable in insertManyStream for async batches
- Add pagination support to listTableRecords endpoint (limit/offset)
- Update ImportCsvDialog with tabs for file upload and URL import modes
- Add all v2 packages to playground vite.config for source imports
- Add CreateRecordsStreamCommand/Handler for batch record creation
- Add ImportCsvCommand/Handler for CSV file import with auto table creation
- Add ICsvParser port and PapaparseCsvParser adapter
- Add insertManyStream to ITableRecordRepository for streaming inserts
- Add internal batching to PostgresTableRecordRepository.insertMany to bypass PG param limit
- Add Table.createRecordsStream() generator for memory-efficient batch creation
- Register csvParser in browser, node, and test containers
- Add ImportCsvDialog component in Playground UI
- Add importCsv endpoint to contract-http and ORPC router
- Add e2e tests for CSV import (10 test cases)
- Add benchmark tests for streaming vs non-streaming record creation