47 Commits

Author SHA1 Message Date
nichenqin
e9e3b03153 feat(field-dependency): introduce field dependency core package
- Added a new package `@teable/v2-field-dependency-core` to manage field dependencies, including edge-building and parsing functionalities.
- Implemented various utility functions for constructing dependency edges, parsing options, and extracting condition field IDs.
- Created comprehensive tests for the new functionalities, ensuring robust validation of field dependency chains and edge cases.
- Enhanced existing packages to integrate with the new field dependency core, improving overall architecture and maintainability.

These changes establish a foundational structure for managing field dependencies, facilitating better data relationships and computations across the system.
2026-01-14 22:35:29 +08:00
nichenqin
658fa278bc fix(tests): update computed field update tests for step validation
- Adjusted expectations in computed field update tests to reflect changes in the number of steps in various computed plans.
- Updated inline snapshots to ensure they accurately represent the computed steps after recent optimizations.
- Enhanced assertions to verify the presence of rollup and symmetric link steps in computed plans, improving test coverage and reliability.

These changes ensure that the tests accurately validate the behavior of computed field updates in different scenarios.
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
a4e7f59a6a fix(v2): correct tsconfig path alias for adapter-table-repository-postgres
Fix incorrect path alias pointing to non-existent package. This was causing
TypeScript to fail resolving @teable/v2-adapter-table-repository-postgres
imports unless packages were built first.

- adapter-schema-repository-postgres -> adapter-table-repository-postgres

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-01-14 22:35:21 +08:00
nichenqin
14ae0a6d21 fix(v2-computed): track condition filter fields in dependency graph
ConditionalRollup and conditionalLookup fields now correctly register
dependencies on fields referenced in their filter conditions. When these
fields change, the computed field will recalculate.

- Add conditionFieldIds extraction from filter objects
- Create cross_record dependency edges for each condition field
- Update snapshots for new edge counts

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-01-14 22:35:21 +08:00
nichenqin
b3b47541a2 feat(v2-devtools): add tables create and describe-schema commands
- Add tables create command to create tables from JSON schema
- Add tables describe-schema command to output field schema documentation
- Add SchemaChecker service to validate table schemas
- Add TableCreator service to create tables via commandBus
- Fix MockRecordsLive to use transaction for insert (fixes tmp_computed_dirty error)
- Update SKILL.md with new commands documentation

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-01-14 22:35:21 +08:00
nichenqin
c43d2058eb feat(mock-records): add mock data generation capabilities for Teable v2
- 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.
2026-01-14 22:35:19 +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
68a92bf21e feat(v2): add teable-v2-table-template documentation and enhance Playground components with loading 2026-01-14 22:35:12 +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
5445727eec feat(v2): implement delete records and get record by ID endpoints 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
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
0765b4b162 feat(v2): enhance tracing with teable-specific attributes in query and command handlers 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
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
afd48d9d40 feat: create rollup field issue 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
nichenqin
5c75b2951d feat: implement unique field name generation and update logging mechanism 2026-01-14 22:35:02 +08:00
nichenqin
c5711a12b1 feat: rollup field 2026-01-14 22:35:01 +08:00
nichenqin
0d77a524f7 fix: link reference table 2026-01-14 22:35:01 +08:00
nichenqin
ad1b848014 chore: rename packages 2026-01-14 22:35:01 +08:00
nichenqin
a32347891f feat: link field 2026-01-14 22:35:00 +08:00
nichenqin
d22ef8f020 refactor: streamline Postgres table schema handling and enhance architecture documentation 2026-01-14 22:35:00 +08:00
nichenqin
1fdbfb5b37 feat: playground create field ui 2026-01-14 22:34:59 +08:00
nichenqin
778333cf6e feat: create field command 2026-01-14 22:34:59 +08:00
nichenqin
f077f6f278 feat: update table name 2026-01-14 22:34:59 +08:00
nichenqin
8eb8ffa42a refactor: migrate from v2-db-postgres to v2-adapter-db-postgres-pg 2026-01-14 22:34:58 +08:00
nichenqin
7c3ea90624 refactor: update import statements to use 'resolution-mode' and adjust package.json main fields 2026-01-14 22:34:57 +08:00
nichenqin
8e80746f82 feat: support formula field 2026-01-14 22:34:57 +08:00
nichenqin
a4c9163f7d docs: add architecture documentation 2026-01-14 22:34:57 +08:00
nichenqin
4bf6c80704 feat: implement listTables functionality 2026-01-14 22:34:56 +08:00
nichenqin
ea73d469af feat: update package.json to use ES modules and improve TypeScript configurations 2026-01-14 22:34:56 +08:00
nichenqin
31315439d5 feat: get table by id 2026-01-14 22:34:38 +08:00
nichenqin
c65e91e5c4 test: add benchmark test 2026-01-14 22:34:38 +08:00
nichenqin
f6873b853f chore: trace v2 packages 2026-01-14 22:34:38 +08:00
nichenqin
5d023c21eb feat: command & event handler bus 2026-01-14 22:34:38 +08:00
nichenqin
e4e5e2dfd0 feat: v2 core logger 2026-01-14 22:34:38 +08:00
nichenqin
409c82f6da feat: fill all basic field options 2026-01-14 22:34:38 +08:00
nichenqin
6887643307 feat: v2 support all basic type 2026-01-14 22:34:37 +08:00
nichenqin
5b14e62037 refactor: refactoring core and make create table work 2026-01-14 22:34:37 +08:00