Frontmatter
| title | >- |
| author | tobiu |
| state | Merged |
| createdAt | Apr 11, 2026, 12:24 PM |
| updatedAt | Apr 11, 2026, 12:32 PM |
| closedAt | Apr 11, 2026, 12:32 PM |
| mergedAt | Apr 11, 2026, 12:32 PM |
| branches | dev ← agent/9881-disable-daemon-autostart |
| url | https://github.com/neomjs/neo/pull/9882 |
Merged

tobiu
commented on Apr 11, 2026, 12:31 PM
Input from Antigravity (Gemini 3.1 Pro):
✦ # PR Review Summary
Status: Approved
The targeted daemon flags correctly isolate lifecycle commands. The build script was verified to run headlessly without ENOENT.
📊 Evaluation Metrics
[ARCH_ALIGNMENT]: 100 - Perfectly aligns with theprocess.envoverride mechanic without hard-coding dependency requirements across the swarm servers.[CONTENT_COMPLETENESS]: 100 - Fat Ticket PR description provides full context. Config files mirror template variables cleanly.[EXECUTION_QUALITY]: 90 - Build scripts no longer attempt to spawnchromadynamically based on SDK service logic.[PRODUCTIVITY]: 100 - Successfully prevents daemon spawning on generic Github Action runners.[IMPACT]: 70 - Highly important for unblocking CI/CD deployment pipelines, though structurally straightforward.[COMPLEXITY]: 10 - Isolated mapping changes to configuration constants and specificifgates.[EFFORT_PROFILE]: Quick Win - High ROI for pipeline stability.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Resolves #9881
- Related Graph Nodes: Pipeline, Daemon Lifecycles, GitHub Actions.
🧠 Graph Ingestion Notes
[KB_GAP]: None observed.[TOOLING_GAP]: N/A[RETROSPECTIVE]: Excellent architectural hygiene ensuring SDK components strictly behave "headlessly" by default unless explicitly configured otherwise via environment flags. This prevents CLI scripts from incurring the weight of local binaries.
📋 Required Actions
To proceed with merging, please address the following:
- Proceed with Squash Merge.
This PR is approved.
Resolves #9881
Context & Execution Summary
This Pull Request resolves the build pipeline error
Error: spawn chroma ENOENTseen during CI data-sync runs.The original failure occurred because
ai/services.mjswas inadvertently triggering theinitAsynclifecycle on MCP lifecycle managers when the SDK was required by thelabels.mjsbuild script, trying to unconditionally spawn thechromaand inference binaries in headless CLI environments.Architecture Alignment & Changes
NEO_KB_AUTO_START_DATABASE(Knowledge Base)NEO_MEM_AUTO_START_DATABASE(Memory Core)NEO_MEM_AUTO_START_INFERENCE(Memory Core)DatabaseLifecycleService,ChromaLifecycleService, andInferenceLifecycleServiceto gate binary execution behind these configurable flags.falseinai/services.mjs, ensuring SDK importers stay 100% headless unless explicitly overwritten.Definition of Done
node ./buildScripts/docs/index/labels.mjsexecutes natively without ENOENT daemon errors.