Repository navigation
helm: render OpenRouter__Models — twelve declared keys reached no container - #2203
Merged
Merged
Conversation
The portal ConfigMap template names every key explicitly and has no catch-all range over config.memex_portal. It renders Anthropic__Models__0..2 and AzureFoundry__Models__0..3 — and NO OpenRouter__Models at all. Both overlays declare twelve, and every one of them reached nothing, with no error raised anywhere. This is the FOURTH occurrence of the defect this same file warns about two blocks below (#1925, and #1778/#1780 before it): "A values key this template omits reaches NO container, with no error anywhere." WHY IT MATTERS MORE HERE. The model catalog is seeded from these keys by BuiltInLanguageModelProvider, an IStaticNodeProvider that owns the Provider/ namespace and reseeds it on every boot. So the portal's model list silently did not match the reviewed configuration: the overlays said twelve models, the instances served two. 🚨 AND A RE-RENDER WOULD HAVE MADE IT WORSE. The two live models are not coming from this template — nothing here emits them. A helm upgrade would therefore have rendered a ConfigMap with NO OpenRouter models, the seeder would have created none, and every OpenRouter model would have disappeared from both instances. That upgrade was queued as the fix for the stale list; it would have been the outage. Sixteen slots for twelve declared models: an unset index renders "" and is inert (the seeder skips empty entries), so the list may be shorter than the slots. Index by index, never a range, per this ConfigMap's contract — it names every key explicitly so that what reaches a container stays reviewable here, and adding a model means adding a line. That cost is the point. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the Memex portal Helm ConfigMap template to explicitly render OpenRouter__Models__N keys so OpenRouter model entries configured in AKS overlays actually reach the running container environment (and therefore can be seeded into the model catalog by BuiltInLanguageModelProvider).
Changes:
- Adds explicit
OpenRouter__Models__0..15entries todeploy/helm/templates/memex-portal/config.yaml. - Documents the “values key omitted from template reaches no container” failure mode in the OpenRouter models block to prevent recurrence.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+285
to
+302
| # An unset index renders "" and is inert: the seeder skips empty entries, so the list may | ||
| # be shorter than the slots. Extend the range when an environment needs more. | ||
| OpenRouter__Models__0: "{{ .Values.config.memex_portal.OpenRouter__Models__0 }}" | ||
| OpenRouter__Models__1: "{{ .Values.config.memex_portal.OpenRouter__Models__1 }}" | ||
| OpenRouter__Models__2: "{{ .Values.config.memex_portal.OpenRouter__Models__2 }}" | ||
| OpenRouter__Models__3: "{{ .Values.config.memex_portal.OpenRouter__Models__3 }}" | ||
| OpenRouter__Models__4: "{{ .Values.config.memex_portal.OpenRouter__Models__4 }}" | ||
| OpenRouter__Models__5: "{{ .Values.config.memex_portal.OpenRouter__Models__5 }}" | ||
| OpenRouter__Models__6: "{{ .Values.config.memex_portal.OpenRouter__Models__6 }}" | ||
| OpenRouter__Models__7: "{{ .Values.config.memex_portal.OpenRouter__Models__7 }}" | ||
| OpenRouter__Models__8: "{{ .Values.config.memex_portal.OpenRouter__Models__8 }}" | ||
| OpenRouter__Models__9: "{{ .Values.config.memex_portal.OpenRouter__Models__9 }}" | ||
| OpenRouter__Models__10: "{{ .Values.config.memex_portal.OpenRouter__Models__10 }}" | ||
| OpenRouter__Models__11: "{{ .Values.config.memex_portal.OpenRouter__Models__11 }}" | ||
| OpenRouter__Models__12: "{{ .Values.config.memex_portal.OpenRouter__Models__12 }}" | ||
| OpenRouter__Models__13: "{{ .Values.config.memex_portal.OpenRouter__Models__13 }}" | ||
| OpenRouter__Models__14: "{{ .Values.config.memex_portal.OpenRouter__Models__14 }}" | ||
| OpenRouter__Models__15: "{{ .Values.config.memex_portal.OpenRouter__Models__15 }}" |
Contributor
Contributor
Contributor
Contributor
Contributor
Contributor
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The defect
The portal ConfigMap template names every key explicitly — there is no catch-all range over
config.memex_portal. It rendersAnthropic__Models__0..2andAzureFoundry__Models__0..3, and noOpenRouter__Modelsat all.Both overlays declare twelve. Every one reached nothing, with no error anywhere.
This is the fourth occurrence of the defect this same file warns about two blocks below (#1925, and #1778/#1780 before it):
Why it matters more here
The model catalog is seeded from these keys by
BuiltInLanguageModelProvider— anIStaticNodeProviderthat owns theProvider/namespace and reseeds it on every boot. So the portal's model list silently did not match the reviewed configuration: overlays said twelve, instances served two.🚨 A re-render would have been the outage
The two live models are not coming from this template — nothing here emits them. So
helm upgradewould have rendered a ConfigMap with no OpenRouter models, the seeder would have created none, and every OpenRouter model would have vanished from both instances.That upgrade was queued as the fix for the stale list. It would have caused the failure it was meant to repair.
The change
Sixteen slots for twelve declared models. An unset index renders
""and is inert (the seeder skips empty entries), so the list may be shorter than the slots.Index by index, never a range — per this ConfigMap's own contract: it names every key explicitly so that what reaches a container stays reviewable here. Adding a model means adding a line; that cost is the point.
🤖 Generated with Claude Code