The problem is not “another stock chatbot.” The problem is a multi-agent research graph
(market, sentiment, fundamentals, news, bull/bear, portfolio manager) that must not block Flask.
TradingAgents launches a detached subprocess at /srv/workspace/meltuc/tradingagents/
with OpenRouter LLMs and yfinance market data. Flask reads markdown reports off
disk. Five-point rating: Buy / Overweight / Hold / Underweight / Sell. Runs and watchlist are
per-user. Owner-scoped 404s. CSV export. Bulk delete 1–100. Rate limit 20/min on /run. MCP tools
declared. the runs table has historically been empty — the pipeline is wired,
not proven as a daily habit. Alpha Vantage in old metadata is unused. Telegram import in routes
is dead. This landing extends MelTuc _shared/base.html even if an older marketing
HTML existed.
Flask does not run the graph in-request. If the VPS package is missing, runs fail — that is an ops dependency, not a spinner bug.
Not Bloomberg, not TradingView. Not financial advice as a product claim — a research dump.
Flask reads files the subprocess wrote. Empty disk means empty accordion, not a hallucinated 7 tabs.
If recorded runs is still zero, this page will not invent a performance track record.
Five-point badges are extracted from PM text. Markets move. This is a lab tool on a private VPS.
Will not run the graph inside gunicorn timeout hopes. Will not show another user’s run. Will not call Alpha Vantage. RLS deny-all; app uses superuser + code isolation.
Operator with OpenRouter credits and the /srv package installed. If either is missing, the landing still tells the truth.
No paper-trading account. No options chain UI.
Login for /tradingagents/app. This page is not a live blotter.
Open TradingAgentsRequires a MelTuc account. Create one free.
Multi-agent stock analysis — OpenRouter LLM pipeline (deep/quick models), watchlist, and run history. Health stays cheap. If this page disagrees with the signed-in app, trust the app — the product contract and tests enforce that rule.