Skip to content

feat(spec)!: remove deprecated aiStudio/aiSeat capability aliases (#3308)#3329

Merged
os-zhuang merged 3 commits into
mainfrom
claude/remove-capability-aliases-3308
Jul 20, 2026
Merged

feat(spec)!: remove deprecated aiStudio/aiSeat capability aliases (#3308)#3329
os-zhuang merged 3 commits into
mainfrom
claude/remove-capability-aliases-3308

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

Closes #3308.

The one-cycle deprecation window opened in #3265 is over and a major release is being prepared, so this drops the legacy camelCase requires aliases. aiStudio/aiSeat are no longer canonicalized to ai-studio/ai-seat — they are now plain unknown tokens, rejected by defineStack like any other typo (the reject end-state added in #3302).

What changed

Follows the "What to remove" checklist in #3308:

  • packages/spec/src/kernel/platform-capabilities.ts — deleted DEPRECATED_PLATFORM_CAPABILITY_ALIASES and canonicalizePlatformCapability; isKnownPlatformCapability no longer canonicalizes (plain membership check against PLATFORM_CAPABILITY_TOKENS).
  • packages/spec/src/index.ts — dropped the two removed exports from the re-export block.
  • packages/spec/src/stack.zod.ts — removed the canonicalizeStackRequires pass; defineStack runs validateKnownCapabilities directly, which rejects the legacy spellings.
  • packages/cli/src/commands/serve.ts — removed the raw-artifact alias canonicalization; the resolver dedupes the declared requires verbatim.
  • packages/spec/api-surface.json — regenerated (4 export deletions).

Tests updated to assert the new reject behavior: stack-requires.test.ts, platform-capabilities.test.ts, and the serve drift-guard serve-capability-vocabulary.test.ts.

Breaking change

Shipped as a minor changeset per the launch-window convention (the check-changeset-no-major gate rejects major during the window). Migration: use the canonical kebab-case tokens ai-studio / ai-seat.

Verification

  • @objectstack/spec — 6800 tests passed (256 files)
  • @objectstack/cli — 423 tests passed (43 files)
  • pnpm --filter @objectstack/spec check:api-surface — surface unchanged ✓
  • cli tsc — exit 0; eslint clean

🤖 Generated with Claude Code

https://claude.ai/code/session_01TjHfkKmEvgk8v7N8nTe5sH


Generated by Claude Code

)

The one-cycle deprecation window opened in #3265 is over. The legacy
camelCase `requires` spellings `aiStudio`/`aiSeat` are no longer
canonicalized to `ai-studio`/`ai-seat` — they are now plain unknown
tokens, rejected by defineStack like any other typo.

- spec: drop DEPRECATED_PLATFORM_CAPABILITY_ALIASES and
  canonicalizePlatformCapability exports; isKnownPlatformCapability
  no longer canonicalizes.
- spec: defineStack no longer rewrites aliases (canonicalizeStackRequires
  removed); validateKnownCapabilities rejects the legacy spellings.
- cli: serve resolver no longer canonicalizes raw-artifact requires.
- Regenerate api-surface snapshot (4 export deletions).

BREAKING shipped as minor per the launch-window convention. Migration:
use the canonical kebab-case tokens ai-studio / ai-seat. First-party
configs were migrated in cloud #862/#863; cloud's objectos-runtime
(pinned to an older framework) follows on its next .framework-sha bump.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TjHfkKmEvgk8v7N8nTe5sH
@vercel

vercel Bot commented Jul 20, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jul 20, 2026 2:00am

Request Review

@github-actions github-actions Bot added size/m documentation Improvements or additions to documentation tests tooling labels Jul 20, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 2 package(s): @objectstack/cli, @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/spec)
  • content/docs/api/error-handling-client.mdx (via @objectstack/spec)
  • content/docs/api/error-handling-server.mdx (via @objectstack/spec)
  • content/docs/api/index.mdx (via @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 @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/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/spec)
  • content/docs/kernel/runtime-services/queue-service.mdx (via packages/spec)
  • 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/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/spec)
  • content/docs/plugins/packages.mdx (via @objectstack/cli, @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 @objectstack/spec)
  • content/docs/protocol/kernel/index.mdx (via @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 @objectstack/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/spec)
  • content/docs/releases/index.mdx (via @objectstack/spec)
  • content/docs/releases/v12.mdx (via @objectstack/spec)
  • content/docs/releases/v13.mdx (via @objectstack/spec)
  • content/docs/releases/v16.mdx (via @objectstack/cli, @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.

The spec-changes manifest was stale on main — the protocol had already
advanced to 16 (dashboard-widget-strict-unknown-keys migration) without
regenerating the projection. This PR is the first spec-touching change to
trip the path-filtered check:spec-changes gate since that bump, so it picks
up the sync. No content here derives from the alias removal — the capability
vocabulary is not part of the ADR-0087 metadata-migration table.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TjHfkKmEvgk8v7N8nTe5sH
@os-zhuang os-zhuang added the allow-major label Jul 20, 2026 — with Claude
…sync)

Companion to the spec-changes.json sync — the upgrade guide derives from
the same ADR-0087 registries and carried the same pre-existing v16 drift
(protocol 15→16, dashboard-widget-strict-unknown-keys section). The
Check Generated Artifacts job runs check:spec-changes and
check:upgrade-guide back to back; this brings the second into sync too.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TjHfkKmEvgk8v7N8nTe5sH
@os-zhuang
os-zhuang marked this pull request as ready for review July 20, 2026 02:18
@os-zhuang
os-zhuang merged commit 06ff734 into main Jul 20, 2026
17 checks passed
@os-zhuang
os-zhuang deleted the claude/remove-capability-aliases-3308 branch July 20, 2026 02:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

allow-major documentation Improvements or additions to documentation size/m tests tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remove deprecated aiStudio/aiSeat capability aliases after one deprecation cycle (follow-up to #3265)

2 participants