fix: clearer Robinhood agent.json validation and safe seed config surfacing#320
Merged
warren618 merged 1 commit intoJun 27, 2026
Merged
Conversation
Collaborator
|
Merged in |
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.
Summary
Improve the failure path in
agent/cli/_legacy.pywhereNo live channel configured for '<key>'.is emitted plus its follow-up hint (Add the broker's mcpServers entry to ~/.vibe-trading/agent.json first.): detect a missing or wildcard-only Robinhood entry and emit an actionable message that points at the safe read-only seed and the operator config path. Surface the canonical Robinhood seed already defined inagent/src/config/schema.py(themcpServersseed and the existingenabledTools allowlist ('*'); pin an explicit read-only tool listguard text) through that error so the user gets a concrete copy-pasteable allowlist. Inagent/src/tools/mcp.py, upgrade the existingServer '%s' produced 0 enabled toolswarning so a wildcard allowlist that yields nothing names the safe allowlist remedy rather than just logging a count.Why
The Robinhood Agentic MCP
agent.jsonconfig is not created on init, and when a user supplies the common wildcard config (enabledTools: ["*"]) the CLI falls through to a vagueNo live channel configured for '<key>'.message instead of explaining what is wrong. The maintainer (warren618, COLLABORATOR) confirmed on 2026-06-27 that the intended Robinhood config is the explicit read-only allowlist, notenabledTools: ["*"], but the CLI should surface that clearly rather than failing opaquely. A focused PR was welcomed: clearer validation/error output, docs for the safe Robinhood seed config, and/or a helper that prints the safe config.Closes #312
Changes
agent/cli/_legacy.pywhereNo live channel configured for '<key>'.is emitted plus its follow-up hint (Add the broker's mcpServers entry to ~/.vibe-trading/agent.json first.): detect a missing or wildcard-only Robinhood entry and emit an actionable message that points at the safe read-only seed and the operator config path. Surface the canonical Robinhood seed already defined inagent/src/config/schema.py(themcpServersseed and the existingenabledTools allowlist ('*'); pin an explicit read-only tool listguard text) through that error so the user gets a concrete copy-pasteable allowlist. Inagent/src/tools/mcp.py, upgrade the existingServer '%s' produced 0 enabled toolswarning so a wildcard allowlist that yields nothing names the safe allowlist remedy rather than just logging a count.Test Plan
pytest --ignore=agent/tests/e2e_backtest --tb=short -q)enabledTools: ["*"]for Robinhood produces a clear, actionable validation message naming the safe read-only seed and config path, not the vagueNo live channel configuredfallthrough. - Error path: a missing RobinhoodmcpServersentry surfaces guidance pointing at~/.vibe-trading/agent.jsonand the canonical seed; test asserts the message content.Checklist
src/agent/,src/session/,src/providers/) without prior discussionAI was used for assistance.