feat : New web dashboard + CLI enhancements: selection flow, providers, Zen fixes, report tables - #1294
Open
hackers-reality wants to merge 57 commits into
Open
feat : New web dashboard + CLI enhancements: selection flow, providers, Zen fixes, report tables#1294hackers-reality wants to merge 57 commits into
hackers-reality wants to merge 57 commits into
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Documentation examples contain small but user-facing inaccuracies/typos, and the newly added providers lack corresponding coverage in existing provider-registry tests.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR expands TradingAgents’ OpenAI-compatible LLM provider support (adding OpenCode and Ollama Cloud endpoints and documenting NVIDIA NIM) and broadens automatic benchmark resolution by mapping more Yahoo Finance market suffixes to representative indices.
Changes:
- Added
opencodeandollama_cloudto the OpenAI-compatible provider registry and API-key environment variable mapping. - Expanded
benchmark_mapto cover additional India, US, and international market suffixes. - Updated
.env.exampleand README to document new keys/providers and broaden market/ticker examples.
File summaries
| File | Description |
|---|---|
| tradingagents/llm_clients/openai_client.py | Adds OpenAI-compatible provider specs for OpenCode and Ollama Cloud. |
| tradingagents/llm_clients/api_key_env.py | Registers OPENCODE/OLLAMA_CLOUD API key environment variables for CLI/client prompting. |
| tradingagents/default_config.py | Expands benchmark suffix→index mapping for more regions/exchanges. |
| README.md | Documents new provider keys and expands supported market/ticker examples. |
| .env.example | Adds example entries for new provider API keys. |
Review details
- Files reviewed: 5/5 changed files
- Comments generated: 3
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
…er history, live models, provider configured suffix
…to Provider', fix dropdown styling
…ty card on scroll page
- Remove web/ from gitignore (track the Next.js app); ignore only web/node_modules, web/.next, logs. Also drop a null-byte-corrupted tail that made git treat .gitignore as binary. - install.py: single Windows/Linux/macOS installer (venv, editable pip install, launchers, PATH, npm install). Replaces install.ps1 and the stale web-app .bat launchers; removes pasted.txt/paragraph1.txt junk. (No extension-less wrapper: collides with TradingAgents/ on case-insensitive filesystems; POSIX uses ~/.local/bin symlink.) - runs: finished_at freezes the elapsed clock on done/error; Live shows done/error/awaiting-input status instead of a stuck live badge+timer.
hackers-reality
force-pushed
the
main
branch
from
September 9, 2026 20:58
a57c742 to
660742b
Compare
…tum tie-break, mandatory flip conditions
…nels on direct calls)
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
~13k additions across 42 files: a new web dashboard (live scroll panels +
full Next.js app) alongside CLI selection-flow enhancements, new providers
and thinking controls, data/LLM resilience fixes, Opencode Zen catalog +
Responses fixes, and LLM-normalized report tables. Verified per-section below.
A. Web dashboard (new)
Always-on scroll dashboard (
cli/dashboard.py, stdlib-only):8765+, +1 per parallel session), each panelindependently scrollable, Markdown rendering, per-section browser, follow
toggles; CLI refreshes at 30 Hz.
for full context) backed by per-message agent attribution plus a
last-activity heartbeat (owning agent + seconds-since, also in the CLI
footer); heartbeat names the in-progress agent only (5a76af0).
ask_everywhereterminal-vs-web race — first answer wins either side.
Full Next.js app (
web/, now tracked, optional CLI alternative)tradingagentsasks Browser-or-CLI first (30 s auto-CLI, ANSI-safe timedprompt incl. legacy-cmd VT fix 4350638); Browser builds/serves prod on
free ports and exits the CLI (3129a37).
(recent + popular + custom), date, language, analysts, depth with CLI
descriptions, provider with
(configured), live models, effort/catalog/azure-deployment conditionals, confirm → auto-lands on Live.
frozen clock, prompt bar, quote widget, ticker-tape footer with marquee),
Reports (all sessions, bulk delete, open-in-Explorer, auto-open latest),
Tables (below), Settings (keys saved live to
.env, real Test-keyresults, catalog switch, API-base override,
?api=pinning).cli/api_server.py(tradingagents web,:8787) withoptions/models/settings/sessions/run endpoints;
cli/runs.pysingle-flight runs executing the exact CLI pipeline headlessly
(
run_analysis(selections=..., headless=True)); UTF-8 hardening forWindows servers (20ccfb6); bare
tradingagentsstill defaults toanalyze after adding the
webcommand (fe1eaca).B. CLI enhancements
across US/India/HK/Japan/UK/EU/crypto, recent-history persisted to
~/.tradingagents/tickers.json, custom entry with validation;canonical Yahoo-symbol normalization (
BTCUSD→BTC-USD,XAUUSD→GC=F); expanded market suffixes (569e2e4).(configured)suffix driven live by env vars(
.envauto-loaded at startup, 51d9151); dark dropdown styling(e0ecba6); full model list with type-to-filter +
← Back to Providernavigation (4b74391, d11a1e2, d516dee, fb8d6ad); OpenRouter
instruction/
autocompletecrash fixes (fd326b4, ade802d, bb33fe5)./modelsfetch for alllistable providers with graceful 404/auth-failure handling.
Gemini thinking mode, NVIDIA reasoning effort (new) — each with
TRADINGAGENTS_*env override + skip-when-set; NVIDIA effort actuallyforwarded into run config (was collected but dropped).
China variants; Bedrock/API-key env wiring,
.env.example(569e2e4)./zen/v1(66 models, 9 free) vslegacy
/zen/go/v1(35, no free) — first-run prompt persisted toOPENCODE_BASE_URLwith change-later note (8810e03).13ff188, 3a07049, 70b52a6): previous-trading-day fallback
(weekend-aware),
Date-column fix, incomplete-bar handling,NoMarketDataError import fix.
timeout/rate-limit/5xx.
before TUI takeover; per-session free ports.
C. Opencode Zen fixes
gpt-*/grok-*/muse-spark-*(ChatCompletions 500s on those — the muse-spark free model from the issue);
verified per-family, chat models unchanged.
D. Structured report tables
tradingagents/reporting_tables.py: per-agent collection for both saveformats, LLM normalization to
{title, headers, rows}with pipe-tablefallback,
tables.json/tables.mdper session (fc50cf3).Tables tab with per-session Generate, shimmer loading, auto-hidden
once generated.
E. Setup & docs
install.py: one cross-OS installer (venv, editable pip, launchers,PATH, npm); replaces
install.ps1/stale launchers (e2dfca2).Test report
py_compileclean;tsc --noEmit+next buildgreen (all routesserved 200).
open/validation-400s/busy-409/table jobs/status.
done: web run (SPY/Groq, 9/9 agents) and Opencoderun, prompts answered from the page; installer dry-run + real run.
pytestsuite not run (not installed in.venv) — recommend CI.Notes
superseded web-folder removals).
web/node_modules,web/.next, logs stay git-ignored; runnpm installinweb/(orinstall.py) before Browser mode.