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
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.
- #10956 —
NEO_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")
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.ymlandai/deploy/docker-compose.dev.ymlso 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 inlearn/agentos/DeploymentCookbook.mdSection 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:
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, andNEO_AUTO_INGEST_FS.DeploymentCookbook.mdSection 5 still documents only the older minimal env-var inventory.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.ymlandai/deploy/docker-compose.dev.ymlare the production/dev operator templates.learn/agentos/DeploymentCookbook.mdSection 5 is the canonical deployment env-var inventory for humans.learn/agentos/ConfigSubstrateEnvVarAudit.mdalready classifies these vars as Tier 3 operator/runtime toggles.ai/mcp/server/knowledge-base/config.template.mjsowns KB env bindings forNEO_TRANSPORT,NEO_AUTO_SYNC, andNEO_KB_AUTO_START_DATABASE.ai/mcp/server/memory-core/config.template.mjsowns MC env bindings forNEO_TRANSPORT,NEO_MEM_AUTO_START_DATABASE,NEO_MEM_AUTO_START_INFERENCE,NEO_AUTO_DREAM,NEO_AUTO_GOLDEN_PATH,NEO_REAL_TIME_MEMORY_PARSING, andNEO_AUTO_INGEST_FS.The fix belongs in documentation, not in compose or runtime code.
The Fix
Update
learn/agentos/DeploymentCookbook.mdSection 5's env-var table to include the compose-exposed runtime toggles.For each env var, document:
KB,MC, orBoth),Use the existing
ConfigSubstrateEnvVarAudit.mdclassifications to keep the prose precise and avoid re-litigating env-var naming.Contract Ledger Matrix
ConfigSubstrateEnvVarAudit.mdDeploymentCookbook.mdlists every runtime toggle made explicit by deploy compose fileslearn/agentos/DeploymentCookbook.mdSection 5rgverifies each compose env var appears in the cookbook tableknowledge-base/config.template.mjsenv bindingsNEO_TRANSPORT,NEO_AUTO_SYNC,NEO_KB_AUTO_START_DATABASEdocumented with KB scopememory-core/config.template.mjsenv bindingsNEO_TRANSPORT,NEO_MEM_AUTO_START_*,NEO_AUTO_DREAM,NEO_AUTO_GOLDEN_PATH,NEO_REAL_TIME_MEMORY_PARSING,NEO_AUTO_INGEST_FSdocumented with MC scopeAcceptance Criteria
DeploymentCookbook.mdSection 5 documents every env var explicitly set byai/deploy/docker-compose.ymlandai/deploy/docker-compose.dev.ymlfor KB/MC services.NEO_TRANSPORT=sseis documented as steady runtime binding for HTTP/SSE deployments.NEO_AUTO_SYNC=falseandNEO_KB_AUTO_START_DATABASE=falseare documented as KB deployment safety toggles.rgcommand proving the compose-exposed env vars appear in the cookbook.Out of Scope
NEO_MC_PRIMARYretirement sequencing from #10956.Avoided Traps / Gold Standards Rejected
Related
NEO_MC_PRIMARYdaemon 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")