Skip to content

helm: render OpenRouter__Models — twelve declared keys reached no container - #2203

Merged
rbuergi merged 1 commit into
mainfrom
fix/chart-renders-openrouter-models
Aug 25, 2026
Merged

rbuergi merged 1 commit into
mainfrom
fix/chart-renders-openrouter-models

Conversation

@rbuergi

@rbuergi rbuergi commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

The defect

The portal ConfigMap template names every key explicitly — there is 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. 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):

"🚨 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: 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 upgrade would 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

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>
Copilot AI lite review requested due to automatic review settings August 25, 2026 10:28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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..15 entries to deploy/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 }}"
@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 3)

    9 files  ±0      9 suites  ±0   4m 51s ⏱️ + 1m 5s
1 681 tests ±0  1 676 ✅ ±0  5 💤 ±0  0 ❌ ±0 
2 186 runs  ±0  2 181 ✅ ±0  5 💤 ±0  0 ❌ ±0 

Results for commit 053dbc4. ± Comparison against base commit 208de04.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 0)

1 283 tests  ±0   1 283 ✅ ±0   11m 50s ⏱️ - 5m 38s
    9 suites ±0       0 💤 ±0 
    9 files   ±0       0 ❌ ±0 

Results for commit 053dbc4. ± Comparison against base commit 208de04.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 5)

   10 files  ±0     10 suites  ±0   6m 52s ⏱️ + 1m 5s
1 254 tests ±0  1 253 ✅ ±0  1 💤 ±0  0 ❌ ±0 
1 255 runs  ±0  1 254 ✅ ±0  1 💤 ±0  0 ❌ ±0 

Results for commit 053dbc4. ± Comparison against base commit 208de04.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 4)

2 140 tests  ±0   1 841 ✅ ±0   9m 54s ⏱️ +31s
    9 suites ±0     299 💤 ±0 
    9 files   ±0       0 ❌ ±0 

Results for commit 053dbc4. ± Comparison against base commit 208de04.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 2)

3 339 tests  ±0   3 339 ✅ ±0   7m 55s ⏱️ -2s
    8 suites ±0       0 💤 ±0 
    8 files   ±0       0 ❌ ±0 

Results for commit 053dbc4. ± Comparison against base commit 208de04.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 1)

1 769 tests  ±0   1 769 ✅ ±0   9m 2s ⏱️ -2s
   10 suites ±0       0 💤 ±0 
   10 files   ±0       0 ❌ ±0 

Results for commit 053dbc4. ± Comparison against base commit 208de04.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results

    55 files  ±0      55 suites  ±0   50m 25s ⏱️ - 3m 2s
11 466 tests ±0  11 161 ✅ ±0  305 💤 ±0  0 ❌ ±0 
11 972 runs  ±0  11 667 ✅ ±0  305 💤 ±0  0 ❌ ±0 

Results for commit 053dbc4. ± Comparison against base commit 208de04.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants