LearnNewsExamplesServices
Frontmatter
id11846
titleSub 10: Cross-daemon services bucket (ai/services/graph/ + ai/services/ingestion/)
stateClosed
labels
enhancementairefactoringarchitecture
assigneesneo-opus-ada
createdAtMay 23, 2026, 3:54 PM
updatedAtJun 7, 2026, 7:14 PM
githubUrlhttps://github.com/neomjs/neo/issues/11846
authorneo-opus-ada
commentsCount0
parentIssue11831
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[x] 11844 Sub 8: Orchestrator-cluster co-location (ai/daemons/orchestrator/) + daemon.mjs naming + test mirror + package.json
blocking[]
closedAtMay 23, 2026, 5:44 PM

Sub 10: Cross-daemon services bucket (ai/services/graph/ + ai/services/ingestion/)

Closed v13.0.0/archive-v13-0-0-chunk-13 enhancementairefactoringarchitecture
neo-opus-ada
neo-opus-ada commented on May 23, 2026, 3:54 PM

Parent Epic

#11831 — Sub 10 of Epic (folder-structure cleanup; cross-daemon services bucket).

Scope

Move cross-daemon services (no single daemon owns them) into thematic ai/services/{graph,ingestion}/ folders. These services serve multiple consumers (orchestrator + sub-daemons + scripts).

Source moves

ai/daemons/services/ai/services/graph/:

  • GapInferenceEngine.mjs
  • GoldenPathSynthesizer.mjs
  • GraphMaintenanceService.mjs
  • LazyEdgeDrainer.mjs
  • SemanticGraphExtractor.mjs
  • TopologyInferenceEngine.mjs

ai/daemons/services/ai/services/ingestion/:

  • ConceptDiscoveryService.mjs
  • ConceptIngestor.mjs
  • IssueIngestor.mjs
  • MemorySessionIngestor.mjs

After this Sub: ai/daemons/services/ is EMPTY and can be removed (Orchestrator's private services already moved to ai/daemons/orchestrator/services/ in Sub 8; sub-daemon services moved to per-daemon folders in Sub 9). Verify no stale services remain before removing the folder.

Test moves (mirror source)

test/playwright/unit/ai/daemons/services/test/playwright/unit/ai/services/graph/:

  • GoldenPathSynthesizer.spec.mjs
  • LazyEdgeDrainer.spec.mjs
  • SemanticGraphExtractor.spec.mjs

test/playwright/unit/ai/daemons/services/test/playwright/unit/ai/services/ingestion/:

  • ConceptDiscoveryService.spec.mjs
  • ConceptIngestor.spec.mjs
  • IssueIngestor.spec.mjs
  • MemorySessionIngestor.spec.mjs

(GapInferenceEngine, GraphMaintenanceService, TopologyInferenceEngine specs don't currently exist.)

package.json

(none affected — cross-daemon services have no direct npm entry-script targets)

.github/workflows

(none affected)

Integration tests

Audit + update any integration tests referencing ai/daemons/services/{Concept,Issue,Memory,Gap,GoldenPath,Graph,Lazy,Semantic,Topology}*ai/services/{graph,ingestion}/*.

Acceptance Criteria

  1. 10 source moves completed.
  2. ~7 test moves completed.
  3. Cross-codebase imports updated.
  4. ai/daemons/services/ removed (empty after Sub 8 + Sub 9 + Sub 10).
  5. All affected unit + integration specs pass.

Depends on

Sub 8 #11844 + Sub 9 (must merge first — they free ai/daemons/services/ of orchestrator-private + sub-daemon-specific files).

Authored by: [Claude Opus 4.7] (Claude Code)

tobiu referenced in commit 6cc9179 - "refactor(agentos): orchestrator-cluster co-location ai/daemons/orchestrator/ + daemon.mjs (#11844) (#11849) on May 23, 2026, 4:57 PM
tobiu closed this issue on May 23, 2026, 5:44 PM