Skip to content

feat(spec)!: remove dead author-facing metadata properties (#2377, A2)#3176

Merged
os-zhuang merged 3 commits into
mainfrom
claude/remove-dead-author-metadata-psrgkg
Jul 18, 2026
Merged

feat(spec)!: remove dead author-facing metadata properties (#2377, A2)#3176
os-zhuang merged 3 commits into
mainfrom
claude/remove-dead-author-metadata-psrgkg

Conversation

@os-zhuang

@os-zhuang os-zhuang commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Re-evaluation + next slice of #2377 (ADR-0049 enforce-or-remove). Follow-up to the merged #2402. Removes spec properties that parse but have no runtime consumer — a false affordance, especially for AI-authored metadata. Each was verified dead against packages/spec/liveness/*.json and a repo-wide reader grep.

Removed (each dead, no reader anywhere)

  • field (field.zod.ts): vectorConfig (+VectorConfigSchema+types), fileAttachmentConfig (+FileAttachmentConfigSchema+types), dependencies. Vector fields keep the live flat dimensions; file/image fields keep the live flat multiple/accept/maxSize.
  • object (object.zod.ts): versioning (+VersioningConfigSchema), softDelete (+SoftDeleteConfigSchema), search (+SearchConfigSchema), recordName, keyPrefix — each is now a rejecting tombstone in UNKNOWN_KEY_GUIDANCE carrying the upgrade prescription (matching the defaultDetailForm/compactLayout precedent).
  • action (action.zod.ts): timeout (server uses body.timeoutMs; no action-level timeout is enforced).
  • agent (agent.zod.ts): planning.strategy, planning.allowReplan (runtime reads only planning.maxIterations).
  • dataset (dataset.zod.ts): measures.certified (declared-but-unenforced governance flag; never compiled into the Cube).

Bookkeeping

  • Liveness ledgers (field/object/action/agent/dataset) + the ledger README count table updated.
  • api-surface.json regenerated (drops exactly the removed public exports); removed sub-schema keys dropped from json-schema.manifest.json.
  • Generated reference docs (content/docs/references/) regenerated via gen:schema && gen:docs.
  • Spec tests updated (removed vector/file/recordName blocks; trimmed agent planning tests; added an object tombstone-rejection test). Fixtures migrated in service-analytics (×4), rest, lint, cli.

Deliberately NOT removed (dead, but entangled — scoped follow-up)

These are dead but surfaced in the Studio metadata-authoring forms (*.form.ts), so removing them cascades into i18n-bundle regeneration:

  • field index / columnName / referenceFilters
  • object tags / active / isSystem / abstract / enable.searchable / enable.trash / enable.mru
  • agent tenantId

Plus action.type:'form' (has a dedicated build-time lint lint-view-refs.ts + a first-party showcase action → needs a UX decision) and field.columnName (also has an ADR-0062 D7 lint). All stay dead + authorWarn in the ledgers.

Migration

  • field/agent/dataset/action props: authoring them is now silently stripped (they never did anything) — remove them. Vector → flat dimensions; file/image → flat multiple/accept/maxSize.
  • object props: ObjectSchema.create() now throws a located error naming the replacement — versioning/softDelete → hard deletes + Field.trackHistory / lifecycle; searchsearchableFields; recordName → an autonumber Field designated as nameField; keyPrefix → remove.

Versioning

Breaking spec-surface change, but versioned as a minor changeset per the launch-window policy — the whole publishable set is in the Changesets fixed group, so a major would promote the entire monorepo. Breaking cleanups ride the minor line (precedent: #2402 → 11.1.0).

Verification

  • Spec suite 6875 passed (256 files); check:api-surface ✓; check:docs ✓ (256 generated files in sync); spec-liveness gate ✓ (all governed props classified).
  • DTS typecheck of @objectstack/spec clean.
  • Migrated fixtures green: service-analytics (dataset-compiler/executor/query/rls, 51), rest analytics-routes (6), lint validate-widget-bindings (33), cli lint-liveness-properties (16).

Also in this task

Re-evaluated #2378 (IDataEngine) — no code work remains: the scope-corrected removal of the deprecated DriverInterface alias already landed in #2384 (IDataEngine is the live engine contract, not deprecated). Closed #2378 with that note.

🤖 Generated with Claude Code

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
@vercel

vercel Bot commented Jul 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Canceled Canceled Jul 18, 2026 6:38am

Request Review

@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 5 package(s): @objectstack/cli, @objectstack/lint, @objectstack/rest, packages/services, @objectstack/spec.

110 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/ai/agents.mdx (via @objectstack/spec)
  • content/docs/ai/skills-reference.mdx (via packages/cli, @objectstack/spec)
  • content/docs/ai/skills.mdx (via @objectstack/spec)
  • content/docs/api/client-sdk.mdx (via @objectstack/cli, @objectstack/spec)
  • content/docs/api/data-flow.mdx (via @objectstack/cli)
  • content/docs/api/environment-routing.mdx (via @objectstack/cli, @objectstack/spec)
  • content/docs/api/error-catalog.mdx (via @objectstack/cli, @objectstack/rest, @objectstack/spec)
  • content/docs/api/error-handling-client.mdx (via @objectstack/spec)
  • content/docs/api/error-handling-server.mdx (via @objectstack/rest, @objectstack/spec)
  • content/docs/api/index.mdx (via @objectstack/rest, @objectstack/spec)
  • content/docs/automation/approvals.mdx (via packages/spec)
  • content/docs/automation/flows.mdx (via @objectstack/spec)
  • content/docs/automation/hook-bodies.mdx (via packages/cli, packages/spec)
  • content/docs/automation/hooks.mdx (via @objectstack/spec)
  • content/docs/automation/index.mdx (via @objectstack/spec)
  • content/docs/automation/webhooks.mdx (via packages/services, @objectstack/spec)
  • content/docs/automation/workflows.mdx (via @objectstack/spec)
  • content/docs/concepts/architecture.mdx (via @objectstack/spec)
  • content/docs/concepts/design-principles.mdx (via packages/spec)
  • content/docs/concepts/index.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-driven.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-lifecycle.mdx (via packages/spec)
  • content/docs/concepts/north-star.mdx (via packages/spec)
  • content/docs/data-modeling/analytics.mdx (via @objectstack/spec)
  • content/docs/data-modeling/drivers.mdx (via @objectstack/spec)
  • content/docs/data-modeling/external-datasources.mdx (via @objectstack/spec)
  • content/docs/data-modeling/field-types.mdx (via @objectstack/spec)
  • content/docs/data-modeling/fields.mdx (via @objectstack/spec)
  • content/docs/data-modeling/formulas.mdx (via @objectstack/spec)
  • content/docs/data-modeling/index.mdx (via @objectstack/spec)
  • content/docs/data-modeling/objects.mdx (via @objectstack/spec)
  • content/docs/data-modeling/queries.mdx (via @objectstack/spec)
  • content/docs/data-modeling/schema-design.mdx (via @objectstack/spec)
  • content/docs/data-modeling/seed-data.mdx (via @objectstack/spec)
  • content/docs/data-modeling/validation-rules.mdx (via @objectstack/spec)
  • content/docs/data-modeling/validation.mdx (via @objectstack/spec)
  • content/docs/deployment/backup-restore.mdx (via @objectstack/cli)
  • content/docs/deployment/self-hosting.mdx (via @objectstack/cli)
  • content/docs/deployment/troubleshooting.mdx (via @objectstack/spec)
  • content/docs/getting-started/build-with-claude-code.mdx (via @objectstack/spec)
  • content/docs/getting-started/cli.mdx (via @objectstack/cli, @objectstack/spec)
  • content/docs/getting-started/common-patterns.mdx (via @objectstack/spec)
  • content/docs/getting-started/examples.mdx (via @objectstack/spec)
  • content/docs/getting-started/quick-reference.mdx (via @objectstack/spec)
  • content/docs/getting-started/quick-start.mdx (via @objectstack/spec)
  • content/docs/getting-started/validating-metadata.mdx (via @objectstack/spec)
  • content/docs/getting-started/your-first-project.mdx (via @objectstack/cli, @objectstack/spec)
  • content/docs/kernel/cluster.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/auth-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/cache-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/data-engine.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/index.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/metadata-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/storage-service.mdx (via packages/spec)
  • content/docs/kernel/index.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/audit-service.mdx (via packages/services)
  • content/docs/kernel/runtime-services/data-service.mdx (via packages/cli)
  • content/docs/kernel/runtime-services/email-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/index.mdx (via packages/cli, packages/services, packages/spec)
  • content/docs/kernel/runtime-services/queue-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/settings-service.mdx (via packages/services)
  • content/docs/kernel/runtime-services/sharing-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/sms-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/storage-service.mdx (via packages/spec)
  • content/docs/kernel/services-checklist.mdx (via @objectstack/spec)
  • content/docs/permissions/authentication.mdx (via @objectstack/cli)
  • content/docs/permissions/authorization.mdx (via @objectstack/lint, @objectstack/spec)
  • content/docs/permissions/permission-sets.mdx (via @objectstack/spec)
  • content/docs/permissions/permissions-matrix.mdx (via @objectstack/spec)
  • content/docs/permissions/positions.mdx (via @objectstack/spec)
  • content/docs/permissions/rls.mdx (via @objectstack/spec)
  • content/docs/permissions/sharing-rules.mdx (via @objectstack/spec)
  • content/docs/plugins/adding-a-metadata-type.mdx (via @objectstack/spec)
  • content/docs/plugins/development.mdx (via @objectstack/spec)
  • content/docs/plugins/index.mdx (via @objectstack/rest, @objectstack/spec)
  • content/docs/plugins/packages.mdx (via @objectstack/cli, @objectstack/rest, packages/services, @objectstack/spec)
  • content/docs/protocol/backward-compatibility.mdx (via @objectstack/spec)
  • content/docs/protocol/diagram.mdx (via packages/spec)
  • content/docs/protocol/kernel/config-resolution.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/i18n-standard.mdx (via packages/services, @objectstack/spec)
  • content/docs/protocol/kernel/lifecycle.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/plugin-spec.mdx (via @objectstack/cli, @objectstack/spec)
  • content/docs/protocol/kernel/realtime-protocol.mdx (via @objectstack/cli)
  • content/docs/protocol/kernel/runtime-capabilities.mdx (via @objectstack/spec)
  • content/docs/protocol/knowledge.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/index.mdx (via packages/spec)
  • content/docs/protocol/objectql/query-syntax.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/schema.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/security.mdx (via packages/spec)
  • content/docs/protocol/objectql/state-machine.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/actions.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/concept.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/index.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/layout-dsl.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/record-alert.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/widget-contract.mdx (via @objectstack/spec)
  • content/docs/releases/implementation-status.mdx (via @objectstack/cli, @objectstack/rest, @objectstack/spec)
  • content/docs/releases/index.mdx (via @objectstack/spec)
  • content/docs/releases/v12.mdx (via @objectstack/rest, @objectstack/spec)
  • content/docs/releases/v13.mdx (via @objectstack/spec)
  • content/docs/releases/v9.mdx (via @objectstack/spec)
  • content/docs/ui/actions.mdx (via @objectstack/spec)
  • content/docs/ui/create-vs-edit-form.mdx (via @objectstack/spec)
  • content/docs/ui/dashboards.mdx (via @objectstack/spec)
  • content/docs/ui/forms.mdx (via @objectstack/spec)
  • content/docs/ui/index.mdx (via @objectstack/spec)
  • content/docs/ui/public-data-collection.mdx (via @objectstack/spec)
  • content/docs/ui/setup-app.mdx (via @objectstack/spec)
  • content/docs/ui/translations.mdx (via @objectstack/spec)
  • content/docs/ui/views.mdx (via @objectstack/spec)

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

claude added 2 commits July 18, 2026 06:26
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
…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
@os-zhuang
os-zhuang marked this pull request as ready for review July 18, 2026 07:22
@os-zhuang
os-zhuang merged commit b659111 into main Jul 18, 2026
17 checks passed
@os-zhuang
os-zhuang deleted the claude/remove-dead-author-metadata-psrgkg branch July 18, 2026 07:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[11.0][A3] Remove deprecated IDataEngine interface (use IDataDriver)

2 participants