393 Commits
Author SHA1 Message Date
Yijia Xiao 35543d0248 TradingAgents v0.5.1 release v0.5.1 2026-09-24 00:49:14 -07:00
Yijia-Xiao 90be56b9b2 chore: add issue templates 2026-09-24 07:47:51 +00:00
Yijia-Xiao 25c751346e docs: move the changelog link below the latest news 2026-09-24 07:47:51 +00:00
Yijia Xiao 6caf0db866 Merge pull request #1402 from TauricResearch/v0.5.1
TradingAgents v0.5.1 release
2026-09-24 00:32:19 -07:00
Yijia-Xiao f692949f14 docs: TradingAgents v0.5.1 release 2026-09-24 07:20:06 +00:00
Yijia Xiao f58a585390 Merge pull request #1401 from TauricResearch/v0.5.1
Release 0.5.1
2026-09-23 22:26:39 -07:00
Yijia-Xiao e1a5f20480 release: 0.5.1 2026-09-24 05:04:30 +00:00
Yijia-Xiao bbd4d0413a fix(yahoo): report an unreachable Yahoo on insider transactions as unavailable
- the outage raised for an empty insider table reaches the router as a vendor error, not as a symbol with no data
2026-09-24 05:00:36 +00:00
Yijia-Xiao b176c9374b fix(yahoo): clean OHLCV frames on their own copy
- dropping undated rows copies the frame before prices are coerced, so no chained-assignment write
2026-09-24 05:00:36 +00:00
Yijia-Xiao 4187716842 fix(stocktwits): decode HTML entities in message bodies
- bodies reach the prompt and the screen as plain text (S&P, wasn't) rather than escaped (S&P, wasn't)
2026-09-24 05:00:36 +00:00
Yijia-Xiao 24c38602e5 docs: document Jev post screening (#1376) 2026-09-24 05:00:36 +00:00
Yijia-Xiao c924f84114 feat(sentiment): screen social posts with TypeSafe's Jev (#1376)
- with TYPESAFE_API_KEY set, each StockTwits and Reddit post is asked whether it is about the company and its stance on the stock
- posts clearly about something else are dropped before the per-source cut, and each block opens with a stance count
- any failed request leaves the source's posts unscreened and says so; without a key nothing changes
2026-09-24 05:00:36 +00:00
Yijia-Xiao f281feb483 feat(models): add GPT-6 Sol and Luna and Claude Opus 5.5
- gpt-6-sol and gpt-6-luna are the new default deep and quick models
- claude-opus-5-5 replaces claude-opus-5 in the picker; opus-5 and gpt-5.4-mini stay known as legacy IDs
2026-09-24 05:00:36 +00:00
Yijia-Xiao 8efb702871 style: normalise blank lines between definitions
- two between top-level definitions, one between methods, none doubled inside a body
2026-09-24 05:00:36 +00:00
Yijia-Xiao 91c4319147 test: keep tests off the network
- conftest refuses socket connections outside tests marked integration
- the one test that probed Yahoo for real now stubs the reachability check
2026-09-24 05:00:36 +00:00
Yijia-Xiao 1e9ad314d8 ci: run the py3.12 tests in a non-UTC time zone
- a test that only passes in UTC now fails in CI
2026-09-24 05:00:36 +00:00
Yijia-Xiao 825e6321ae docs: drop comments that narrate the next line
- about seventy '# Create/Initialize/Add ...' lines across graph, cli and dataflows, and the file-path headers; comments that give a reason stay
2026-09-24 05:00:36 +00:00
Yijia-Xiao 4a30cb1c0a refactor(cli): split the interactive choices and the run loop out of cli/main.py
- selections.py asks what to run; run.py builds the graph, streams it to the live view and saves the report
- main.py keeps the Typer app and its two commands
2026-09-24 05:00:36 +00:00
Yijia-Xiao 56bd98f690 refactor(cli): move the live view to cli/display.py and the prompts to cli/prompts.py
- display.py holds the message buffer, layout, status tables and report panels, the analyst wall-time tracker (CLI-only, from graph/analyst_execution) and the one Console
- utils.py is renamed prompts.py, which is what it holds; its analyst list is ANALYST_CHOICES, apart from display's ANALYST_ORDER
- get_initial_analyst_node, a one-line helper with one caller, is inlined
- the wall-time tracker tests sit with the other display tests, and tests import cli.prompts as prompts
2026-09-24 05:00:36 +00:00
Yijia-Xiao 969861e8be refactor(graph): settle past decisions in graph/settlement.py
- resolve_benchmark, fetch_returns and settle_pending are module functions; the graph's settle_pending runs them under its config
- create_run_state settles through settle_pending, so the CLI path also settles under the graph's config
2026-09-24 05:00:36 +00:00
Yijia-Xiao c9695673bf refactor(llm_clients): build the client keyword arguments in llm_clients
- build_llm_kwargs(config) replaces the graph's _get_provider_kwargs, with the retry and token coercion beside it
2026-09-24 05:00:36 +00:00
Yijia-Xiao e7354d8af4 refactor: move the decision log to tradingagents/decision_log.py
- it is the run's persistent record, used by the graph, backtest and CLI, not an agent utility; agents/utils is gone
2026-09-24 05:00:36 +00:00
Yijia-Xiao dcbff5ea42 feat(backtest): summarize a backtest result, or a decision log by its path
- callers no longer construct TradingMemoryLog to score a run; README and CLI pass the result
2026-09-24 05:00:36 +00:00
Yijia-Xiao 852ffead43 refactor(agents): organise the agents package by what each module holds
- tools.py: the analysts' data tools, previously seven modules under utils
- context.py (was agent_utils, without its tool re-exports), state.py, rating.py and structured.py sit beside schemas.py
- every role package has an __init__
2026-09-24 04:37:40 +00:00
Yijia-Xiao 6097b582d9 refactor(dataflows): group the vendors under dataflows/vendors
- vendors/yahoo: ohlcv (loader and cache), market (prices, indicators), fundamentals (profile, statements, insider), news, snapshot
- vendors/alpha_vantage is a package; sec_edgar, fred, polymarket, reddit and stocktwits sit beside it
- the one-method StockstatsUtils class is a function; the duplicate Yahoo host constant is gone
- tests are named after the modules they cover: test_ohlcv_date_column, test_yahoo_snapshot, and the ohlcv and snapshot aliases
2026-09-24 04:37:40 +00:00
Yijia-Xiao c42a2f2c61 refactor(dataflows): name the shared modules by what they hold
- interface -> router; symbol_utils -> symbols, which also takes safe_ticker_component
- utils is split: get_current_date to date_window, the HTTP helpers to net
- dataflows imports are absolute; the NoMarketDataError re-export from symbols is gone
2026-09-24 04:31:05 +00:00
Yijia-Xiao a58aa613fc fix: name no date after the run in what a historical run reads
- coverage and withholding notices named where a vendor's coverage starts or today's date
- the instrument context named today's date in every analyst prompt
2026-09-24 04:31:05 +00:00
Yijia-Xiao f142e79660 refactor(dataflows): build the three yfinance statements with one helper
- balance sheet, cash flow and income statement share _statement; output unchanged
2026-09-24 04:31:05 +00:00
Yijia-Xiao 9b14233a24 chore: remove code nothing uses
- is_yahoo_safe, has_checkpoint, get_wall_times, the graph's curr_state and the project_dir config key
- the CLI's final_report and current_agent state, its duplicate get_analysis_date and the save_report_to_disk wrapper
- the dotenv import guard (a hard dependency) and a warning filter for langgraph-checkpoint 4.0.3
2026-09-24 04:31:05 +00:00
Yijia-Xiao 41fc25ac0d refactor(graph): wire each analyst from one declaration of its tools
- an analyst's TOOLS tuple is both what it is offered and what its tool node runs
- one routing function replaces four copies of should_continue_<analyst>
- the sentiment analyst has no tools, so the unreachable social tool node is gone
2026-09-24 04:31:05 +00:00
Yijia-Xiao 4e1faf6465 chore(graph): remove SignalProcessor
- process_signal reads the rating with parse_rating; the adapter ignored the model it was given
2026-09-24 04:31:05 +00:00
Yijia-Xiao a6e92a6b5e chore(agents): remove the deprecated social media analyst names
- the social_media_analyst module and the create_social_media_analyst alias; use create_sentiment_analyst
2026-09-24 04:31:04 +00:00
Yijia-Xiao 15b8276b92 fix(agents): give the fundamentals analyst the insider transactions tool
- the tool sat in the news tool node, which no analyst offered it from, so no run used insider data
- the full-graph test now requires it
2026-09-24 04:31:04 +00:00
Yijia-Xiao 2938e1c7e9 fix(graph): stop keeping every run's full state in the graph
- a graph reused across a backtest grid held each run's complete state for its whole life
- the state log is written from the run's own state; the ticker attribute it read is removed
2026-09-24 04:31:04 +00:00
Yijia-Xiao f197e09dcc refactor(dataflows): read company identity and settlement prices through the data layer
- the Yahoo vendor owns get_company_profile and get_closes; agent_utils and the graph no longer import yfinance
- a test keeps vendor libraries inside dataflows
2026-09-24 00:41:56 +00:00
Yijia-Xiao b4479b0c70 fix(dataflows): stop telling a historical run today's date
- yfinance headers no longer stamp the wall clock (Data retrieved on)
2026-09-24 00:41:56 +00:00
Yijia-Xiao 4a71dc708d fix(cli): say whether a checkpointed run resumed or started fresh
- the announcement existed but the run path never called it
- tested through run_analysis rather than by calling the helper directly
2026-09-24 00:41:56 +00:00
Yijia-Xiao 1e439352c0 test: run the whole graph end to end with scripted models
- every analyst calls its tools through the router, offline; the decision is parsed and logged
- free-text and structured-output paths, and resume from a checkpoint
- remove the unused mock_llm_client fixture
2026-09-24 00:41:56 +00:00
Yijia-Xiao 632fb51d18 ci: run on pushes to version branches
- v0.5.1 and later release branches get the test matrix before their release PR
2026-09-23 20:11:26 +00:00
Yijia-Xiao 5c2dded82c feat(config): benchmark B3 tickers against the Ibovespa (#1366)
- .SA maps to ^BVSP
2026-09-23 19:28:56 +00:00
Yijia-Xiao 1f7a2aa865 test: keep a developer's TRADINGAGENTS_* settings out of the suite (#1368)
- each such setting from the shell or .env is blanked before the package loads
2026-09-23 19:28:56 +00:00
Yijia-Xiao 25a86a8890 fix(config): keep the default path when a path variable is blank
- TRADINGAGENTS_RESULTS_DIR, _CACHE_DIR and _MEMORY_LOG_PATH left blank no longer resolve to an empty path
2026-09-23 19:28:56 +00:00
Yijia-Xiao 2340fe4396 test(ohlcv): stamp cache mtimes in local time (#1372)
- the cache reads mtimes back in local time; the tests wrote them as UTC
2026-09-23 19:28:56 +00:00
Yijia-Xiao 96daaf1152 fix(dataflows): read the vendors of the run in progress (#1369)
- propagate and settle_pending bind the graph's config for the length of the run
- a graph built later, or running concurrently, no longer changes another graph's vendors
2026-09-23 19:28:56 +00:00
Yijia-Xiao a9cc3be731 fix(sec_edgar): list only fiscal years in annual statements
- annual columns are the periods an annual report covers, so 10-Q balances and twelve-month totals no longer read as fiscal years
- a value is still the latest filing of any form, so a later recast counts from its filing date
2026-09-23 19:28:56 +00:00
David Arias, CFA c78fa86500 fix(sec_edgar): find capital expenditure reported as productive assets (#1370)
- Capital Expenditure also reads PaymentsToAcquireProductiveAssets, after the property and equipment tag
2026-09-23 12:28:52 -07:00
Yijia Xiao 2d17df8da1 Merge pull request #1364 from TauricResearch/v0.5.0
Release 0.5.0
v0.5.0
2026-09-17 22:42:27 -07:00
Yijia-Xiao 7fe2252244 release: 0.5.0
- point-in-time integrity across every dated path, and a vendor failure reported as a vendor failure
- SEC EDGAR fundamentals served as filed
- backtesting over a ticker and date grid, and the caller's portfolio as run input
- current model lineups across every provider
2026-09-18 05:42:23 +00:00
Yijia-Xiao 76a93d615a test(cli): read the backtest help without terminal styling
- colour splits "--start" across escape sequences, so the assertion strips them
2026-09-18 05:42:23 +00:00
Yijia-Xiao c039e39056 fix(dataflows): tell an outage from an unknown symbol on every Yahoo path
- prices, indicators and insider filings now use the same check as the statements
2026-09-18 04:02:57 +00:00