LearnNewsExamplesServices
Frontmatter
id11844
titleSub 8: Orchestrator-cluster co-location (ai/daemons/orchestrator/) + daemon.mjs naming + test mirror + package.json
stateClosed
labels
enhancementairefactoringarchitecture
assigneesneo-opus-ada
createdAtMay 23, 2026, 3:32 PM
updatedAtMay 23, 2026, 4:57 PM
githubUrlhttps://github.com/neomjs/neo/issues/11844
authorneo-opus-ada
commentsCount0
parentIssue11831
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[x] 11846 Sub 10: Cross-daemon services bucket (ai/services/graph/ + ai/services/ingestion/), [x] 11845 Sub 9: Sub-daemon cluster co-location (bridge + kb-alerting + kb-gc + kb-reconciliation) with daemon.mjs naming
closedAtMay 23, 2026, 4:57 PM

Sub 8: Orchestrator-cluster co-location (ai/daemons/orchestrator/) + daemon.mjs naming + test mirror + package.json

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

Parent Epic

#11831Sub 8 of Epic (folder-structure cleanup; per-daemon co-location).

Scope

Move Orchestrator's cluster into self-contained ai/daemons/orchestrator/. Entry-script renamed to daemon.mjs per @tobiu chief-architect convention (folder context provides daemon identity; eliminates orchestrator/orchestrator-daemon.mjs redundancy). Orchestrator-private services (sole consumer = Orchestrator) move into ai/daemons/orchestrator/services/.

Source moves

From To
ai/daemons/Orchestrator.mjs ai/daemons/orchestrator/Orchestrator.mjs
ai/daemons/TaskDefinitions.mjs ai/daemons/orchestrator/TaskDefinitions.mjs
ai/scripts/orchestrator-daemon.mjs ai/daemons/orchestrator/daemon.mjs (rename)
ai/daemons/services/BackupCoordinatorService.mjs ai/daemons/orchestrator/services/BackupCoordinatorService.mjs
ai/daemons/services/CadenceEngine.mjs ai/daemons/orchestrator/services/CadenceEngine.mjs
ai/daemons/services/HeavyMaintenanceLeaseService.mjs ai/daemons/orchestrator/services/HeavyMaintenanceLeaseService.mjs
ai/daemons/services/PrimaryRepoSyncService.mjs ai/daemons/orchestrator/services/PrimaryRepoSyncService.mjs
ai/daemons/services/ProcessSupervisorService.mjs ai/daemons/orchestrator/services/ProcessSupervisorService.mjs
ai/daemons/services/SummarizationCoordinatorService.mjs ai/daemons/orchestrator/services/SummarizationCoordinatorService.mjs
ai/daemons/services/TaskStateService.mjs ai/daemons/orchestrator/services/TaskStateService.mjs
ai/daemons/DreamService.mjs ai/daemons/orchestrator/services/DreamService.mjs
ai/daemons/SwarmHeartbeatService.mjs ai/daemons/orchestrator/services/SwarmHeartbeatService.mjs

Note: ai/scripts/bridge-daemon-queries.mjs STAYS in ai/scripts/ for this Sub — moves to ai/daemons/bridge/queries.mjs in Sub 9 (bridge cluster).

Test moves (mirror source)

From To
test/playwright/unit/ai/daemons/Orchestrator.spec.mjs test/playwright/unit/ai/daemons/orchestrator/Orchestrator.spec.mjs
test/playwright/unit/ai/scripts/orchestrator-daemon.spec.mjs test/playwright/unit/ai/daemons/orchestrator/daemon.spec.mjs (rename match)
test/playwright/unit/ai/daemons/DreamService.spec.mjs test/playwright/unit/ai/daemons/orchestrator/services/DreamService.spec.mjs
test/playwright/unit/ai/daemons/DreamServiceGoldenPath.spec.mjs test/playwright/unit/ai/daemons/orchestrator/services/DreamServiceGoldenPath.spec.mjs
test/playwright/unit/ai/daemons/SwarmHeartbeatService.spec.mjs test/playwright/unit/ai/daemons/orchestrator/services/SwarmHeartbeatService.spec.mjs
test/playwright/unit/ai/daemons/services/BackupCoordinatorService.spec.mjs test/playwright/unit/ai/daemons/orchestrator/services/BackupCoordinatorService.spec.mjs
test/playwright/unit/ai/daemons/services/CadenceEngine.spec.mjs test/playwright/unit/ai/daemons/orchestrator/services/CadenceEngine.spec.mjs
test/playwright/unit/ai/daemons/services/HeavyMaintenanceLeaseService.spec.mjs test/playwright/unit/ai/daemons/orchestrator/services/HeavyMaintenanceLeaseService.spec.mjs
test/playwright/unit/ai/daemons/services/PrimaryRepoSyncService.spec.mjs test/playwright/unit/ai/daemons/orchestrator/services/PrimaryRepoSyncService.spec.mjs
test/playwright/unit/ai/daemons/services/ProcessSupervisorService.spec.mjs test/playwright/unit/ai/daemons/orchestrator/services/ProcessSupervisorService.spec.mjs
test/playwright/unit/ai/daemons/services/SummarizationCoordinatorService.spec.mjs test/playwright/unit/ai/daemons/orchestrator/services/SummarizationCoordinatorService.spec.mjs
test/playwright/unit/ai/daemons/services/TaskStateService.spec.mjs test/playwright/unit/ai/daemons/orchestrator/services/TaskStateService.spec.mjs

package.json

  • "ai:orchestrator" script path: ./ai/scripts/orchestrator-daemon.mjs./ai/daemons/orchestrator/daemon.mjs

.github/workflows

(none affected by Sub 8 — workflows only reference lint/check scripts which Sub 11 handles).

Integration tests

(none affected by Sub 8 — integration tests touching Orchestrator-cluster files import via the unit-test path which mirrors source structure).

Acceptance Criteria

  1. All listed files moved.
  2. Cross-codebase import paths updated (grep -rn post-move shows zero stale imports to the moved files).
  3. All affected unit specs pass from their new locations.
  4. npm run ai:orchestrator works.
  5. Tier 1 Config Immutability suite + Orchestrator.spec.mjs + each moved service's spec pass.

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, 4:57 PM
tobiu referenced in commit 91366d2 - "refactor(agentos): sub-daemon cluster co-location ai/daemons/{bridge,kb-alerting,kb-gc,kb-reconciliation}/ + daemon.mjs (#11845) (#11850) on May 23, 2026, 5:26 PM