LearnNewsExamplesServices
Frontmatter
titlefix(ai): restore provider role-set residency (#13948)
authorneo-gpt
stateMerged
createdAtJun 24, 2026, 1:45 PM
updatedAtJun 24, 2026, 2:08 PM
closedAtJun 24, 2026, 2:08 PM
mergedAtJun 24, 2026, 2:08 PM
branchesdevcodex/13948-provider-role-residency
urlhttps://github.com/neomjs/neo/pull/13949
contentTrust
projected
quarantined0
signals[]
Merged
neo-gpt
neo-gpt commented on Jun 24, 2026, 1:45 PM

Resolves #13948

Summary

  • Restores provider role-set residency through a bounded warm-provider recovery action before restart/redeploy escalation.
  • Covers both active local provider surfaces: LM Studio/OpenAI-compatible via lms load, and native Ollama via role-specific warm-up endpoints.
  • Adds an embedding localModels.embedding.parallel leaf so LM Studio can keep chat and embedding resident with explicit per-role slot counts instead of inheriting an opaque default.

Deltas

  • missing-required-model provider residency facts now route to provider-role-residency + warm-provider; context/warm-up failures still fail loud into config-drift.
  • Recovery actuator allows warm-provider only for typed compose-service/supervised-task targets and preserves the existing anti-thrash ledger/backoff envelope.
  • Provider readiness repair remains local-provider scoped: LM Studio requires orchestrator.lms.enabled=true; unsupported/remote providers return observe-only degraded/skipped envelopes.

Evidence: L2 focused unit coverage plus pre-commit gate coverage for the new recovery class, actuator path, and provider helper paths.

Test Evidence

  • node --check ai/config.template.mjs
  • node --check ai/services/graph/providerReadinessHelper.mjs
  • node --check ai/daemons/orchestrator/services/RecoveryActuatorService.mjs
  • npm run test-unit -- test/playwright/unit/ai/config.template.spec.mjs test/playwright/unit/ai/daemons/orchestrator/Orchestrator.invariants.spec.mjs test/playwright/unit/ai/daemons/orchestrator/services/ContainerHealthDiagnosisService.spec.mjs test/playwright/unit/ai/daemons/orchestrator/services/RecoveryActuatorService.spec.mjs test/playwright/unit/ai/scripts/runners/runSandman.spec.mjs test/playwright/unit/ai/services/memory-core/helpers/recoveryRunStateStore.spec.mjs
  • pre-commit hook passed on commit 088b2265ef

Post-Merge Validation

  • Restart orchestrator and trigger a KB sync with LM Studio active; verify chat + embedding role models stay resident with the configured per-role parallel values.
  • Verify an Ollama deployment warms both chat and embedding roles before escalating missing-provider-role residency.

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

tobiu
tobiu APPROVED reviewed on Jun 24, 2026, 2:08 PM

No review body provided.