2368 Commits

Author SHA1 Message Date
nichenqin
41a752aeab feat(link-field): introduce LinkFieldLabel component for enhanced link field representation
- 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.
2026-01-15 08:23:23 +08:00
nichenqin
27011739e9 refactor(schema): update schema validation rules to allow optional fields
- 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.
2026-01-14 22:35:29 +08:00
nichenqin
1b389fb097 feat(tests): add new skills and enhance testing framework
- 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.
2026-01-14 22:35:27 +08:00
nichenqin
e767f9b834 feat(playground): enhance task retry functionality and improve event handling
- 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.
2026-01-14 22:35:27 +08:00
nichenqin
f4816d75bc feat(playground): add Computed Tasks panel and related API routes
- 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.
2026-01-14 22:35:27 +08:00
nichenqin
35ab1cbcd9 feat(playground): implement realtime record synchronization and display
- 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.
2026-01-14 22:35:26 +08:00
nichenqin
47546019ab refactor(playground): replace navigate with Link component in TableMetaPage
- 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.
2026-01-14 22:35:25 +08:00
nichenqin
39d89d7c30 feat(playground): enhance record detail display with field type icons
- 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.
2026-01-14 22:35:25 +08:00
nichenqin
b57e60f7b8 feat(devtools): enhance record management capabilities
- 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.
2026-01-14 22:35:25 +08:00
nichenqin
4a57b62652 feat(playground): add SQL step card with copy functionality
- 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.
2026-01-14 22:35:24 +08:00
nichenqin
a6047c09ff feat(v2): add base APIs and lookup casting
Add base domain, repository, and HTTP handlers with playground base selection and creation UI, and improve lookup computed updates using db field metadata casting.
2026-01-14 22:35:24 +08:00
nichenqin
ab8324d439 fix(playground): enhance RecordCreateDialog and RecordUpdateDialog layout and functionality
- 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.
2026-01-14 22:35:23 +08:00
nichenqin
045da88657 feat(playground): add MetaCheckPanel and enhance playground functionality
- 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.
2026-01-14 22:35:23 +08:00
nichenqin
5620720d5d feat(v2): implement advisory locks for linked records to prevent deadlocks
- 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.
2026-01-14 22:35:23 +08:00
nichenqin
a5494473a5 feat(v2): enhance computed field handling and improve query performance
- 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.
2026-01-14 22:35:23 +08:00
nichenqin
6c3767dd29 feat(v2-devtools): integrate DotTea structure import functionality
- 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.
2026-01-14 22:35:22 +08:00
nichenqin
99bb67b9ee feat(debug-data): introduce read-only debug access and field relationship reporting
- 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.
2026-01-14 22:35:19 +08:00
nichenqin
051185ff76 feat(playground): add database URL management and connection testing
- 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.
2026-01-14 22:35:18 +08:00
nichenqin
e8f1f4f266 feat(v2): implement computed update locks for concurrency control
- 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.
2026-01-14 22:35:18 +08:00
nichenqin
d102d5c7b6 feat(playground): integrate Radix UI context menu and enhance UI components
- 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.
2026-01-14 22:35:18 +08:00
nichenqin
d970fa66d4 feat(v2): explain computed update reasons 2026-01-14 22:35:17 +08:00
nichenqin
848efcd238 fix(playground): only submit dirty fields in update record form
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 22:35:17 +08:00
nichenqin
520627c8d6 chore: update style 2026-01-14 22:35:16 +08:00
nichenqin
534d80f84e feat(v2): introduce new adapter for PostgreSQL table repository
- 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.
2026-01-14 22:35:16 +08:00
nichenqin
ce04efbe80 feat(playground): update styles and enhance UI components
- 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.
2026-01-14 22:35:15 +08:00
nichenqin
b3c34fcca5 feat(v2): integrate command explain functionality with SQL formatting and analysis
- 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.
2026-01-14 22:35:15 +08:00
nichenqin
68a92bf21e feat(v2): add teable-v2-table-template documentation and enhance Playground components with loading 2026-01-14 22:35:12 +08:00
nichenqin
fb0ad85a79 feat(v2): add conditional rollup and lookup options with configuration and condition builder 2026-01-14 22:35:11 +08:00
nichenqin
457d0a2d67 feat(v2): introduce conditional lookup and rollup fields with associated specs and visitors 2026-01-14 22:35:11 +08:00
nichenqin
502a36c0f1 feat(v2): enhance Playground with schema check and record deletion features 2026-01-14 22:35:10 +08:00
nichenqin
c54a77768c feat(v2): implement computed update run tracking and enhance logging capabilities 2026-01-14 22:35:10 +08:00
Boris
a140613397 feat: support v2 API for update and create records 2026-01-14 22:35:10 +08:00
nichenqin
2d459d9dd9 feat(v2): create tables with seed records 2026-01-14 22:35:09 +08:00
nichenqin
ae4011f2b8 feat(v2): implement computed update functionality in record repository 2026-01-14 22:35:09 +08:00
nichenqin
15cd6d0a2c feat(v2): add URL import and pagination for CSV
- 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
2026-01-14 22:35:09 +08:00
nichenqin
4f50f904a5 feat(v2): add CSV import functionality with streaming support
- 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
2026-01-14 22:35:08 +08:00
nichenqin
3aa5ccf5f0 feat(playground): enhance Playground with new field inputs and create record functionality 2026-01-14 22:35:07 +08:00
nichenqin
c3c4d56361 chore(playground): update dependencies and add @tanstack/react-table package 2026-01-14 22:35:07 +08:00
nichenqin
2955f18577 feat(playground): implement DataTable for improved table rendering in TableMetaPage 2026-01-14 22:35:07 +08:00
nichenqin
e53778d0bf fix(playground): update search parameter handling in PlaygroundSidebar component 2026-01-14 22:35:06 +08:00
nichenqin
bec276b7b0 feat: update playground components and enhance table handling with new field options 2026-01-14 22:35:05 +08:00
nichenqin
c8cda153da feat: implement various field types and enhance record condition specifications 2026-01-14 22:35:05 +08:00
nichenqin
a377ab9bf5 feat: add support for new field types 2026-01-14 22:35:04 +08:00
nichenqin
81d500f567 feat: implement RecordFilterMapper for building record condition specifications 2026-01-14 22:35:04 +08:00
nichenqin
a204989c3c chore: delete field 2026-01-14 22:35:04 +08:00
nichenqin
6d639a81f1 feat: enhance memory ports and add new tokens 2026-01-14 22:35:03 +08:00
nichenqin
2988c433f8 refactor: update imports and remove unused KyselyPGlite browser file 2026-01-14 22:35:02 +08:00
nichenqin
b5aae3e16b refactor: replace RegularOrpcProvider with RemoteOrpcProvider and update related components 2026-01-14 22:35:02 +08:00
nichenqin
0a52d40c12 feat: sandbox 2026-01-14 22:35:02 +08:00
nichenqin
009d252ad5 refactor: update specs method usage in various handlers and tests 2026-01-14 22:35:02 +08:00