@mastra/lance 1.0.4-alpha.0 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @mastra/lance
2
2
 
3
+ ## 1.0.4
4
+
5
+ ### Patch Changes
6
+
7
+ - Added resilient column handling to insert and update operations. Unknown columns in records are now silently dropped instead of causing SQL errors, ensuring forward compatibility when newer domain packages add fields that haven't been migrated yet. ([#14021](https://github.com/mastra-ai/mastra/pull/14021))
8
+
9
+ For example, calling `db.insert({ tableName, record: { id: '1', title: 'Hello', futureField: 'value' } })` will silently ignore `futureField` if it doesn't exist in the database table, rather than throwing. The same applies to `update` — unknown fields in the data payload are dropped before building the SQL statement.
10
+
11
+ - Improved semantic recall performance for large message histories. Semantic recall no longer loads entire threads when only the recalled messages are needed, eliminating delays that previously scaled with total message count. (Fixes #11702) ([#14022](https://github.com/mastra-ai/mastra/pull/14022))
12
+
13
+ - Updated dependencies [[`4f71b43`](https://github.com/mastra-ai/mastra/commit/4f71b436a4a6b8839842d8da47b57b84509af56c), [`a070277`](https://github.com/mastra-ai/mastra/commit/a07027766ce195ba74d0783116d894cbab25d44c), [`b628b91`](https://github.com/mastra-ai/mastra/commit/b628b9128b372c0f54214d902b07279f03443900), [`332c014`](https://github.com/mastra-ai/mastra/commit/332c014e076b81edf7fe45b58205882726415e90), [`6b63153`](https://github.com/mastra-ai/mastra/commit/6b63153878ea841c0f4ce632ba66bb33e57e9c1b), [`4246e34`](https://github.com/mastra-ai/mastra/commit/4246e34cec9c26636d0965942268e6d07c346671), [`b8837ee`](https://github.com/mastra-ai/mastra/commit/b8837ee77e2e84197609762bfabd8b3da326d30c), [`866cc2c`](https://github.com/mastra-ai/mastra/commit/866cc2cb1f0e3b314afab5194f69477fada745d1), [`5d950f7`](https://github.com/mastra-ai/mastra/commit/5d950f7bf426a215a1808f0abef7de5c8336ba1c), [`28c85b1`](https://github.com/mastra-ai/mastra/commit/28c85b184fc32b40f7f160483c982da6d388ecbd), [`e9a08fb`](https://github.com/mastra-ai/mastra/commit/e9a08fbef1ada7e50e961e2f54f55e8c10b4a45c), [`1d0a8a8`](https://github.com/mastra-ai/mastra/commit/1d0a8a8acf33203d5744fc429b090ad8598aa8ed), [`631ffd8`](https://github.com/mastra-ai/mastra/commit/631ffd82fed108648b448b28e6a90e38c5f53bf5), [`6bcbf8a`](https://github.com/mastra-ai/mastra/commit/6bcbf8a6774d5a53b21d61db8a45ce2593ca1616), [`aae2295`](https://github.com/mastra-ai/mastra/commit/aae2295838a2d329ad6640829e87934790ffe5b8), [`aa61f29`](https://github.com/mastra-ai/mastra/commit/aa61f29ff8095ce46a4ae16e46c4d8c79b2b685b), [`7ff3714`](https://github.com/mastra-ai/mastra/commit/7ff37148515439bb3be009a60e02c3e363299760), [`18c3a90`](https://github.com/mastra-ai/mastra/commit/18c3a90c9e48cf69500e308affeb8eba5860b2af), [`41d79a1`](https://github.com/mastra-ai/mastra/commit/41d79a14bd8cb6de1e2565fd0a04786bae2f211b), [`f35487b`](https://github.com/mastra-ai/mastra/commit/f35487bb2d46c636e22aa71d90025613ae38235a), [`6dc2192`](https://github.com/mastra-ai/mastra/commit/6dc21921aef0f0efab15cd0805fa3d18f277a76f), [`eeb3a3f`](https://github.com/mastra-ai/mastra/commit/eeb3a3f43aca10cf49479eed2a84b7d9ecea02ba), [`e673376`](https://github.com/mastra-ai/mastra/commit/e6733763ad1321aa7e5ae15096b9c2104f93b1f3), [`05f8d90`](https://github.com/mastra-ai/mastra/commit/05f8d9009290ce6aa03428b3add635268615db85), [`b2204c9`](https://github.com/mastra-ai/mastra/commit/b2204c98a42848bbfb6f0440f005dc2b6354f1cd), [`a1bf1e3`](https://github.com/mastra-ai/mastra/commit/a1bf1e385ed4c0ef6f11b56c5887442970d127f2), [`b6f647a`](https://github.com/mastra-ai/mastra/commit/b6f647ae2388e091f366581595feb957e37d5b40), [`0c57b8b`](https://github.com/mastra-ai/mastra/commit/0c57b8b0a69a97b5a4ae3f79be6c610f29f3cf7b), [`b081f27`](https://github.com/mastra-ai/mastra/commit/b081f272cf411716e1d6bd72ceac4bcee2657b19), [`4b8da97`](https://github.com/mastra-ai/mastra/commit/4b8da97a5ce306e97869df6c39535d9069e563db), [`0c09eac`](https://github.com/mastra-ai/mastra/commit/0c09eacb1926f64cfdc9ae5c6d63385cf8c9f72c), [`6b9b93d`](https://github.com/mastra-ai/mastra/commit/6b9b93d6f459d1ba6e36f163abf62a085ddb3d64), [`31b6067`](https://github.com/mastra-ai/mastra/commit/31b6067d0cc3ab10e1b29c36147f3b5266bc714a), [`797ac42`](https://github.com/mastra-ai/mastra/commit/797ac4276de231ad2d694d9aeca75980f6cd0419), [`0bc289e`](https://github.com/mastra-ai/mastra/commit/0bc289e2d476bf46c5b91c21969e8d0c6864691c), [`9b75a06`](https://github.com/mastra-ai/mastra/commit/9b75a06e53ebb0b950ba7c1e83a0142047185f46), [`4c3a1b1`](https://github.com/mastra-ai/mastra/commit/4c3a1b122ea083e003d71092f30f3b31680b01c0), [`256df35`](https://github.com/mastra-ai/mastra/commit/256df3571d62beb3ad4971faa432927cc140e603), [`85cc3b3`](https://github.com/mastra-ai/mastra/commit/85cc3b3b6f32ae4b083c26498f50d5b250ba944b), [`97ea28c`](https://github.com/mastra-ai/mastra/commit/97ea28c746e9e4147d56047bbb1c4a92417a3fec), [`d567299`](https://github.com/mastra-ai/mastra/commit/d567299cf81e02bd9d5221d4bc05967d6c224161), [`716ffe6`](https://github.com/mastra-ai/mastra/commit/716ffe68bed81f7c2690bc8581b9e140f7bf1c3d), [`8296332`](https://github.com/mastra-ai/mastra/commit/8296332de21c16e3dfc3d0b2d615720a6dc88f2f), [`4df2116`](https://github.com/mastra-ai/mastra/commit/4df211619dd922c047d396ca41cd7027c8c4c8e7), [`2219c1a`](https://github.com/mastra-ai/mastra/commit/2219c1acbd21da116da877f0036ffb985a9dd5a3), [`17c4145`](https://github.com/mastra-ai/mastra/commit/17c4145166099354545582335b5252bdfdfd908b)]:
14
+ - @mastra/core@1.11.0
15
+
3
16
  ## 1.0.4-alpha.0
4
17
 
5
18
  ### Patch Changes
@@ -3,7 +3,7 @@ name: mastra-lance
3
3
  description: Documentation for @mastra/lance. Use when working with @mastra/lance APIs, configuration, or implementation.
4
4
  metadata:
5
5
  package: "@mastra/lance"
6
- version: "1.0.4-alpha.0"
6
+ version: "1.0.4"
7
7
  ---
8
8
 
9
9
  ## When to use
@@ -16,12 +16,12 @@ Read the individual reference documents for detailed explanations and code examp
16
16
 
17
17
  ### Docs
18
18
 
19
- - [Storing Embeddings in A Vector Database](references/docs-rag-vector-databases.md) - Guide on vector storage options in Mastra, including embedded and dedicated vector databases for similarity search.
19
+ - [Storing embeddings in a vector database](references/docs-rag-vector-databases.md) - Guide on vector storage options in Mastra, including embedded and dedicated vector databases for similarity search.
20
20
 
21
21
  ### Reference
22
22
 
23
- - [Reference: LanceDB Storage](references/reference-storage-lance.md) - Documentation for the LanceDB storage implementation in Mastra.
24
- - [Reference: Lance Vector Store](references/reference-vectors-lance.md) - Documentation for the LanceVectorStore class in Mastra, which provides vector search using LanceDB, an embedded vector database based on the Lance columnar format.
23
+ - [Reference: LanceDB storage](references/reference-storage-lance.md) - Documentation for the LanceDB storage implementation in Mastra.
24
+ - [Reference: Lance vector store](references/reference-vectors-lance.md) - Documentation for the LanceVectorStore class in Mastra, which provides vector search using LanceDB, an embedded vector database based on the Lance columnar format.
25
25
 
26
26
 
27
27
  Read [assets/SOURCE_MAP.json](assets/SOURCE_MAP.json) for source code references.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.4-alpha.0",
2
+ "version": "1.0.4",
3
3
  "package": "@mastra/lance",
4
4
  "exports": {},
5
5
  "modules": {}
@@ -1,8 +1,8 @@
1
- # Storing Embeddings in A Vector Database
1
+ # Storing embeddings in a vector database
2
2
 
3
3
  After generating embeddings, you need to store them in a database that supports vector similarity search. Mastra provides a consistent interface for storing and querying embeddings across various vector databases.
4
4
 
5
- ## Supported Databases
5
+ ## Supported databases
6
6
 
7
7
  **MongoDB**:
8
8
 
@@ -234,7 +234,7 @@ await store.upsert({
234
234
  })
235
235
  ```
236
236
 
237
- **ElasticSearch**:
237
+ **Elasticsearch**:
238
238
 
239
239
  ```ts
240
240
  import { ElasticSearchVector } from '@mastra/elasticsearch'
@@ -337,7 +337,7 @@ await store.upsert({
337
337
  })
338
338
  ```
339
339
 
340
- ## Using Vector Storage
340
+ ## Using vector storage
341
341
 
342
342
  Once initialized, all vector stores share the same interface for creating indexes, upserting embeddings, and querying.
343
343
 
@@ -355,9 +355,9 @@ await store.createIndex({
355
355
 
356
356
  The dimension size must match the output dimension of your chosen embedding model. Common dimension sizes are:
357
357
 
358
- - OpenAI text-embedding-3-small: 1536 dimensions (or custom, e.g., 256)
359
- - Cohere embed-multilingual-v3: 1024 dimensions
360
- - Google gemini-embedding-001: 768 dimensions (or custom)
358
+ - `OpenAI text-embedding-3-small`: 1536 dimensions (or custom, e.g., 256)
359
+ - `Cohere embed-multilingual-v3`: 1024 dimensions
360
+ - `Google gemini-embedding-001`: 768 dimensions (or custom)
361
361
 
362
362
  > **Warning:** Index dimensions can't be changed after creation. To use a different model, delete and recreate the index with the new dimension size.
363
363
 
@@ -490,7 +490,7 @@ Index names must:
490
490
  - Example: `My_Index` is not valid (contains uppercase letters)
491
491
  - Example: `_myindex` is not valid (begins with underscore)
492
492
 
493
- **ElasticSearch**:
493
+ **Elasticsearch**:
494
494
 
495
495
  Index names must:
496
496
 
@@ -543,7 +543,7 @@ The upsert operation:
543
543
  - Creates new vectors if they don't exist
544
544
  - Automatically handles batching for large datasets
545
545
 
546
- ## Adding Metadata
546
+ ## Adding metadata
547
547
 
548
548
  Vector stores support rich metadata (any JSON-serializable fields) for filtering and organization. Since metadata is stored with no fixed schema, use consistent field naming to avoid unexpected query results.
549
549
 
@@ -581,7 +581,7 @@ Key metadata considerations:
581
581
  - Only include fields you plan to filter or sort by - extra fields add overhead
582
582
  - Add timestamps (e.g., 'createdAt', 'lastUpdated') to track content freshness
583
583
 
584
- ## Deleting Vectors
584
+ ## Deleting vectors
585
585
 
586
586
  When building RAG applications, you often need to clean up stale vectors when documents are deleted or updated. Mastra provides the `deleteVectors` method that supports deleting vectors by metadata filters, making it straightforward to remove all embeddings associated with a specific document.
587
587
 
@@ -637,7 +637,7 @@ await store.deleteVectors({
637
637
  })
638
638
  ```
639
639
 
640
- ## Best Practices
640
+ ## Best practices
641
641
 
642
642
  - Create indexes before bulk insertions
643
643
  - Use batch operations for large insertions (the upsert method handles batching automatically)
@@ -1,4 +1,4 @@
1
- # LanceDB Storage
1
+ # LanceDB storage
2
2
 
3
3
  The LanceDB storage implementation provides a high-performance storage solution using the LanceDB database system, which excels at handling both traditional data storage and vector operations.
4
4
 
@@ -51,7 +51,7 @@ const storage = await LanceStorage.create('my-storage', 's3://bucket/db', {
51
51
 
52
52
  ## Parameters
53
53
 
54
- ### LanceStorage.create()
54
+ ### `LanceStorage.create()`
55
55
 
56
56
  **name** (`string`): Name identifier for the storage instance
57
57
 
@@ -59,7 +59,7 @@ const storage = await LanceStorage.create('my-storage', 's3://bucket/db', {
59
59
 
60
60
  **options** (`ConnectionOptions`): Connection options for LanceDB, such as timeout settings, authentication, etc.
61
61
 
62
- ## Additional Notes
62
+ ## Additional notes
63
63
 
64
64
  ### Schema Management
65
65
 
@@ -1,8 +1,8 @@
1
- # Lance Vector Store
1
+ # Lance vector store
2
2
 
3
3
  The LanceVectorStore class provides vector search using [LanceDB](https://lancedb.github.io/lancedb/), an embedded vector database built on the Lance columnar format. It offers efficient storage and fast similarity search for both local development and production deployments.
4
4
 
5
- ## Factory Method
5
+ ## Factory method
6
6
 
7
7
  The LanceVectorStore uses a factory pattern for creation. You should use the static `create()` method rather than the constructor directly.
8
8
 
@@ -10,7 +10,7 @@ The LanceVectorStore uses a factory pattern for creation. You should use the sta
10
10
 
11
11
  **options** (`ConnectionOptions`): Additional connection options for LanceDB
12
12
 
13
- ## Constructor Examples
13
+ ## Constructor examples
14
14
 
15
15
  You can create a `LanceVectorStore` instance using the static create method:
16
16
 
@@ -31,7 +31,7 @@ const s3Store = await LanceVectorStore.create('s3://bucket/db', {
31
31
 
32
32
  ## Methods
33
33
 
34
- ### createIndex()
34
+ ### `createIndex()`
35
35
 
36
36
  **tableName** (`string`): Name of the table to create index in
37
37
 
@@ -43,7 +43,7 @@ const s3Store = await LanceVectorStore.create('s3://bucket/db', {
43
43
 
44
44
  **indexConfig** (`LanceIndexConfig`): Index configuration (Default: `{ type: 'hnsw' }`)
45
45
 
46
- #### LanceIndexConfig
46
+ #### `LanceIndexConfig`
47
47
 
48
48
  **type** (`'ivfflat' | 'hnsw'`): Index type (Default: `hnsw`)
49
49
 
@@ -61,7 +61,7 @@ const s3Store = await LanceVectorStore.create('s3://bucket/db', {
61
61
 
62
62
  **hnsw\.efConstruction** (`number`): Build-time complexity (default: 100)
63
63
 
64
- ### createTable()
64
+ ### `createTable()`
65
65
 
66
66
  **tableName** (`string`): Name of the table to create
67
67
 
@@ -69,7 +69,7 @@ const s3Store = await LanceVectorStore.create('s3://bucket/db', {
69
69
 
70
70
  **options** (`Partial<CreateTableOptions>`): Additional table creation options
71
71
 
72
- ### upsert()
72
+ ### `upsert()`
73
73
 
74
74
  **tableName** (`string`): Name of the table to upsert vectors into
75
75
 
@@ -79,7 +79,7 @@ const s3Store = await LanceVectorStore.create('s3://bucket/db', {
79
79
 
80
80
  **ids** (`string[]`): Optional vector IDs (auto-generated if not provided)
81
81
 
82
- ### query()
82
+ ### `query()`
83
83
 
84
84
  **tableName** (`string`): Name of the table to query
85
85
 
@@ -95,7 +95,7 @@ const s3Store = await LanceVectorStore.create('s3://bucket/db', {
95
95
 
96
96
  **includeAllColumns** (`boolean`): Whether to include all columns in the result (Default: `false`)
97
97
 
98
- ### listTables()
98
+ ### `listTables()`
99
99
 
100
100
  Returns an array of table names as strings.
101
101
 
@@ -104,25 +104,25 @@ const tables = await vectorStore.listTables()
104
104
  // ['my_vectors', 'embeddings', 'documents']
105
105
  ```
106
106
 
107
- ### getTableSchema()
107
+ ### `getTableSchema()`
108
108
 
109
109
  **tableName** (`string`): Name of the table to describe
110
110
 
111
111
  Returns the schema of the specified table.
112
112
 
113
- ### deleteTable()
113
+ ### `deleteTable()`
114
114
 
115
115
  **tableName** (`string`): Name of the table to delete
116
116
 
117
- ### deleteAllTables()
117
+ ### `deleteAllTables()`
118
118
 
119
119
  Deletes all tables in the database.
120
120
 
121
- ### listIndexes()
121
+ ### `listIndexes()`
122
122
 
123
123
  Returns an array of index names as strings.
124
124
 
125
- ### describeIndex()
125
+ ### `describeIndex()`
126
126
 
127
127
  **indexName** (`string`): Name of the index to describe
128
128
 
@@ -143,11 +143,11 @@ interface IndexStats {
143
143
  }
144
144
  ```
145
145
 
146
- ### deleteIndex()
146
+ ### `deleteIndex()`
147
147
 
148
148
  **indexName** (`string`): Name of the index to delete
149
149
 
150
- ### updateVector()
150
+ ### `updateVector()`
151
151
 
152
152
  Update a single vector by ID or by metadata filter. Either `id` or `filter` must be provided, but not both.
153
153
 
@@ -159,13 +159,13 @@ Update a single vector by ID or by metadata filter. Either `id` or `filter` must
159
159
 
160
160
  **update** (`{ vector?: number[]; metadata?: Record<string, any>; }`): Object containing the vector and/or metadata to update
161
161
 
162
- ### deleteVector()
162
+ ### `deleteVector()`
163
163
 
164
164
  **indexName** (`string`): Name of the index containing the vector
165
165
 
166
166
  **id** (`string`): ID of the vector to delete
167
167
 
168
- ### deleteVectors()
168
+ ### `deleteVectors()`
169
169
 
170
170
  Delete multiple vectors by IDs or by metadata filter. Either `ids` or `filter` must be provided, but not both.
171
171
 
@@ -175,11 +175,11 @@ Delete multiple vectors by IDs or by metadata filter. Either `ids` or `filter` m
175
175
 
176
176
  **filter** (`Record<string, any>`): Metadata filter to identify vectors to delete (mutually exclusive with ids)
177
177
 
178
- ### close()
178
+ ### `close()`
179
179
 
180
180
  Closes the database connection.
181
181
 
182
- ## Response Types
182
+ ## Response types
183
183
 
184
184
  Query results are returned in this format:
185
185
 
@@ -193,7 +193,7 @@ interface QueryResult {
193
193
  }
194
194
  ```
195
195
 
196
- ## Error Handling
196
+ ## Error handling
197
197
 
198
198
  The store throws typed errors that can be caught:
199
199
 
@@ -210,7 +210,7 @@ try {
210
210
  }
211
211
  ```
212
212
 
213
- ## Best Practices
213
+ ## Best practices
214
214
 
215
215
  - Use the appropriate index type for your use case:
216
216
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/lance",
3
- "version": "1.0.4-alpha.0",
3
+ "version": "1.0.4",
4
4
  "description": "Lance provider for Mastra - includes both vector and db storage capabilities",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -30,10 +30,10 @@
30
30
  "tsup": "^8.5.1",
31
31
  "typescript": "^5.9.3",
32
32
  "vitest": "4.0.18",
33
- "@internal/lint": "0.0.66",
34
- "@internal/types-builder": "0.0.41",
35
- "@internal/storage-test-utils": "0.0.62",
36
- "@mastra/core": "^1.11.0-alpha.0"
33
+ "@internal/types-builder": "0.0.42",
34
+ "@internal/storage-test-utils": "0.0.63",
35
+ "@mastra/core": "^1.11.0",
36
+ "@internal/lint": "0.0.67"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "@mastra/core": ">=1.0.0-0 <2.0.0-0"