You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(spec)!: remove dead author-facing metadata properties (#2377, A2) (#3176)
* feat(spec)!: remove dead author-facing metadata properties (#2377)
Removes spec properties that parsed but had no runtime consumer (ADR-0049
enforce-or-remove) — a false affordance, especially for AI-authored metadata.
Follow-up slice to #2402. Verified dead against packages/spec/liveness/*.json
and a repo-wide reader grep.
Removed:
- field: vectorConfig (+VectorConfigSchema+types), fileAttachmentConfig
(+FileAttachmentConfigSchema+types), dependencies
- object: versioning, softDelete, search, recordName, keyPrefix (+ their
sub-schemas/types) — each now a rejecting tombstone in UNKNOWN_KEY_GUIDANCE
- action: timeout
- agent: planning.strategy, planning.allowReplan (keep planning.maxIterations)
- dataset: measures.certified
Ledgers, ledger README table, api-surface.json, and json-schema.manifest.json
updated; spec tests/fixtures migrated (analytics/rest/lint/cli). Deferred the
authoring-form-surfaced dead props (field.index/columnName/referenceFilters;
object.tags/active/isSystem/abstract/enable.searchable/trash/mru; agent.tenantId)
and action.type:'form' — they cascade into i18n/lint/UX and stay authorWarn'd.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011XchBKhKdjbhQZymt9Gn9B
* docs(spec): regenerate reference docs after dead-prop removal (#2377)
Regenerated content/docs/references/ from the updated spec schema
(pnpm gen:schema && gen:docs) — field/object/action/agent/dataset
reference pages drop the removed properties; data/search-engine.mdx
and api/object.mdx removed as spec no longer defines them.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011XchBKhKdjbhQZymt9Gn9B
* chore: version dead-prop removal as minor per launch-window policy (#2377)
The whole publishable set is in the Changesets fixed group, so a `major`
would promote the entire monorepo. Breaking spec cleanups ride the minor
line during the launch window (precedent: #2402 → 11.1.0).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011XchBKhKdjbhQZymt9Gn9B
---------
Co-authored-by: Claude <noreply@anthropic.com>
|**tenantId**|`string`| optional | Tenant/Organization ID |
87
87
|**visibility**|`Enum<'global' \| 'organization' \| 'private'>`| ✅ |[EXPERIMENTAL — NOT ENFORCED, #1901] Intended listing scope. No runtime consumer yet; use access/permissions for real gating. |
|**vectorConfig**|`{ dimensions: integer; distanceMetric?: Enum<'cosine' \| 'euclidean' \| 'dotProduct' \| 'manhattan'>; normalized?: boolean; indexed?: boolean; … }`| optional | Configuration for vector field type (AI/ML embeddings) |
143
-
|**fileAttachmentConfig**|`{ minSize?: number; maxSize?: number; allowedTypes?: string[]; blockedTypes?: string[]; … }`| optional | Configuration for file and attachment field types |
144
142
|**trackHistory**|`boolean`| optional | Render this field's value changes as human-readable entries on the record activity timeline (ADR-0052 §5b). Opt-in per field. |
145
-
|**dependencies**|`string[]`| optional | Array of field names that this field depends on (for formulas, visibility rules, etc.) |
146
143
|**group**|`string`| optional | Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system") |
147
144
|**visibleWhen**|`string \| { dialect: Enum<'cel' \| 'js' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }`| optional | Predicate (CEL) — field is shown only when TRUE (else hidden). e.g. P`record.type == 'invoice'`|
148
145
|**readonlyWhen**|`string \| { dialect: Enum<'cel' \| 'js' \| 'cron' \| 'template'>; source?: string; ast?: any; meta?: object }`| optional | Predicate (CEL) — field is read-only when TRUE. e.g. P`record.status == 'paid'`|
@@ -217,40 +214,6 @@ const result = Address.parse(data);
217
214
*`vector`
218
215
219
216
220
-
---
221
-
222
-
## FileAttachmentConfig
223
-
224
-
### Properties
225
-
226
-
| Property | Type | Required | Description |
227
-
| :--- | :--- | :--- | :--- |
228
-
|**minSize**|`number`| optional | Minimum file size in bytes |
229
-
|**maxSize**|`number`| optional | Maximum file size in bytes (e.g., 10485760 = 10MB) |
0 commit comments