Skip to content

Commit 00fc136

Browse files
authored
Merge pull request #1065 from objectstack-ai/claude/fix-ci-build-test-errors-again
Fix CI test failures: manifest service mocks and I18nLabel schema migration
2 parents a06e184 + a2273bc commit 00fc136

21 files changed

Lines changed: 219 additions & 143 deletions

File tree

content/docs/references/api/protocol.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -522,6 +522,7 @@ const result = AiInsightsRequest.parse(data);
522522
| :--- | :--- | :--- | :--- |
523523
| **type** | `string` || Metadata type name |
524524
| **name** | `string` || Item name (snake_case identifier) |
525+
| **packageId** | `string` | optional | Optional package ID to filter items by |
525526

526527

527528
---
@@ -546,6 +547,7 @@ const result = AiInsightsRequest.parse(data);
546547
| Property | Type | Required | Description |
547548
| :--- | :--- | :--- | :--- |
548549
| **type** | `string` || Metadata type name (e.g., "object", "plugin") |
550+
| **packageId** | `string` | optional | Optional package ID to filter items by |
549551

550552

551553
---

content/docs/references/system/metadata-persistence.mdx

Lines changed: 87 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ Defines the lifecycle and mutability of a metadata item.
1616
## TypeScript Usage
1717

1818
```typescript
19-
import { MetadataCollectionInfo, MetadataExportOptions, MetadataFallbackStrategy, MetadataFormat, MetadataImportOptions, MetadataLoadOptions, MetadataLoadResult, MetadataLoaderContract, MetadataManagerConfig, MetadataRecord, MetadataSaveOptions, MetadataSaveResult, MetadataScope, MetadataSource, MetadataState, MetadataStats, MetadataWatchEvent, PackagePublishResult } from '@objectstack/spec/system';
20-
import type { MetadataCollectionInfo, MetadataExportOptions, MetadataFallbackStrategy, MetadataFormat, MetadataImportOptions, MetadataLoadOptions, MetadataLoadResult, MetadataLoaderContract, MetadataManagerConfig, MetadataRecord, MetadataSaveOptions, MetadataSaveResult, MetadataScope, MetadataSource, MetadataState, MetadataStats, MetadataWatchEvent, PackagePublishResult } from '@objectstack/spec/system';
19+
import { MetadataCollectionInfo, MetadataDiffResult, MetadataExportOptions, MetadataFallbackStrategy, MetadataFormat, MetadataHistoryQueryOptions, MetadataHistoryQueryResult, MetadataHistoryRecord, MetadataHistoryRetentionPolicy, MetadataImportOptions, MetadataLoadOptions, MetadataLoadResult, MetadataLoaderContract, MetadataManagerConfig, MetadataRecord, MetadataSaveOptions, MetadataSaveResult, MetadataScope, MetadataSource, MetadataState, MetadataStats, MetadataWatchEvent, PackagePublishResult } from '@objectstack/spec/system';
20+
import type { MetadataCollectionInfo, MetadataDiffResult, MetadataExportOptions, MetadataFallbackStrategy, MetadataFormat, MetadataHistoryQueryOptions, MetadataHistoryQueryResult, MetadataHistoryRecord, MetadataHistoryRetentionPolicy, MetadataImportOptions, MetadataLoadOptions, MetadataLoadResult, MetadataLoaderContract, MetadataManagerConfig, MetadataRecord, MetadataSaveOptions, MetadataSaveResult, MetadataScope, MetadataSource, MetadataState, MetadataStats, MetadataWatchEvent, PackagePublishResult } from '@objectstack/spec/system';
2121

2222
// Validate data
2323
const result = MetadataCollectionInfo.parse(data);
@@ -36,6 +36,25 @@ const result = MetadataCollectionInfo.parse(data);
3636
| **namespaces** | `string[]` || |
3737

3838

39+
---
40+
41+
## MetadataDiffResult
42+
43+
### Properties
44+
45+
| Property | Type | Required | Description |
46+
| :--- | :--- | :--- | :--- |
47+
| **type** | `string` || |
48+
| **name** | `string` || |
49+
| **version1** | `number` || |
50+
| **version2** | `number` || |
51+
| **checksum1** | `string` || |
52+
| **checksum2** | `string` || |
53+
| **identical** | `boolean` || |
54+
| **patch** | `any[]` | optional | JSON patch operations |
55+
| **summary** | `string` | optional | Human-readable summary of changes |
56+
57+
3958
---
4059

4160
## MetadataExportOptions
@@ -76,6 +95,72 @@ const result = MetadataCollectionInfo.parse(data);
7695
* `javascript`
7796

7897

98+
---
99+
100+
## MetadataHistoryQueryOptions
101+
102+
### Properties
103+
104+
| Property | Type | Required | Description |
105+
| :--- | :--- | :--- | :--- |
106+
| **limit** | `integer` | optional | Maximum number of history records to return |
107+
| **offset** | `integer` | optional | Number of records to skip |
108+
| **since** | `string` | optional | Only return history after this timestamp |
109+
| **until** | `string` | optional | Only return history before this timestamp |
110+
| **operationType** | `Enum<'create' \| 'update' \| 'publish' \| 'revert' \| 'delete'>` | optional | Filter by operation type |
111+
| **includeMetadata** | `boolean` || Include full metadata payload |
112+
113+
114+
---
115+
116+
## MetadataHistoryQueryResult
117+
118+
### Properties
119+
120+
| Property | Type | Required | Description |
121+
| :--- | :--- | :--- | :--- |
122+
| **records** | `Object[]` || |
123+
| **total** | `integer` || |
124+
| **hasMore** | `boolean` || |
125+
126+
127+
---
128+
129+
## MetadataHistoryRecord
130+
131+
### Properties
132+
133+
| Property | Type | Required | Description |
134+
| :--- | :--- | :--- | :--- |
135+
| **id** | `string` || |
136+
| **metadataId** | `string` || Foreign key to sys_metadata.id |
137+
| **name** | `string` || |
138+
| **type** | `string` || |
139+
| **version** | `number` || Version number at this snapshot |
140+
| **operationType** | `Enum<'create' \| 'update' \| 'publish' \| 'revert' \| 'delete'>` || Type of operation that created this history entry |
141+
| **metadata** | `string \| Record<string, any> \| null` | optional | Snapshot of metadata definition at this version (raw JSON string or parsed object) |
142+
| **checksum** | `string` || SHA-256 checksum of metadata content |
143+
| **previousChecksum** | `string` | optional | Checksum of the previous version |
144+
| **changeNote** | `string` | optional | Description of changes made in this version |
145+
| **tenantId** | `string` | optional | Tenant identifier for multi-tenant isolation |
146+
| **recordedBy** | `string` | optional | User who made this change |
147+
| **recordedAt** | `string` || Timestamp when this version was recorded |
148+
149+
150+
---
151+
152+
## MetadataHistoryRetentionPolicy
153+
154+
### Properties
155+
156+
| Property | Type | Required | Description |
157+
| :--- | :--- | :--- | :--- |
158+
| **maxVersions** | `integer` | optional | Maximum number of versions to retain |
159+
| **maxAgeDays** | `integer` | optional | Maximum age of history records in days |
160+
| **autoCleanup** | `boolean` || Enable automatic cleanup of old history |
161+
| **cleanupIntervalHours** | `integer` || How often to run cleanup (in hours) |
162+
163+
79164
---
80165

81166
## MetadataImportOptions

content/docs/references/ui/action.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ const result = ActionParam.parse(data);
3232
| Property | Type | Required | Description |
3333
| :--- | :--- | :--- | :--- |
3434
| **name** | `string` || |
35-
| **label** | `string \| Object` || Display label: plain string or i18n translation object |
35+
| **label** | `string` || Display label (plain string; i18n keys are auto-generated by the framework) |
3636
| **type** | `Enum<'text' \| 'textarea' \| 'email' \| 'url' \| 'phone' \| 'password' \| 'markdown' \| 'html' \| 'richtext' \| 'number' \| 'currency' \| 'percent' \| 'date' \| 'datetime' \| 'time' \| 'boolean' \| 'toggle' \| 'select' \| 'multiselect' \| 'radio' \| 'checkboxes' \| 'lookup' \| 'master_detail' \| 'tree' \| 'image' \| 'file' \| 'avatar' \| 'video' \| 'audio' \| 'formula' \| 'summary' \| 'autonumber' \| 'location' \| 'address' \| 'code' \| 'json' \| 'color' \| 'rating' \| 'slider' \| 'signature' \| 'qrcode' \| 'progress' \| 'tags' \| 'vector'>` || |
3737
| **required** | `boolean` || |
3838
| **options** | `Object[]` | optional | |

content/docs/references/ui/animation.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,13 @@ Component-level animation configuration
5050

5151
| Property | Type | Required | Description |
5252
| :--- | :--- | :--- | :--- |
53-
| **label** | `string \| Object` | optional | Descriptive label for this animation configuration |
53+
| **label** | `string` | optional | Descriptive label for this animation configuration |
5454
| **enter** | `Object` | optional | Enter/mount animation |
5555
| **exit** | `Object` | optional | Exit/unmount animation |
5656
| **hover** | `Object` | optional | Hover state animation |
5757
| **trigger** | `Enum<'on_mount' \| 'on_unmount' \| 'on_hover' \| 'on_focus' \| 'on_click' \| 'on_scroll' \| 'on_visible'>` | optional | When to trigger the animation |
5858
| **reducedMotion** | `Enum<'respect' \| 'disable' \| 'alternative'>` || Accessibility: how to handle prefers-reduced-motion |
59-
| **ariaLabel** | `string \| Object` | optional | Accessible label for screen readers (WAI-ARIA aria-label) |
59+
| **ariaLabel** | `string` | optional | Accessible label for screen readers (WAI-ARIA aria-label) |
6060
| **ariaDescribedBy** | `string` | optional | ID of element providing additional description (WAI-ARIA aria-describedby) |
6161
| **role** | `string` | optional | WAI-ARIA role attribute (e.g., "dialog", "navigation", "alert") |
6262

@@ -87,7 +87,7 @@ Top-level motion and animation design configuration
8787

8888
| Property | Type | Required | Description |
8989
| :--- | :--- | :--- | :--- |
90-
| **label** | `string \| Object` | optional | Descriptive label for the motion configuration |
90+
| **label** | `string` | optional | Descriptive label for the motion configuration |
9191
| **defaultTransition** | `Object` | optional | Default transition applied to all animations |
9292
| **pageTransitions** | `Object` | optional | Page navigation transition settings |
9393
| **componentAnimations** | `Record<string, Object>` | optional | Component name to animation configuration mapping |

content/docs/references/ui/app.mdx

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ const result = ActionNavItem.parse(data);
5050
| Property | Type | Required | Description |
5151
| :--- | :--- | :--- | :--- |
5252
| **id** | `string` || Unique identifier for this navigation item (lowercase snake_case) |
53-
| **label** | `string \| Object` || Display proper label |
53+
| **label** | `string` || Display proper label |
5454
| **icon** | `string` | optional | Icon name |
5555
| **order** | `number` | optional | Sort order within the same level (lower = first) |
5656
| **badge** | `string \| number` | optional | Badge text or count displayed on the item |
@@ -69,9 +69,9 @@ const result = ActionNavItem.parse(data);
6969
| Property | Type | Required | Description |
7070
| :--- | :--- | :--- | :--- |
7171
| **name** | `string` || App unique machine name (lowercase snake_case) |
72-
| **label** | `string \| Object` || App display label |
72+
| **label** | `string` || App display label |
7373
| **version** | `string` | optional | App version |
74-
| **description** | `string \| Object` | optional | App description |
74+
| **description** | `string` | optional | App description |
7575
| **icon** | `string` | optional | App icon used in the App Launcher |
7676
| **branding** | `Object` | optional | App-specific branding |
7777
| **active** | `boolean` || Whether the app is enabled |
@@ -110,7 +110,7 @@ const result = ActionNavItem.parse(data);
110110
| Property | Type | Required | Description |
111111
| :--- | :--- | :--- | :--- |
112112
| **id** | `string` || Unique identifier for this navigation item (lowercase snake_case) |
113-
| **label** | `string \| Object` || Display proper label |
113+
| **label** | `string` || Display proper label |
114114
| **icon** | `string` | optional | Icon name |
115115
| **order** | `number` | optional | Sort order within the same level (lower = first) |
116116
| **badge** | `string \| number` | optional | Badge text or count displayed on the item |
@@ -129,7 +129,7 @@ const result = ActionNavItem.parse(data);
129129
| Property | Type | Required | Description |
130130
| :--- | :--- | :--- | :--- |
131131
| **id** | `string` || Unique identifier for this navigation item (lowercase snake_case) |
132-
| **label** | `string \| Object` || Display proper label |
132+
| **label** | `string` || Display proper label |
133133
| **icon** | `string` | optional | Icon name |
134134
| **order** | `number` | optional | Sort order within the same level (lower = first) |
135135
| **badge** | `string \| number` | optional | Badge text or count displayed on the item |
@@ -148,10 +148,10 @@ const result = ActionNavItem.parse(data);
148148
| Property | Type | Required | Description |
149149
| :--- | :--- | :--- | :--- |
150150
| **id** | `string` || Unique area identifier (lowercase snake_case) |
151-
| **label** | `string \| Object` || Area display label |
151+
| **label** | `string` || Area display label |
152152
| **icon** | `string` | optional | Area icon name |
153153
| **order** | `number` | optional | Sort order among areas (lower = first) |
154-
| **description** | `string \| Object` | optional | Area description |
154+
| **description** | `string` | optional | Area description |
155155
| **visible** | `string` | optional | Visibility formula condition for this area |
156156
| **requiredPermissions** | `string[]` | optional | Permissions required to access this area |
157157
| **navigation** | `[__schema0](./__schema0)[]` || Navigation items within this area |
@@ -174,7 +174,7 @@ This schema accepts one of the following structures:
174174
| Property | Type | Required | Description |
175175
| :--- | :--- | :--- | :--- |
176176
| **id** | `string` || Unique identifier for this navigation item (lowercase snake_case) |
177-
| **label** | `string \| Object` || Display proper label |
177+
| **label** | `string` || Display proper label |
178178
| **icon** | `string` | optional | Icon name |
179179
| **order** | `number` | optional | Sort order within the same level (lower = first) |
180180
| **badge** | `string \| number` | optional | Badge text or count displayed on the item |
@@ -196,7 +196,7 @@ This schema accepts one of the following structures:
196196
| Property | Type | Required | Description |
197197
| :--- | :--- | :--- | :--- |
198198
| **id** | `string` || Unique identifier for this navigation item (lowercase snake_case) |
199-
| **label** | `string \| Object` || Display proper label |
199+
| **label** | `string` || Display proper label |
200200
| **icon** | `string` | optional | Icon name |
201201
| **order** | `number` | optional | Sort order within the same level (lower = first) |
202202
| **badge** | `string \| number` | optional | Badge text or count displayed on the item |
@@ -216,7 +216,7 @@ This schema accepts one of the following structures:
216216
| Property | Type | Required | Description |
217217
| :--- | :--- | :--- | :--- |
218218
| **id** | `string` || Unique identifier for this navigation item (lowercase snake_case) |
219-
| **label** | `string \| Object` || Display proper label |
219+
| **label** | `string` || Display proper label |
220220
| **icon** | `string` | optional | Icon name |
221221
| **order** | `number` | optional | Sort order within the same level (lower = first) |
222222
| **badge** | `string \| number` | optional | Badge text or count displayed on the item |
@@ -237,7 +237,7 @@ This schema accepts one of the following structures:
237237
| Property | Type | Required | Description |
238238
| :--- | :--- | :--- | :--- |
239239
| **id** | `string` || Unique identifier for this navigation item (lowercase snake_case) |
240-
| **label** | `string \| Object` || Display proper label |
240+
| **label** | `string` || Display proper label |
241241
| **icon** | `string` | optional | Icon name |
242242
| **order** | `number` | optional | Sort order within the same level (lower = first) |
243243
| **badge** | `string \| number` | optional | Badge text or count displayed on the item |
@@ -258,7 +258,7 @@ This schema accepts one of the following structures:
258258
| Property | Type | Required | Description |
259259
| :--- | :--- | :--- | :--- |
260260
| **id** | `string` || Unique identifier for this navigation item (lowercase snake_case) |
261-
| **label** | `string \| Object` || Display proper label |
261+
| **label** | `string` || Display proper label |
262262
| **icon** | `string` | optional | Icon name |
263263
| **order** | `number` | optional | Sort order within the same level (lower = first) |
264264
| **badge** | `string \| number` | optional | Badge text or count displayed on the item |
@@ -278,7 +278,7 @@ This schema accepts one of the following structures:
278278
| Property | Type | Required | Description |
279279
| :--- | :--- | :--- | :--- |
280280
| **id** | `string` || Unique identifier for this navigation item (lowercase snake_case) |
281-
| **label** | `string \| Object` || Display proper label |
281+
| **label** | `string` || Display proper label |
282282
| **icon** | `string` | optional | Icon name |
283283
| **order** | `number` | optional | Sort order within the same level (lower = first) |
284284
| **badge** | `string \| number` | optional | Badge text or count displayed on the item |
@@ -298,7 +298,7 @@ This schema accepts one of the following structures:
298298
| Property | Type | Required | Description |
299299
| :--- | :--- | :--- | :--- |
300300
| **id** | `string` || Unique identifier for this navigation item (lowercase snake_case) |
301-
| **label** | `string \| Object` || Display proper label |
301+
| **label** | `string` || Display proper label |
302302
| **icon** | `string` | optional | Icon name |
303303
| **order** | `number` | optional | Sort order within the same level (lower = first) |
304304
| **badge** | `string \| number` | optional | Badge text or count displayed on the item |
@@ -320,7 +320,7 @@ This schema accepts one of the following structures:
320320
| Property | Type | Required | Description |
321321
| :--- | :--- | :--- | :--- |
322322
| **id** | `string` || Unique identifier for this navigation item (lowercase snake_case) |
323-
| **label** | `string \| Object` || Display proper label |
323+
| **label** | `string` || Display proper label |
324324
| **icon** | `string` | optional | Icon name |
325325
| **order** | `number` | optional | Sort order within the same level (lower = first) |
326326
| **badge** | `string \| number` | optional | Badge text or count displayed on the item |
@@ -340,7 +340,7 @@ This schema accepts one of the following structures:
340340
| Property | Type | Required | Description |
341341
| :--- | :--- | :--- | :--- |
342342
| **id** | `string` || Unique identifier for this navigation item (lowercase snake_case) |
343-
| **label** | `string \| Object` || Display proper label |
343+
| **label** | `string` || Display proper label |
344344
| **icon** | `string` | optional | Icon name |
345345
| **order** | `number` | optional | Sort order within the same level (lower = first) |
346346
| **badge** | `string \| number` | optional | Badge text or count displayed on the item |
@@ -360,7 +360,7 @@ This schema accepts one of the following structures:
360360
| Property | Type | Required | Description |
361361
| :--- | :--- | :--- | :--- |
362362
| **id** | `string` || Unique identifier for this navigation item (lowercase snake_case) |
363-
| **label** | `string \| Object` || Display proper label |
363+
| **label** | `string` || Display proper label |
364364
| **icon** | `string` | optional | Icon name |
365365
| **order** | `number` | optional | Sort order within the same level (lower = first) |
366366
| **badge** | `string \| number` | optional | Badge text or count displayed on the item |
@@ -379,7 +379,7 @@ This schema accepts one of the following structures:
379379
| Property | Type | Required | Description |
380380
| :--- | :--- | :--- | :--- |
381381
| **id** | `string` || Unique identifier for this navigation item (lowercase snake_case) |
382-
| **label** | `string \| Object` || Display proper label |
382+
| **label** | `string` || Display proper label |
383383
| **icon** | `string` | optional | Icon name |
384384
| **order** | `number` | optional | Sort order within the same level (lower = first) |
385385
| **badge** | `string \| number` | optional | Badge text or count displayed on the item |

0 commit comments

Comments
 (0)