Skip to main content

Config

Runtime configuration mutation. Dev/test only — production deploys return 410 Gone. Provider/model selection is startup-only and must be set via env vars.

Base URL: http://localhost:3050

All request bodies are JSON (Content-Type: application/json). Field names on the raw HTTP prototype surface use snake_case.

PUT /v1/memories/config

Update runtime configuration at runtime. Dev/test only — production deploys return 410 Gone. Gated by the startup-validated env var CORE_RUNTIME_CONFIG_MUTATION_ENABLED; see docs/consuming-core.md.

Mutable fields (Phase 7 Step 3c contract — 4 fields total):

{
"similarity_threshold": 0.3,
"audn_candidate_threshold": 0.7,
"clarification_conflict_threshold": 0.8,
"max_search_results": 12
}

All fields are optional. Only provided fields are updated.

Startup-only fields (rejected with 400): embedding_provider, embedding_model, llm_provider, llm_model. Set these via env vars (EMBEDDING_PROVIDER, EMBEDDING_MODEL, LLM_PROVIDER, LLM_MODEL) and restart the process. The embedding/LLM provider caches are fixed at first use, so mid-flight mutation never took effect in v1.

Responses:

  • 200 OK (success, dev/test with mutable fields):

    {
    "applied": ["similarityThreshold", "maxSearchResults"],
    "config": { "...current config snapshot..." },
    "note": "Threshold updates applied in-memory for local experimentation. Restart the process to change provider/model."
    }
  • 400 Bad Request (any startup-only field present):

    {
    "error": "Provider/model selection is startup-only",
    "detail": "Fields embedding_provider cannot be mutated at runtime — the embedding/LLM provider caches are fixed at first use. Set the equivalent env vars (EMBEDDING_PROVIDER, EMBEDDING_MODEL, LLM_PROVIDER, LLM_MODEL) and restart the process.",
    "rejected": ["embedding_provider"]
    }
  • 410 Gone (production — mutation disabled):

    {
    "error": "PUT /v1/memories/config is deprecated for production",
    "detail": "Set CORE_RUNTIME_CONFIG_MUTATION_ENABLED=true to enable runtime mutation in dev/test environments. Production deploys should use startup env vars."
    }