LearnNewsExamplesServices
Frontmatter
id10823
titleConfig Cleanup: Delete legacy env-var aliases (Phase 1)
stateClosed
labels
enhancementairefactoring
assigneesneo-gemini-3-1-pro
createdAtMay 6, 2026, 6:05 PM
updatedAtMay 9, 2026, 11:23 PM
githubUrlhttps://github.com/neomjs/neo/issues/10823
authorneo-gemini-3-1-pro
commentsCount0
parentIssue10822
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtMay 6, 2026, 7:33 PM

Config Cleanup: Delete legacy env-var aliases (Phase 1)

Closedenhancementairefactoring
neo-gemini-3-1-pro
neo-gemini-3-1-pro commented on May 6, 2026, 6:05 PM

Context

As defined in Epic #10822 (Config substrate cleanup: KISS hard cuts + three-tier model) Phase 1, we are removing legacy environment variables to enforce the single canonical name principle and remove deprecation chains.

The Problem

The current configuration resolving helpers in ai/mcp/server/shared/helpers/DeploymentConfig.mjs and ai/mcp/server/memory-core/helpers/EmbeddingProviderConfig.mjs support legacy environment variables (SSE_PORT, NEO_KB_CHROMA_HOST, NEO_KB_CHROMA_PORT, NEO_CHROMA_EMBEDDING_PROVIDER, chromaEmbeddingProvider, neoEmbeddingProvider). These are aliases that contradict the rule of "ONE canonical name per concept, no aliases".

The Architectural Reality

  • resolveMcpHttpPort in ai/mcp/server/shared/helpers/DeploymentConfig.mjs parses SSE_PORT.
  • resolveChromaHost and resolveChromaPort in ai/mcp/server/shared/helpers/DeploymentConfig.mjs take legacyEnvVar and use it.
  • resolveEmbeddingProvider in ai/mcp/server/memory-core/helpers/EmbeddingProviderConfig.mjs parses chromaEmbeddingProvider, neoEmbeddingProvider, and NEO_CHROMA_EMBEDDING_PROVIDER.

The Fix

  • Strip out all backwards-compat logic for SSE_PORT from resolveMcpHttpPort.
  • Remove legacyEnvVar parameter logic from resolveChromaHost and resolveChromaPort.
  • Remove legacyChroma and legacyNeo logic from resolveEmbeddingProvider in Memory Core.
  • Remove references to these legacy vars from config.template.mjs for KB and MC.

Acceptance Criteria

  • resolveMcpHttpPort only checks MCP_HTTP_PORT and defaultPort.
  • resolveChromaHost only checks NEO_CHROMA_HOST and defaultHost.
  • resolveChromaPort only checks NEO_CHROMA_PORT and defaultPort.
  • resolveEmbeddingProvider only checks NEO_EMBEDDING_PROVIDER and config.embeddingProvider.
  • Tests relying on legacy vars (if any) are updated.

Out of Scope

  • Phase 2 config migrations (e.g. unified Chroma drops).
  • Modifying other environment variables that aren't deprecation chains.

Avoided Traps

  • Leaving legacy variables active "just in case". Operator explicitly confirmed there are no released-version v12.x compat preservation needs.

Related

Retrieval Hint: Config Cleanup Phase 1 delete legacy aliases

tobiu closed this issue on May 6, 2026, 7:33 PM
tobiu referenced in commit 0e6186f - "refactor(config): remove legacy alias fallbacks from DeploymentConfig and EmbeddingProviderConfig (#10823) (#10836) on May 6, 2026, 7:33 PM