Skip to content

feat : New web dashboard + CLI enhancements: selection flow, providers, Zen fixes, report tables - #1294

Open
hackers-reality wants to merge 57 commits into
TauricResearch:mainfrom
hackers-reality:main
Open

feat : New web dashboard + CLI enhancements: selection flow, providers, Zen fixes, report tables#1294
hackers-reality wants to merge 57 commits into
TauricResearch:mainfrom
hackers-reality:main

Conversation

@hackers-reality

@hackers-reality hackers-reality commented Sep 2, 2026

Copy link
Copy Markdown

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)

  • Live 3-panel mirror (:8765+, +1 per parallel session), each panel
    independently scrollable, Markdown rendering, per-section browser, follow
    toggles; CLI refreshes at 30 Hz.
  • Floating per-agent activity card (draggable, collapsible, click any event
    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).
  • Prompt bar covering save/path/display/tables via an ask_everywhere
    terminal-vs-web race — first answer wins either side.
  • Light white/orange/black theme with shadowed cards.

Full Next.js app (web/, now tracked, optional CLI alternative)

  • tradingagents asks Browser-or-CLI first (30 s auto-CLI, ANSI-safe timed
    prompt incl. legacy-cmd VT fix 4350638); Browser builds/serves prod on
    free ports and exits the CLI (3129a37).
  • Wizard mirroring every CLI step in order: ticker combobox
    (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.
  • Live (panels, stats strip, done/error/awaiting-input status pills with
    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-key
    results, catalog switch, API-base override, ?api= pinning).
  • Backend: cli/api_server.py (tradingagents web, :8787) with
    options/models/settings/sessions/run endpoints; cli/runs.py
    single-flight runs executing the exact CLI pipeline headlessly
    (run_analysis(selections=..., headless=True)); UTF-8 hardening for
    Windows servers (20ccfb6); bare tradingagents still defaults to
    analyze after adding the web command (fe1eaca).

B. CLI enhancements

  • Ticker picker (8d6bad1, d13d3d2): dropdown with popular tickers
    across US/India/HK/Japan/UK/EU/crypto, recent-history persisted to
    ~/.tradingagents/tickers.json, custom entry with validation;
    canonical Yahoo-symbol normalization (BTCUSDBTC-USD,
    XAUUSDGC=F); expanded market suffixes (569e2e4).
  • Provider picker: (configured) suffix driven live by env vars
    (.env auto-loaded at startup, 51d9151); dark dropdown styling
    (e0ecba6); full model list with type-to-filter + ← Back to Provider
    navigation (4b74391, d11a1e2, d516dee, fb8d6ad); OpenRouter
    instruction/autocomplete crash fixes (fd326b4, ade802d, bb33fe5).
  • Live models (ec69166, f8b677b): live /models fetch for all
    listable providers with graceful 404/auth-failure handling.
  • Thinking controls: OpenAI reasoning effort, Anthropic effort,
    Gemini thinking mode, NVIDIA reasoning effort (new) — each with
    TRADINGAGENTS_* env override + skip-when-set; NVIDIA effort actually
    forwarded into run config (was collected but dropped).
  • New providers: OpenCode, NVIDIA NIM, Ollama Cloud, Qwen/GLM/MiniMax
    China variants; Bedrock/API-key env wiring, .env.example (569e2e4).
  • Opencode catalog picker: full /zen/v1 (66 models, 9 free) vs
    legacy /zen/go/v1 (35, no free) — first-run prompt persisted to
    OPENCODE_BASE_URL with change-later note (8810e03).
  • Market-data resilience (7a807ca, 66b7ec4, a93559d, 39faff3,
    13ff188, 3a07049, 70b52a6): previous-trading-day fallback
    (weekend-aware), Date-column fix, incomplete-bar handling,
    NoMarketDataError import fix.
  • LLM resilience (b72e199): 3x auto-retry with delay on
    timeout/rate-limit/5xx.
  • Flow: auto-restart loop (d13d3d2); scroll-page URL shown 10 s
    before TUI takeover; per-session free ports.

C. Opencode Zen fixes

  • Responses-API routing for gpt-*/grok-*/muse-spark-* (Chat
    Completions 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 save
    formats, LLM normalization to {title, headers, rows} with pipe-table
    fallback, tables.json/tables.md per session (fc50cf3).
  • CLI Step 9 tables-model picker + end-of-run generate prompt; web
    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).
  • README: cross-OS setup + interfaces/providers/tables docs (a57c742).

Test report

  • py_compile clean; tsc --noEmit + next build green (all routes
    served 200).
  • API smoke tests: options/models/settings-save+test/sessions/delete/
    open/validation-400s/busy-409/table jobs/status.
  • Parser/decoder unit checks (pipe tables, JSON normalization).
  • Full live runs to done: web run (SPY/Groq, 9/9 agents) and Opencode
    run, prompts answered from the page; installer dry-run + real run.
  • pytest suite not run (not installed in .venv) — recommend CI.

Notes

  • Squash-merge recommended (history holds exploratory commits incl.
    superseded web-folder removals).
  • web/node_modules, web/.next, logs stay git-ignored; run
    npm install in web/ (or install.py) before Browser mode.
  • Free Zen models rotate upstream; Custom model ID remains the fallback.

Copilot AI lite review requested due to automatic review settings September 2, 2026 17:26

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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 opencode and ollama_cloud to the OpenAI-compatible provider registry and API-key environment variable mapping.
  • Expanded benchmark_map to cover additional India, US, and international market suffixes.
  • Updated .env.example and 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.

Comment thread tradingagents/llm_clients/openai_client.py Outdated
Comment thread README.md
Comment thread README.md
@hackers-reality hackers-reality changed the title Add OpenCode, NVIDIA, Ollama Cloud support and expand market suffixes feat: CLI enhancements + auto-retry + market data fallback + new provider support Sep 3, 2026
@hackers-reality
hackers-reality requested a balanced review from Copilot September 3, 2026 00:11

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@hackers-reality hackers-reality changed the title feat: CLI enhancements + auto-retry + market data fallback + new provider support feat : New web dashboard + CLI enhancements: selection flow, providers, Zen fixes, report tables Sep 5, 2026
@hackers-reality
hackers-reality requested a balanced review from Copilot September 5, 2026 18:12

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

…er history, live models, provider configured suffix
- 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants