fix(gateway): preserve explicit platform disables - #73303
Conversation
Prevent environment credential bootstrap from overriding explicit platform enabled:false settings and add cross-platform regression coverage.
|
Reviewed against #73289 — this fully and correctly closes the issue, including the second location the report called out. Verified against the PR head:
Green on required checks and mergeable (BLOCKED = awaiting maintainer approval, not a failure). Nice fix — LGTM. |
|
Thanks for the focused precedence fix. The premise remains verified on current main: The new Automated hermes-sweeper review. |
SummaryEight PRs address or reference the environment-versus-YAML platform-precedence defect. #18418 and #36014 are Telegram-focused, #35562 adds Discord and plugin handling, #55447 covers HomeAssistant/Email/SMS, #73376 adds repeated built-in guards, #38745 and #73724 mix the fix with broader changes, and #73303 centralizes the built-in and plugin-registry policy with regression coverage. Related pull requests
Duplicates#18418 and #36014 are Telegram-focused variants overlapping #35562. #55447 is the HomeAssistant/Email/SMS subset of #73303; #73376 and the gateway portion of #73724 duplicate #73303's systemic repair, while #38745 overlaps the same precedence policy but adds separate CLI, credential-cleanup, and tool-management scope. Suggested consolidationKeep #73303 open with a salvage path: author action: rebase onto main, or split out the part that can merge, preserving its focused gateway/config.py changes, plugin-registry guard, and tests/gateway/test_platform_env_enablement_precedence.py coverage. Close #55447 as a duplicate of #73303 despite its keep_open review because #73303 contains its three-platform helper conversion plus the requested tests; close #73376 as a duplicate of #73303 despite its keep_open review because #73303 already supplies the requested helper reuse and parameterized coverage; and close #73724 as a duplicate of #73303 despite its keep_open review because its diff has the documented MSGraph unbound-local defect, no relevant tests, and unrelated bundled changes. Keep the already-closed #18418, #35562, #36014, and #38745 closed as implemented-on-main, superseded, test-only, or over-broad historical predecessors; this does not discard the recorded best-fix verdicts for #18418 and #35562, whose narrower Telegram issue was explicitly confirmed resolved on main. Complex graphflowchart TD
classDef open fill:#dbeafe,stroke:#1d4ed8,color:#1e3a8a
classDef merged fill:#dcfce7,stroke:#15803d,color:#14532d
classDef closed fill:#e5e7eb,stroke:#6b7280,color:#1f2937
classDef unverified fill:#f3f4f6,stroke:#9ca3af,color:#374151
classDef best stroke-width:3px,stroke:#b45309
classDef target stroke-width:3px,stroke:#4338ca
I73289(["issue #73289 (open)"])
subgraph Dup38745 ["PRs duplicating each other"]
P38745["PR #38745 (closed)"]
P55447["PR #55447 (open)"]
P73303["PR #73303 (open)"]
P73376["PR #73376 (open)"]
P73724["PR #73724 (open)"]
end
P73303 -->|best fix| I73289
class I73289 open
class P38745 closed
class P55447 open
class P73303 open
class P73376 open
class P73724 open
class P73303 best
class P73303 target
click I73289 "https://github.com/NousResearch/hermes-agent/issues/73289"
click P38745 "https://github.com/NousResearch/hermes-agent/pull/38745"
click P55447 "https://github.com/NousResearch/hermes-agent/pull/55447"
click P73303 "https://github.com/NousResearch/hermes-agent/pull/73303"
click P73376 "https://github.com/NousResearch/hermes-agent/pull/73376"
click P73724 "https://github.com/NousResearch/hermes-agent/pull/73724"
Graph: solid arrow = fixes / best fix, dashed arrow = partial or unverified (see edge label); boxed group = PRs duplicating each other; amber border = best fix; indigo border = target; gray node = closed (state tag in the node label). Cross-PR triage: Reviewed 8 pull requests and 3 issues in this complex. Each diff was read against this issue; Assessment working set: 134 kB of PR diffs, 44 kB of issue/PR text, 16 kB of discussion (25 comments), 23 verify verdicts. verdicts reflect diff content, not PR titles. Part of an automated triage batch. |
|
Independent validation against current
Command used: I also reproduced the defect independently on clean current
This confirms that the precedence defect is still present and that this PR's focused systemic repair remains compatible with current main. This is limited to the stated configuration paths and automated tests; I did not rerun the repository's full suite. |
What does this PR do?
Preserves explicit
platforms.<name>.enabled: falsesettings during environment credential bootstrap.Environment variables may still populate credentials and defaults, but they no longer re-enable a platform that the operator explicitly disabled in
config.yaml.Related issue
Fixes #73289
Related to #55447, which covers a narrower subset of the same configuration-precedence problem.
Type of change
Changes made
enabled: falsevalues from YAMLenabledis unspecifiedTesting
Checklist