Description
Upgrading from 0.7.6 → 0.7.7 causes per-agent (non-default) deployments to crash with no adapter configured even though discord.botToken and discord.allowedChannels are present in their values. Only the top-level default agent (kiro) renders the [discord] config section; additional agents defined under agents.* do not.
This contradicts #394 ("Backward-compatible default so existing installs keep working").
Affected version: Chart openab-0.7.7, upgrading from openab-0.7.6
Root cause: templates/configmap.yaml uses a strict boolean check:
{{- if ($cfg.discord).enabled }}
In 0.7.6 there was no discord.enabled field. Existing values files carry discord.botToken, discord.allowedChannels, and discord.allowBotMessages — but not discord.enabled.
The default values.yaml in 0.7.7 only sets discord.enabled: true for the built-in kiro agent. Any user-defined agent under agents.* does not inherit this default, so ($cfg.discord).enabled evaluates to nil and the [discord] TOML section is never rendered.
Steps to Reproduce
- Have a running 0.7.6 deployment with multiple agents:
agents:
claude:
command: claude-agent-acp
discord:
allowBotMessages: mentions
allowedChannels:
- "1234567890123456789"
botToken: <token>
image: ghcr.io/openabdev/openab-claude:0.7.6
copilot:
command: copilot
discord:
allowBotMessages: mentions
allowedChannels:
- "1234567890123456789"
botToken: <token>
image: ghcr.io/openabdev/openab-copilot:0.7.6
kiro:
discord:
allowBotMessages: mentions
allowedChannels:
- "1234567890123456789"
botToken: <token>
image:
tag: 0.7.6
- Back up values and upgrade:
helm get values openab > values.yaml
sed -i "s/0.7.6/0.7.7/g" values.yaml
helm upgrade openab openab/openab --version 0.7.7 -f values.yaml
- Observe that claude and copilot pods enter
CrashLoopBackOff:
Error: no adapter configured — add [discord] and/or [slack] to config.toml
- Verify with
helm template:
helm template openab openab/openab --version 0.7.7 \
--show-only templates/configmap.yaml -f values.yaml
The rendered configmaps for claude and copilot contain no [discord] section, while kiro does.
Expected Behavior
Per-agent discord configs with botToken present should automatically render the [discord] TOML section, matching the backward-compatible behavior described in #394. Existing 0.7.6 values should work without modification on upgrade to 0.7.7.
Environment
- Helm chart:
openab-0.7.7
- Upgraded from:
openab-0.7.6
- Kubernetes: k3s
- Helm: v3
Workaround
Manually add discord.enabled: true to every per-agent discord config before upgrading:
agents:
claude:
discord:
enabled: true # ← required for 0.7.7
...
Proposed fix
In templates/configmap.yaml, replace the strict check with a backward-compatible fallback that also considers the presence of botToken:
- {{- if ($cfg.discord).enabled }}
+ {{- if and (ne (($cfg.discord).enabled | toString) "false") (or ($cfg.discord).enabled ($cfg.discord).botToken) }}
discord.enabled |
discord.botToken |
Result |
true |
(any) |
✅ Rendered — explicit opt-in |
| (absent) |
present |
✅ Rendered — backward-compat with 0.7.6 values |
false |
(any) |
❌ Skipped — explicit opt-out |
| (absent) |
(absent) |
❌ Skipped — no discord config at all |
One-line change, no impact on other templates, aligns per-agent behavior with what #394 intended.
Description
Upgrading from 0.7.6 → 0.7.7 causes per-agent (non-default) deployments to crash with
no adapter configuredeven thoughdiscord.botTokenanddiscord.allowedChannelsare present in their values. Only the top-level default agent (kiro) renders the[discord]config section; additional agents defined underagents.*do not.This contradicts #394 ("Backward-compatible default so existing installs keep working").
Affected version: Chart
openab-0.7.7, upgrading fromopenab-0.7.6Root cause:
templates/configmap.yamluses a strict boolean check:In 0.7.6 there was no
discord.enabledfield. Existing values files carrydiscord.botToken,discord.allowedChannels, anddiscord.allowBotMessages— but notdiscord.enabled.The default
values.yamlin 0.7.7 only setsdiscord.enabled: truefor the built-in kiro agent. Any user-defined agent underagents.*does not inherit this default, so($cfg.discord).enabledevaluates to nil and the[discord]TOML section is never rendered.Steps to Reproduce
CrashLoopBackOff:helm template:The rendered configmaps for claude and copilot contain no
[discord]section, while kiro does.Expected Behavior
Per-agent discord configs with
botTokenpresent should automatically render the[discord]TOML section, matching the backward-compatible behavior described in #394. Existing 0.7.6 values should work without modification on upgrade to 0.7.7.Environment
openab-0.7.7openab-0.7.6Workaround
Manually add
discord.enabled: trueto every per-agent discord config before upgrading:Proposed fix
In
templates/configmap.yaml, replace the strict check with a backward-compatible fallback that also considers the presence ofbotToken:discord.enableddiscord.botTokentruefalseOne-line change, no impact on other templates, aligns per-agent behavior with what #394 intended.