LearnNewsExamplesServices
Frontmatter
id10969
titleDocument deploy compose env-var toggles
stateClosed
labels
documentationenhancementaibuild
assigneesneo-gemini-3-1-pro
createdAtMay 8, 2026, 5:52 PM
updatedAtMay 12, 2026, 4:09 AM
githubUrlhttps://github.com/neomjs/neo/issues/10969
authorneo-gpt
commentsCount0
parentIssue10945
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtMay 9, 2026, 1:58 AM

Document deploy compose env-var toggles

Closeddocumentationenhancementaibuild
neo-gpt
neo-gpt commented on May 8, 2026, 5:52 PM

Context

Created from Claude's Cycle 1 review on PR #10968 (clean-checkout AI deploy bootstrap) after all CI checks passed and the PR became eligible as Approved+Follow-Up.

PR #10968 intentionally made previously implicit runtime toggles explicit in ai/deploy/docker-compose.yml and ai/deploy/docker-compose.dev.yml so external clean-checkout deployments do not accidentally run local lifecycle work or default to the wrong transport. The review found that the compose templates now expose operator-facing env vars which are not listed in learn/agentos/DeploymentCookbook.md Section 5's env-var table.

Review anchor: https://github.com/neomjs/neo/pull/10968#issuecomment-4407781241

The Problem

The deployment templates and the operator-facing deployment docs now drift:

  • Compose files explicitly set NEO_TRANSPORT, NEO_AUTO_SYNC, NEO_KB_AUTO_START_DATABASE, NEO_MEM_AUTO_START_DATABASE, NEO_MEM_AUTO_START_INFERENCE, NEO_AUTO_DREAM, NEO_AUTO_GOLDEN_PATH, NEO_REAL_TIME_MEMORY_PARSING, and NEO_AUTO_INGEST_FS.
  • DeploymentCookbook.md Section 5 still documents only the older minimal env-var inventory.
  • External operators using the cookbook as their source of truth will see the compose values but not the purpose, default, or server scope for those flags.

This is not a merge blocker for PR #10968 because the compose values are already mechanically correct and CI integration validated the stack. It is still an operator-experience gap and should be closed before v13 release docs settle.

The Architectural Reality

Relevant surfaces:

  • ai/deploy/docker-compose.yml and ai/deploy/docker-compose.dev.yml are the production/dev operator templates.
  • learn/agentos/DeploymentCookbook.md Section 5 is the canonical deployment env-var inventory for humans.
  • learn/agentos/ConfigSubstrateEnvVarAudit.md already classifies these vars as Tier 3 operator/runtime toggles.
  • ai/mcp/server/knowledge-base/config.template.mjs owns KB env bindings for NEO_TRANSPORT, NEO_AUTO_SYNC, and NEO_KB_AUTO_START_DATABASE.
  • ai/mcp/server/memory-core/config.template.mjs owns MC env bindings for NEO_TRANSPORT, NEO_MEM_AUTO_START_DATABASE, NEO_MEM_AUTO_START_INFERENCE, NEO_AUTO_DREAM, NEO_AUTO_GOLDEN_PATH, NEO_REAL_TIME_MEMORY_PARSING, and NEO_AUTO_INGEST_FS.

The fix belongs in documentation, not in compose or runtime code.

The Fix

Update learn/agentos/DeploymentCookbook.md Section 5's env-var table to include the compose-exposed runtime toggles.

For each env var, document:

  • server scope (KB, MC, or Both),
  • default / safe deploy value where relevant,
  • one-line purpose,
  • whether it is an operator one-shot/lifecycle toggle or steady runtime binding.

Use the existing ConfigSubstrateEnvVarAudit.md classifications to keep the prose precise and avoid re-litigating env-var naming.

Contract Ledger Matrix

Target Surface Source of Authority Proposed Behavior Fallback Docs Evidence
Deployment env-var table PR #10968 review; compose templates; ConfigSubstrateEnvVarAudit.md DeploymentCookbook.md lists every runtime toggle made explicit by deploy compose files Operators can still inspect compose files directly, but that is not sufficient docs learn/agentos/DeploymentCookbook.md Section 5 rg verifies each compose env var appears in the cookbook table
KB runtime toggles knowledge-base/config.template.mjs env bindings NEO_TRANSPORT, NEO_AUTO_SYNC, NEO_KB_AUTO_START_DATABASE documented with KB scope Existing config templates remain source of truth Cookbook env-var table Static docs diff; no runtime test needed
MC runtime toggles memory-core/config.template.mjs env bindings NEO_TRANSPORT, NEO_MEM_AUTO_START_*, NEO_AUTO_DREAM, NEO_AUTO_GOLDEN_PATH, NEO_REAL_TIME_MEMORY_PARSING, NEO_AUTO_INGEST_FS documented with MC scope Existing config templates remain source of truth Cookbook env-var table Static docs diff; no runtime test needed

Acceptance Criteria

  • DeploymentCookbook.md Section 5 documents every env var explicitly set by ai/deploy/docker-compose.yml and ai/deploy/docker-compose.dev.yml for KB/MC services.
  • Each new row identifies server scope and purpose without implying operators must enable lifecycle toggles by default.
  • NEO_TRANSPORT=sse is documented as steady runtime binding for HTTP/SSE deployments.
  • NEO_AUTO_SYNC=false and NEO_KB_AUTO_START_DATABASE=false are documented as KB deployment safety toggles.
  • MC lifecycle toggles are documented as disabled-by-default/safe deploy controls.
  • Validation includes an rg command proving the compose-exposed env vars appear in the cookbook.

Out of Scope

  • Renaming env vars.
  • Changing compose behavior from PR #10968.
  • Reworking the broader config substrate model from #10822.
  • Resolving NEO_MC_PRIMARY retirement sequencing from #10956.

Avoided Traps / Gold Standards Rejected

  • Rejected: fold into PR #10968 after approval. The stack is already validated; this is doc completion, not deploy correctness.
  • Rejected: document every possible config template key. This ticket is only for env vars that the deploy compose templates now surface directly.
  • Rejected: encourage auto lifecycle work in deploy docs. The safety posture should explain why these values are explicitly false in shared deploy templates.

Related

  • PR #10968 — clean-checkout deploy bootstrap.
  • #10964 — source deployment bootstrap ticket.
  • #10945 — deployment-pipeline integration epic.
  • #10822 — config substrate cleanup epic.
  • #10956NEO_MC_PRIMARY daemon migration sequencing.

Origin Session ID: c02fbf4e-870c-44c0-ba7e-e9ffacce094b

Retrieval Hint: query_raw_memories(query="PR 10968 env-var doc gap DeploymentCookbook NEO_TRANSPORT NEO_AUTO_SYNC compose toggles")

tobiu referenced in commit 12244e7 - "docs(ai): document deploy compose env-var toggles (#10969) (#11000) on May 9, 2026, 1:58 AM
tobiu closed this issue on May 9, 2026, 1:58 AM