Two fixes in response to review:
1. Use options.normalizeAccountId (caller-provided) instead of the
imported normalizeAccountId when building the reverse map in
everyAccountHasOwnTokens. Ensures the reverse map keys match the IDs
returned by listConfiguredAccountIds() when a custom normalizer is used.
2. Filter disabled accounts before the everyAccountHasOwnTokens gate.
Disabled accounts are skipped at channel startup; allowing them to block
default injection would prevent the base account from starting in mixed
enabled/disabled configs where all enabled accounts are independent.
When normalizeAccountId transforms config keys (e.g. 'Router D' →
'router-d'), listAccountIds returns normalized IDs but the
everyAccountHasOwnTokens check used accounts[normalizedId], which
misses the raw config key. Added a reverse map from normalized ID
to raw key for the lookup.
Regression test: non-canonical key normalizes correctly and default
is still injected when the account has its own tokens.
- Named accounts must now override ALL base token fields (not just any
one) to be considered independent. Partial overrides (e.g. only
appToken when base has both botToken+appToken) are correctly treated
as inheriting the base identity.
- Base token check now trims whitespace — ' ' is not a valid token.
- Added 2 test cases: partial override, whitespace-only tokens.
Addresses codex-connector P1+P2 on PR #30310.
Mixed configs (some accounts with own tokens, some inheriting base)
would still duplicate credentials between default and inheriting
accounts. Now requires every named account to carry per-account auth
before injecting default.
Addresses codex-connector P1 on PR #30310.
- Don't inject 'default' when all named accounts lack per-account
auth overrides (they'd use the same base credentials, causing
duplicate provider connections and event processing)
- Use normalizeAccountId for case-insensitive default detection
- Applies to Slack (botToken/appToken) and Discord (token) alike
Addresses review feedback from codex-connector on PR #30310.
When a channel config has top-level tokens (botToken/appToken/token)
AND named accounts in the accounts section, listAccountIds() omitted
the default account. This meant only named accounts started, leaving
the base-config bot disconnected.
Now detects base-level tokens and includes 'default' alongside named
accounts so both providers start.
Includes 3 test cases: base tokens present, default already in accounts
(no duplicate), and no base tokens (unchanged behavior).
Co-authored-by: Eddie Abrams <eddie@bighatbio.com>
* MiniMax: add M2.7 models and update default to M2.7
- Add MiniMax-M2.7 and MiniMax-M2.7-highspeed to provider catalog and model definitions
- Update default model from MiniMax-M2.5 to MiniMax-M2.7 across onboard, portal, and provider configs
- Update isModernMiniMaxModel to recognize M2.7 prefix
- Update all test fixtures to reflect M2.7 as default
Made-with: Cursor
* MiniMax: add extension test for model definitions
* update 2.7
* feat: add MiniMax M2.7 models and update default (#49691) (thanks @liyuan97)
---------
Co-authored-by: George Zhang <georgezhangtj97@gmail.com>
Add GLIBC_TUNABLES, MAVEN_OPTS, SBT_OPTS, GRADLE_OPTS, ANT_OPTS,
DOTNET_ADDITIONAL_DEPS to blockedKeys and GRADLE_USER_HOME to
blockedOverrideKeys in the host exec security policy.
Closes#22681