Skip to content

Commit 2fc6d1f

Browse files
committed
fix(spec): keep ObjectOSKernel as an interface extension; commit api-surface snapshot
The api-surface guard flagged interface→type as a removal (breaking). ObjectOSKernel is now '/** @deprecated */ interface ObjectOSKernel extends IKernel {}' — declaration merging and interface identity are preserved, so the surface records additions only: + KernelCapabilitiesSchema (const), + KernelCapabilities (type), + IKernel (interface). check:api-surface green after a full dist build. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0162o68e5w3bpUBEVRQboUGG
1 parent 6715d67 commit 2fc6d1f

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

packages/spec/api-surface.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@
4444
"ExpressionSchema (const)",
4545
"F (const)",
4646
"GUEST_POSITION (const)",
47+
"KernelCapabilities (type)",
48+
"KernelCapabilitiesSchema (const)",
4749
"MAP_SUPPORTED_FIELDS (const)",
4850
"METADATA_ALIASES (const)",
4951
"MIGRATIONS_BY_MAJOR (const)",
@@ -799,6 +801,7 @@
799801
"HttpServerConfig (type)",
800802
"HttpServerConfigInput (type)",
801803
"HttpServerConfigSchema (const)",
804+
"IKernel (interface)",
802805
"ISettingsCapability (interface)",
803806
"ISettingsClient (interface)",
804807
"InAppNotification (type)",

packages/spec/src/system/types/plugin.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,9 @@ export interface IKernel {
6969
on(event: string, handler: (data: any) => void): () => void;
7070
}
7171

72-
/** @deprecated Renamed — use {@link IKernel}. The "ObjectOS" layer name is retired; ObjectOS now names the commercial runtime environment. */
73-
export type ObjectOSKernel = IKernel;
72+
/** @deprecated Renamed — use {@link IKernel}. The "ObjectOS" layer name is retired; ObjectOS now names the commercial runtime environment. Kept as an empty interface extension (not a type alias) so declaration merging and the published API surface stay interface-compatible. */
73+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
74+
export interface ObjectOSKernel extends IKernel {}
7475

7576
/**
7677
* Plugin Context provided to plugin lifecycle methods.

0 commit comments

Comments
 (0)