- 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.
- 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.
- 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.
- Introduced a new ESLint configuration file to enforce coding standards specific to the command-explain package.
- Added a TypeScript configuration file to support linting and type checking for TypeScript files.
- Updated CreateRecordAnalyzer and UpdateRecordAnalyzer to handle explainAnalyze and explainOnly results more effectively.
- Enhanced SqlExplainRunner to utilize savepoints for better error handling during SQL execution.
- Improved utility functions for managing field dependencies in ComputedUpdateReasonBuilder.
This update enhances code quality and maintainability by integrating ESLint and TypeScript support, while also improving the functionality of SQL explain analysis.
Added missing path alias for @teable/v2-adapter-table-repository-postgres in tsconfig.json to ensure proper TypeScript resolution of imports. This change allows the package to be recognized without requiring prior builds.
Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering)
The DELETE statement was incorrectly quoting schema.table as a single
identifier ("schema.table") instead of properly quoting each part
separately ("schema"."table"), causing EXPLAIN to fail with
"relation does not exist" error.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Introduced a new package for generating mock/fake data for Teable v2 tables.
- Implemented CLI commands for generating test data, seeding tables, and creating sample records.
- Added support for reproducible data generation using seeds and dry-run options for previewing data.
- Enhanced documentation to guide users on how to utilize the mock records generator effectively.
- Integrated with existing dependencies and ensured compatibility with localhost PostgreSQL connections for security.
- 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.
- 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.
- Introduced mechanisms in HybridWithOutboxStrategy and SyncInTransactionStrategy to track updated fields and filter them out in subsequent stages, preventing redundant updates.
- Updated RecordUpdateBuilder to include computed update impact for better propagation planning.
- Refactored related tests to ensure correct behavior of new update logic.
- 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.
- 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.