Skip to content

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

Description

@os-zhuang

Follow-up cleanup from #3265 (which unified the requires capability vocabulary to canonical kebab-case). The legacy camelCase spellings aiStudioai-studio and aiSeatai-seat are currently honored as deprecated aliases (canonicalized on input with a deprecation warning) so bundles/configs authored before the rename keep booting for one release.

When

After the alias-warning release has actually shipped (≥ 1 published release, or at the next major) — not before. Precondition: confirm no in-flight bundle/config/artifact still uses the legacy spelling.

What to remove

  • framework packages/spec/src/kernel/platform-capabilities.ts: delete DEPRECATED_PLATFORM_CAPABILITY_ALIASES + canonicalizePlatformCapability (or make the latter identity), and drop the alias-rewrite branch in defineStack's canonicalizeStackRequires. After removal, a legacy token becomes an unknown-token defineStack error (the reject added in feat(spec): reject unknown requires capability tokens at authoring (#3265) #3302) — which is the intended end state.
  • framework packages/cli/src/commands/serve.ts: remove the raw-artifact alias canonicalization.
  • cloud packages/objectos-runtime/src/capability-loader.ts: canonicalizeCapabilityToken now delegates to the spec helper (cloud#863), so it follows automatically once the spec drops aliases — but verify, and remove the now-noop delegate if desired.
  • Update the tests that assert alias canonicalization (framework stack-requires.test.ts, platform-capabilities.test.ts; cloud capability-loader.test.ts).

Context / merged work

The #3265 design work is complete and merged: framework #3281 (vocabulary + aliases + warn), #3302 (reject unknown tokens); cloud #862 (token migration), #863 (bump + shared helpers). This issue tracks only the final time-gated alias drop.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions