Description
The GitHub Actions data sync pipeline has critically broken with an ENOENT error because labels.mjs triggers a knowledge-base service load via the ai/services.mjs SDK.
Root Cause
labels.mjs uses import {GH_LabelService} from '../../../ai/services.mjs'.
- This imports
DatabaseLifecycleService.mjs which, upon initialization (initAsync), unconditionally calls await this.startDatabase().
- This attempts to spawn
chroma, which doesn't exist on the standard GitHub Runner used for the data sync.
- While
autoSync = false handles crawling, there is no config equivalent for daemon startup (autoStartDatabase / autoStartInference), causing lifecycle processes to spawn blindly even when only specific SDK exports (like GH_LabelService) are required by build scripts.
Proposed Fix
- Add
autoStartDatabase and autoStartInference flags to MCP configuration files (knowledge-base & memory-core).
- Explicitly check these config values in
DatabaseLifecycleService.initAsync(), ChromaLifecycleService.initAsync(), and InferenceLifecycleService.initAsync().
- Set these new config variables to
false in the core SDK (ai/services.mjs) to ensure all CLI build pipelines remain headless by default.
Description
The GitHub Actions data sync pipeline has critically broken with an
ENOENTerror becauselabels.mjstriggers aknowledge-baseservice load via theai/services.mjsSDK.Root Cause
labels.mjsusesimport {GH_LabelService} from '../../../ai/services.mjs'.DatabaseLifecycleService.mjswhich, upon initialization (initAsync), unconditionally callsawait this.startDatabase().chroma, which doesn't exist on the standard GitHub Runner used for the data sync.autoSync = falsehandles crawling, there is no config equivalent for daemon startup (autoStartDatabase/autoStartInference), causing lifecycle processes to spawn blindly even when only specific SDK exports (likeGH_LabelService) are required by build scripts.Proposed Fix
autoStartDatabaseandautoStartInferenceflags to MCP configuration files (knowledge-base&memory-core).DatabaseLifecycleService.initAsync(),ChromaLifecycleService.initAsync(), andInferenceLifecycleService.initAsync().falsein the core SDK (ai/services.mjs) to ensure all CLI build pipelines remain headless by default.