File tree Expand file tree Collapse file tree
packages/cli/src/commands Expand file tree Collapse file tree Original file line number Diff line number Diff line change 4040 "@objectstack/service-analytics" : " workspace:*" ,
4141 "@objectstack/service-automation" : " workspace:*" ,
4242 "@objectstack/service-feed" : " workspace:*" ,
43+ "@objectstack/service-user-preferences" : " workspace:*" ,
4344 "@objectstack/spec" : " workspace:*" ,
4445 "@radix-ui/react-avatar" : " ^1.1.11" ,
4546 "@radix-ui/react-checkbox" : " ^1.3.3" ,
Original file line number Diff line number Diff line change @@ -35,6 +35,7 @@ import { MetadataPlugin } from '@objectstack/metadata';
3535import { AIServicePlugin } from '@objectstack/service-ai' ;
3636import { AutomationServicePlugin } from '@objectstack/service-automation' ;
3737import { AnalyticsServicePlugin } from '@objectstack/service-analytics' ;
38+ import { UserPreferencesServicePlugin } from '@objectstack/service-user-preferences' ;
3839import { getRequestListener } from '@hono/node-server' ;
3940import type { Hono } from 'hono' ;
4041import { createBrokerShim } from '../src/lib/create-broker-shim.js' ;
@@ -129,6 +130,7 @@ async function ensureKernel(): Promise<ObjectKernel> {
129130 await kernel . use ( new SecurityPlugin ( ) ) ;
130131 await kernel . use ( new AuditPlugin ( ) ) ;
131132 await kernel . use ( new FeedServicePlugin ( ) ) ;
133+ await kernel . use ( new UserPreferencesServicePlugin ( ) ) ;
132134 await kernel . use ( new MetadataPlugin ( { watch : false } ) ) ;
133135 await kernel . use ( new AIServicePlugin ( ) ) ;
134136 await kernel . use ( new AutomationServicePlugin ( ) ) ;
Original file line number Diff line number Diff line change @@ -10,6 +10,7 @@ import { AnalyticsServicePlugin } from '@objectstack/service-analytics';
1010import { MetadataPlugin } from '@objectstack/metadata' ;
1111import { AIServicePlugin } from '@objectstack/service-ai' ;
1212import { FeedServicePlugin } from '@objectstack/service-feed' ;
13+ import { UserPreferencesServicePlugin } from '@objectstack/service-user-preferences' ;
1314import { createBrokerShim } from '../lib/create-broker-shim' ;
1415
1516// System object definitions — resolved via Vite aliases to plugin source (no runtime deps)
@@ -86,6 +87,7 @@ export async function createKernel(options: KernelOptions) {
8687 // so that the setupNav service is available during their init() phase
8788 await kernel . use ( new SetupPlugin ( ) ) ;
8889 await kernel . use ( new FeedServicePlugin ( ) ) ;
90+ await kernel . use ( new UserPreferencesServicePlugin ( ) ) ;
8991 await kernel . use ( new MetadataPlugin ( { watch : false } ) ) ;
9092 await kernel . use ( new AIServicePlugin ( ) ) ;
9193 await kernel . use ( new AutomationServicePlugin ( ) ) ;
Original file line number Diff line number Diff line change @@ -356,6 +356,22 @@ export default class Serve extends Command {
356356 }
357357 }
358358
359+ // 5. Auto-register UserPreferencesServicePlugin if not already loaded by config plugins.
360+ const hasUserPrefsPlugin = plugins . some (
361+ ( p : any ) => p . name === 'com.objectstack.service-user-preferences'
362+ || p . constructor ?. name === 'UserPreferencesServicePlugin'
363+ ) ;
364+ if ( ! hasUserPrefsPlugin ) {
365+ try {
366+ const userPrefsPkg = '@objectstack/service-user-preferences' ;
367+ const { UserPreferencesServicePlugin } = await import ( /* webpackIgnore: true */ userPrefsPkg ) ;
368+ await kernel . use ( new UserPreferencesServicePlugin ( ) ) ;
369+ trackPlugin ( 'UserPreferences' ) ;
370+ } catch {
371+ // @objectstack /service-user-preferences not installed — preferences features unavailable
372+ }
373+ }
374+
359375 // ── Studio UI ─────────────────────────────────────────────────
360376 // In dev mode, Studio UI is enabled by default (use --no-ui to disable).
361377 // Always serves the pre-built dist/ — no Vite dev server, no extra port.
You can’t perform that action at this time.
0 commit comments