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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions