DF0066: Service Already Installed
Service "{package}" is already installed; keeping the first installation and ignoring this one's options.
Message
Service "{package}" is already installed; keeping the first installation and ignoring this one's options.Cause
Wire services are deduplicated by npm package name: the first installation wins and later installs return the existing node API. Options only merge before ctx.services.ready() fires, when declared services are constructed. A later ctx.services.install() for an already-constructed package can no longer influence its configuration, so its options are dropped with this warning.
Example
// The package is already declared (and constructed pre-setup) elsewhere.
// ✗ This late install can't merge; { themes } is ignored.
ctx.services.install(createShikiService({ themes }))Fix
Declare the service so its options join the pre-setup merge: on the devframe's DevframeDefinition.services, or hub-wide via initHub({ services }):
initHub({
services: [createShikiService({ themes })], // ✓ merges before setup
devframes: [/* … */],
})Source
packages/devframe/src/node/host-services.ts:installPackagewarns when an already-installed package is installed again.