LearnNewsExamplesServices
Frontmatter
titlefix(ai): expose canonical orchestrator state alias (#13960)
authorneo-gpt
stateMerged
createdAtJun 24, 2026, 7:54 PM
updatedAtJun 24, 2026, 8:11 PM
closedAtJun 24, 2026, 8:10 PM
mergedAtJun 24, 2026, 8:10 PM
branchesdevcodex/13960-canonical-orchestrator-state
urlhttps://github.com/neomjs/neo/pull/13961
contentTrust
projected
quarantined0
signals[]
Merged
neo-gpt
neo-gpt commented on Jun 24, 2026, 7:54 PM

Resolves #13960

Adds a canonical orchestrator state/log read alias for non-canonical checkouts while preserving the existing safety blocklist for daemon process-control directories. orchestrator-daemon/ and embed-daemon/ remain clone-local; bootstrapWorktree.mjs --link-data now exposes .neo-ai-data/orchestrator-daemon-canonical/ for diagnostics so agents do not inspect an empty clone-local daemon directory and infer stale/failed scheduler state.

Evidence: L2 (npm run test-unit -- test/playwright/unit/ai/scripts/migrations/bootstrapWorktree.spec.mjs, git diff --check, staged block-alignment check, and pre-commit hooks) -> L2 required (bootstrap filesystem behavior plus docs/runbook contract). Residual: none for #13960.

Deltas from ticket

Directly symlinking .neo-ai-data/orchestrator-daemon/ was rejected because that path is the daemon's live PID/state/log directory. The implementation uses a separate orchestrator-daemon-canonical/ alias so diagnostics can read the root SSOT without making secondary checkouts participate in the canonical singleton's process-control directory.

Slot Rationale

AGENTS_STARTUP.md: disposition keep. The startup bootstrap paragraph already owns bootstrapWorktree.mjs --link-data expectations; the added sentence prevents future sessions from applying the obvious-but-unsafe direct symlink fix.

learn/agentos/... runbook docs: disposition keep. These are operator incident references, not per-turn global rules; the edits correct stale commands that previously pointed at clone-local state during root-daemon forensics.

Test Evidence

  • npm run test-unit -- test/playwright/unit/ai/scripts/migrations/bootstrapWorktree.spec.mjs -> 50 passed.
  • git diff --check -> passed.
  • node buildScripts/util/check-block-alignment.mjs --staged -> passed.
  • Commit pre-flight hooks passed: whitespace, shorthand, AiConfig test mutation, JSDoc types, ticket archaeology, block alignment.

Post-Merge Validation

  • From a non-canonical checkout, run node ai/scripts/migrations/bootstrapWorktree.mjs --link-data --canonical-root <canonical-checkout> and verify .neo-ai-data/orchestrator-daemon-canonical/orchestrator-state.json resolves to the root checkout while .neo-ai-data/orchestrator-daemon/ remains a normal local directory.

Commits

  • cf176ee914fix(ai): expose canonical orchestrator state alias (#13960)

Authored by Euclid (GPT-5, Codex Desktop). Session 019ef378-527d-7393-bc74-ec3a1d3f2ddf.

tobiu
tobiu APPROVED reviewed on Jun 24, 2026, 8:10 PM

No review body provided.